ソースコードに直書きされたSQL文を取り出す
例えば、下のようなコードから、Vimエディタで、実際に実行されるSQL文を抜き出す。
public String sql = "SELECT " + "USER.USER_ID, USER.FAMILY_NAME, USER.GIVEN_NAME, USER.FAMILY_NAME_KANA, " + "USER.GIVEN_NAME_KANA, USER.PHONE, USER.CELL_PHONE, USER.EMAIL, " + "USER.MOBILE_MAIL, USER.NORMALIZED_FAMILY_NAME_KANA, USER.NORMALIZED_GIVEN_NAME_KANA, " + "USER.ENABLED, MEMBER.MEMBER_ID, MEMBER.LOGIN_NAME, MEMBER.LOGIN_PASSWORD, " + "MEMBER.ENABLED, MEMBER.SORT_ORDER, GROUP.GROUP_NAME, GROUP.SORT_ORDER, " + "GROUP.ENABLED " + "FROM " + "NNS_USER USER " + "INNER JOIN NNS_MEMBER MEMBER ON USER.USER_ID = MEMBER.USER_ID " + "INNER JOIN NNS_GROUP_MEMBER GM ON MEMBER.MEMBER_ID = GM.MEMBER_ID " + "INNER JOIN NNS_GROUP GROUP ON GM.GROUP_ID = GROUP.GROUP_ID " + "WHERE " + "USER.ENABLED = 'T' AND MEMBER.ENABLED = 'T' AND GROUP.ENABLED = 'T' " + "ORDER BY " + "GROUP.SORT_ORDER ASC, MEMBER.SORT_ORDER ASC"; statement = connection.createStatement(); statement.executeQuery(sql);
上のコードを見て、こんなコード書かないよ、とか思うかもしれないが、
現実、よく見るので仕方ない。
地味に面倒くさくて、しかし、良く遭遇する。
それでも、他のテキストエディタよりかは、Vimでやった方が楽なはずだけど。
いろいろな方法を試したあげく、結局、
コード量が多くても、少なくても、共に、範囲指定の正規表現で処理するのが一番楽だろう、
という、面白くもなんともない結論に落ち着いた。