在PL / SQL中插入时验证列值

时间:2014-01-31 16:25:58

标签: oracle plsql

我有以下示例

create table Test (
 C1 nvarchar(50) not null,
 C2 number,
 C3 date);

insert into Test(C1,C2,C3) select (v1,v2,v3)from emp ;

我想添加验证,不要为C1插入空值,不要为C2插入字符串,为C3插入日期

pl / sql 中做任何想法?

感谢

1 个答案:

答案 0 :(得分:2)

您无需对表定义执行任何操作,如果您尝试插入“错误”数据,Oracle将抛出错误。

我还发现你应该使用select语句而不使用parantheses:

insert into Test (ca, c2, c3) select v1, v2, v3 from emp;

也许,你真正想要的只是插入那些符合表约束的记录。在这种情况下,您可以使用dbms_errloglog errors into子句。

不符合您标准的记录将被插入另一个表中以供进一步审查。

请参阅this sql fiddle