私はSQL文を持っています:
uPdate emp set emp_note='I am set to this ' where emp_name='John';
オラクル固有のステートメントを大文字に置き換えたいので、次のようにします。
+89 $line =~ s/ where / WHERE /ig;
+90 $line =~ s/ set / SET /g;
+91 $line =~ s/^select/SELECT/ig;
+92 $line =~ s/^update/UPDATE/ig;
+93 $line =~ s/^delete/DELETE/ig;
+94 $line =~ s/^insert/INSERT/ig;
+95 $line =~ s/ and / AND /g;
+96 $line =~ s/ from / FROM /g;
+97 $line =~ s/ in / IN /g;
上記は、値であるテキストも置き換えます(私はこれに設定されています)。たとえば、上記のステートメントは次のようにレンダリングされます。
UPDATE emp SET emp_note='I am SET to this ' WHERE emp_name='John';
これを回避して、SQL ステートメント内の値ではなくキーワードのみを置換するように perl を設定するにはどうすればよいですか?
問題は、perl で利用可能な SQL パッケージを使用できないことでもあるため、昔ながらの正規表現を使用する必要があります。