2024-05-19 01:47:50 发布
网友
它是-for sqlplus-命令:
SQL> set serveroutput on SQL> exec where.my_package.ger_result('something'); something=1823655138
它是—对于cx Oracle:
正如你所看到的-结果是不同的。 我不知道怎么修。:[
对不起,我不能复制这个。在
我没有您的PL/SQL包,因此我使用了以下存储过程:
CREATE OR REPLACE PROCEDURE p_do_somet ( p_param IN VARCHAR2 ) AS BEGIN dbms_output.put_line(p_param || '=1823655138'); END; /
我从SQL*Plus和在答案中使用Python脚本得到了相同的输出something=1823655138。在
something=1823655138
如果使用SQL*Plus和cx_-Oracle得到的结果不同,那么要么是存储过程在做一些非常有趣的事情(我不知道是什么原因导致它这样做),要么是SQL*Plus会话和Python脚本没有连接到同一个数据库和/或架构。在
import cx_Oracle dsn_tns = cx_Oracle.makedsn('my_ip_address_server_next_port', 0000, 'sid') db = cx_Oracle.connect('user', 'password', dsn_tns) curs = db.cursor() curs.callproc("dbms_output.enable") curs.callproc('where.my_package.ger_result', ['something',]) statusVar = curs.var(cx_Oracle.NUMBER) lineVar = curs.var(cx_Oracle.STRING) while True: curs.callproc("dbms_output.get_line", (lineVar, statusVar)) if statusVar.getvalue() != 0: break print lineVar.getvalue()
对不起,我不能复制这个。在
我没有您的PL/SQL包,因此我使用了以下存储过程:
我从SQL*Plus和在答案中使用Python脚本得到了相同的输出
something=1823655138
。在如果使用SQL*Plus和cx_-Oracle得到的结果不同,那么要么是存储过程在做一些非常有趣的事情(我不知道是什么原因导致它这样做),要么是SQL*Plus会话和Python脚本没有连接到同一个数据库和/或架构。在
相关问题 更多 >
编程相关推荐