0

テーブルに挿入する前にデータの値を確認したい. 同様に、 " または & のようなものがデータに含まれている場合は、それを無視するか、エスケープシーケンスを使用して挿入する必要があります.

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

また

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

オラクルでそれを行う方法はありますか?ありがとう

編集

例に示すように、通常のデータではなく、特に & 、 " などの文字の解決策を知りたいです。

4

1 に答える 1

1

BEFORE トリガーを使用して実行できます。


&& を、" を"に置き換える例を次に示します。

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

明らかに、置換文字列は何でもかまいません。

于 2012-07-25T06:16:30.530 に答える