我有一個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