插入表格期间的数据检查

时间:2012-07-25 06:14:57

标签: oracle

我想检查数据的值在插入表格之前。如果像“或&”这样的东西进入数据,它应该忽略它或使用一些转义序列插入。

create table test (checkit varchar2(40));
insert into test values("Here is the & test data");

insert into test values("Here is the " test data");

有没有办法在oracle中这样做? 感谢

修改

我想知道解决方案,特别是像&和,“等不是正常数据,如示例所示。

1 个答案:

答案 0 :(得分:1)

您可以使用BEFORE trigger


这是一个替换&使用&和“与"

SET DEFINE OFF;
drop table test;
create table test (checkit varchar2(60));


CREATE OR REPLACE TRIGGER validateTest
  BEFORE DELETE OR INSERT OR UPDATE ON test
  FOR EACH ROW
BEGIN
  :new.checkit := replace(:new.checkit, '&', '&lte;');
  :new.checkit := replace(:new.checkit, '"', '"');
END;
/

insert into test (checkit) values ('Here is the & test "data"');
select * from test;

输出:

drop table test succeeded.
create table succeeded.
TRIGGER validateTest Compiled.
1 rows inserted
CHECKIT                                                      
------------------------------------------------------------ 
Here is the &lte; test "data"                    

1 rows selected

显然替换字符串可以是任何东西。