Prepared语句不适用于set role

时间:2014-03-18 13:20:43

标签: java jdbc

我正在使用oracle角色和java并尝试通过预准备语句设置角色但是它给我的异常缺失或者无效的角色名称是我的函数

 public static void setRole(String rn,String rp,Connection cn){
          try{
            PreparedStatement pstmt = cn.prepareStatement("SET ROLE ? IDENTIFIED BY ?");  
            pstmt.setString(1, rn);
            pstmt.setString(2, rp);
            pstmt.executeUpdate();
           pstmt.close();
          }catch(Exception oops){
            oops.printStackTrace();;
          }
      }

任何帮助将不胜感激:D

2 个答案:

答案 0 :(得分:1)

尝试pstmnt.execute()而不是executeUpdate()

有些注释显示here

假定角色的更改与您执行该语句的连接对象相关联。

答案 1 :(得分:0)

尝试检查您尝试使用的角色是否存在。您可以通过将sql查询直接运行到数据库cli中来实现。