在Oracle中,如何在插入表时处理NULL值

时间:2014-04-30 10:17:10

标签: sql oracle oracle11g

我有一张桌子,里面有一个。当我在该表中插入空值如''或null时,它应该转换为'DUMMY-VALUE'。

--Have one table;
CREATE TABLE TEST  ( FIELD1 VARCHAR2(50) );

--When I insert ''
INSERT INTO TEST(FIELD1) VALUES('');

SELECT * FROM TEST
--Expected Result 'DUMMY-VALUE' but not NULL

我可以在NVL('','DUMMY-VALUE')语句中应用INSERT,但我只能更改CREATE语句。 现在,我正在用TRIGGER处理这个问题但是,想知道11g中是否有任何替代方案,但我知道oracle 12c的DEFAULT ON NULL

2 个答案:

答案 0 :(得分:2)

你可以这样做:

create table TEST  (FIELD1 VARCHAR2(50) default 'DUMMY-VALUE'  );

当你想插入时 如果值为NULL或为空,则应插入不带该字段

答案 1 :(得分:2)

试试这个:

CREATE TABLE TEST (FIELD1 VARCHAR2(50) DEFAULT 'DUMMY-VALUE');

然后在DEFAULT语句中使用INSERT关键字:

INSERT INTO TEST (FIELD1) VALUES (DEFAULT);

SQLFiddle here

分享并享受。