在oracle DB上从python运行set role命令

时间:2015-12-09 13:11:58

标签: python oracle cx-oracle

我试图在python

的oracle DB上担任以下角色

Set role role_name identified by XYZ

我尝试的代码是:

self._connection = cx_Oracle.connect(self._configHelper.get_oracledb_connection_string())
cursor = self._connection.cursor()
cursor.execute('Set role role_name identified by xyz')
results = list(cursor.fetchall())

当我尝试这个时,我得到了"接口错误:不是查询"。但是当我使用SQL Developer运行它时它确实工作正常,因此查询中没有错误。

我也试过

cursor.callproc('Set role role_name identified by xyz')

并且在第1行第11列显示无效字符

有人可以指导我在Python中执行此操作的正确方法

2 个答案:

答案 0 :(得分:1)

我的代码错了,我用过

results = cursor.fetchall()

以为我会检查状态,这是导致问题的声明。所以解决方案是

self._connection = cx_Oracle.connect(self._configHelper.get_oracledb_connection_string()) cursor = self._connection.cursor() cursor.execute('Set role role_name identified by xyz')

答案 1 :(得分:0)

尝试使用execute immediate:

执行PL / SQL块
begin
  execute immediate 'Set role role_name identified by xyz';
end;