知識を不足で大変申し訳ないのですが、エスケープ文字を使用して検索して、その結果をコンソールに出力する方法がわかりません、お知恵をお貸し頂けないでしょうか。
前提・実現したいこと
<前提>
Oracle DBに以下の内容でデータを入れた結果:
<実現>
上記の表を元に、
エスケープ文字を入力し検索した結果をコンソールに表示したい。
エスケープ文字を使えれば検索結果は何でもよい。
該当のソースコード
Java
1import java.io.BufferedReader; 2import java.io.IOException; 3import java.io.InputStreamReader; 4import java.sql.Connection; 5import java.sql.DriverManager; 6import java.sql.ResultSet; 7import java.sql.SQLException; 8import java.sql.Statement; 9 10 11public class DataBaseConnectTest { 12 static BufferedReader _br = new BufferedReader(new InputStreamReader(System.in)); 13/** 14 * main 15 * access to Oracle DB then execute SQL 文 16 * @param args 17 * @throws IOException 18 * @throws SQLException 19 */ 20 public static void main(String[] args) throws IOException, SQLException { 21 Connection con = null; 22 Statement st = null; 23 String hostname = "0.0.0.0"; 24 String username = "***"; 25 String pw = "*******; 26 String sid = "XE"; 27 String url = "jdbc:oracle:thin:@"; 28 final String SQL = "Select EMPID, ENAME, JOB from EMPLOYEES "; 29 30 try { 31 Class.forName("oracle.jdbc.driver.OracleDriver"); 32 con = DriverManager.getConnection(url + hostname + ":1521:" + sid, username, pw); 33 34 st = con.createStatement(); 35 String str; 36 while ((str = _br.readLine()) != null) { 37 if (!(str.isEmpty()))break;{ 38 } 39 } 40 ResultSet rs = st.executeQuery(SQL+str); 41 while(rs.next()) { 42 System.out.println(rs.getInt("EMPID")); 43 44 } 45 // EMPID = 1001"); 46 47 // while (rs.next()) { 48 // System.out.println("EMPID "+rs.getInt("EMPID")+" ENAME 49 // "+rs.getString("ENAME")+" JOB "+rs.getString("JOB")); 50 51 } catch (SQLException e) { 52 53 e.printStackTrace(); 54 } catch (ClassNotFoundException e) { 55 System.out.println("can't connect to it"); 56 } 57 st.close(); 58 con.close(); 59 } 60} 61
試したこと
ResultSet rs = st.executeQuery("Select EMPID, ENAME, JOB from EMPLOYEES LIke \事務チーム_A\"");
補足情報(FW/ツールのバージョンなど)
Oracle_version_18c(18.3)
Java_version_1.8
Eclipse_version_→4.14.0
###追記
何故これだと結果が返ってこないのかがわかりません。
SELECT EMPID, ENAME, JOB FROM EMPLOYEES WHERE JOB LIKE '%_務¥____A' ESCAPE '\' ORDER BY EMPID;
回答3件
あなたの回答
tips
プレビュー