자바에서 벨로우즈 코드가 작동하지 않습니다. 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, 지금 매개 변수를 연결 한 코드가 있습니다. 로거에서는 암호를 인쇄합니다. 로거에서 암호를 표시하지 않아야합니다. – user3515080