1
波紋管代碼在java中不起作用。Oracle - SET ROLE聲明
Class.forName('oracle.jdbc.driver.OracleDriver');
Connection connection = DriverManager.getConnection('jdbc:oracle:thin:@localhost:1521:test', 'xyz', 'pass');
PreparedStatement stmt = connection.prepareStatement("set role ? identified by ?");
String role = "TEST_ROLE";
String pswd = "TEST_PASS";
stmt.setString(1, role);
stmt.setString(2, pswd);
stmt.execute();
而且上面的代碼中拋出一個異常:
java.sql.SQLSyntaxErrorException: ORA-01937: missing or invalid role name
我試圖從命令模式下,它成功地執行同樣的作用和密碼。
角色名稱是標識符。您無法在準備好的語句中將標識符作爲參數傳遞。 –
嘗試將params連接到SQL而不是執行? – GurV
@GurV,我現在有連接params的代碼。但在記錄器中它會輸出密碼。我需要避免在記錄器中顯示密碼。 – user3515080