我有以下示例
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 中做任何想法?
感谢
答案 0 :(得分:2)
您无需对表定义执行任何操作,如果您尝试插入“错误”数据,Oracle将抛出错误。
我还发现你应该使用select
语句而不使用parantheses:
insert into Test (ca, c2, c3) select v1, v2, v3 from emp;
也许,你真正想要的只是插入那些符合表约束的记录。在这种情况下,您可以使用dbms_errlog
和log errors into
子句。
不符合您标准的记录将被插入另一个表中以供进一步审查。
请参阅this sql fiddle。