我有一个SQL语句:正则表达式用Perl
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';
我怎样才能避免这种设置Perl来替代SQL语句中唯一的关键字,而不是价值?
问题还在于,我不能使用Perl提供的任何SQL包,所以我必须使用普通的旧式正则表达式。
我怀疑,答案是“停止玩正则表达式并学会爱['SQL :: Translator'](https://metacpan.org/module/SQL::Translator)“。 – Quentin 2013-05-07 12:27:46
我无法访问这些软件包。有其他选择吗? – contravaluebets 2013-05-07 12:29:47
http://www.perlmonks.org/?node_id=693828 – Quentin 2013-05-07 12:30:16