我想检查数据的值在插入表格之前。如果像“或&”这样的东西进入数据,它应该忽略它或使用一些转义序列插入。
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中这样做? 感谢
修改
我想知道解决方案,特别是像&和,“等不是正常数据,如示例所示。
答案 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, '&', '<e;');
: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 <e; test "data"
1 rows selected
显然替换字符串可以是任何东西。