kimu_507回答ポイント 80ptウォッチ 1

javaプログラムでテキストを一行ずつ読み込んでSQL文がある行を検出して

そのSQL文中から複数テーブル指定時にテーブル別名の無いがあるがチェックしてテーブル別名が無い行を検出したいです。

正規表現でSQL文を検出するところまではできましだが、

SQL文中からテーブル別名を指定してある行を検索する事ができません。
例えば;
List.add("select * from test1;");
List.add("select * from test1 t1,test2;");
List.add("select * from test1 t1 ,test2 t2 where testId=1;");
List.add("select * from test1 ,test2 ORDER BY testId;");
List.add("select * from test1 as t1, test2 as t2;");

こんな行がListの中に入ってるとして、出力したいのは2,3番目の行、
つまりテーブル別名を指定してない行を検出したいです。

正規表現でやろとしてましたがうまくできなくて、
for (int j = 0; j < list.size(); j++) {
//とりあえずSQL文からfrom句がある行を検出
if (((String) list.get(j)).toLowerCase().indexOf("from") != -1) {
System.out.println(list.get(j));
}
}
この後からとうすればいいかわかりません
どなたかご教授していただければ幸いです。

よろしくお願いいたします。

※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。
ログインして回答する

ベストアンサー

その他の回答

この質問へのコメント

コメントはありません

この質問への反応(ブックマークコメント)

質問の情報

登録日時
2009-07-08 17:25:42
終了日時
2009-07-09 16:00:43
回答条件
1人3回まで

この質問のカテゴリ

この質問に含まれるキーワード

正規表現647SQL1319Java1731プログラム5048

人気の質問

メニュー

PC版