Python 3.x 在python中调用存储过程时,如何从存储过程中获取输出
我已经编写了一个存储过程来删除表中的记录。我正在python中使用游标调用该过程。即使我使用了dbms\u output.put\u行,我也无法获得输出Python 3.x 在python中调用存储过程时,如何从存储过程中获取输出,python-3.x,oracle12c,cx-oracle,Python 3.x,Oracle12c,Cx Oracle,我已经编写了一个存储过程来删除表中的记录。我正在python中使用游标调用该过程。即使我使用了dbms\u output.put\u行,我也无法获得输出 connection = dbconnect() c = connection.cursor() c.callproc('DELETE_ds',[id]) print (c.fetchall()) c.close() connection.commit() connection.close()
connection = dbconnect()
c = connection.cursor()
c.callproc('DELETE_ds',[id])
print (c.fetchall())
c.close()
connection.commit()
connection.close()
存储过程:
我在过程中使用delete语句之后的dbms output,但它没有写入任何输出。因此,如果我想获取已删除、更新或插入的id,我如何从oracle获取它。这可能取决于您的驱动程序,您使用哪个驱动程序连接到db,另外,您使用的是哪种类型的数据库在调用该过程之前是否发出了
set serveroutput on
。@BarbarosÖzhan是。dbms_output.put_line
在dbms端内部工作,但您似乎从python端(通过控制台或子例程)调用该过程。
CREATE OR REPLACE PROCEDURE DELETE_DATASET(DATASET_ID NUMBER,DATASET_ID OUT NUMBER)
IS
BEGIN
DELETE FROM DATA_SET where DATA_SET_ID = DATASET_ID;
COMMIT;
END;
/