Sql 在Oracle中,如何在插入表时处理空值
我有一张桌子,上面有一个文件。当我使用空值(如“”或null)插入该表时,它应该转换为“DUMMY-value”Sql 在Oracle中,如何在插入表时处理空值,sql,oracle,oracle11g,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 我可以在INSE
--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
我可以在INSERT
语句中应用NVL(“”,'DUMMY-VALUE')
,但我只能更改CREATE
语句。
目前,我正在使用触发器处理此问题,但是,我想知道11g中是否有任何替代方案,但是我知道oracle 12c的默认值为NULL
。您可以这样做:
create table TEST (FIELD1 VARCHAR2(50) default 'DUMMY-VALUE' );
当你想插入
如果值为NULL或为空,则应在不带该字段的情况下插入。您可以执行以下操作:
create table TEST (FIELD1 VARCHAR2(50) default 'DUMMY-VALUE' );
当你想插入
如果值为NULL或为空,则应在不带该字段的情况下插入。请尝试以下操作:
CREATE TABLE TEST (FIELD1 VARCHAR2(50) DEFAULT 'DUMMY-VALUE');
然后在INSERT
语句中使用DEFAULT
关键字:
INSERT INTO TEST (FIELD1) VALUES (DEFAULT);
分享和享受。试试这个:
CREATE TABLE TEST (FIELD1 VARCHAR2(50) DEFAULT 'DUMMY-VALUE');
然后在INSERT
语句中使用DEFAULT
关键字:
INSERT INTO TEST (FIELD1) VALUES (DEFAULT);
共享和享受。将列的默认值设置为“虚拟值”
?如果值为NULL或为空,则插入时不带该字段?否,默认值将不起作用,因为NULL或“”将覆盖默认值,但是只有在插入期间未提及列名时,您的建议才会起作用。将具有默认值的列设为“DUMMY-value”
?如果值为NULL或为空,则不插入该字段?否,默认值将不起作用,因为NULL或“”将覆盖默认值,但是,只有在插入期间未提及列名时,您的建议才起作用。只有在insert语句中未提供字段1时,此建议才起作用。显式传递NULL将绕过默认值。我的意思是:。注意,我可以显式地将NULL插入到field1中。只有在insert语句中没有提供field1时,这才真正起作用。显式传递NULL将绕过默认值。我的意思是:。注意:我可以显式地将NULL插入field1。感谢良好的提示bob,但这将强制在所有情况下插入默认值。感谢良好的提示bob,但这将强制在所有情况下插入默认值。