如何使用jaydebeapi调用存储过程oracledb并传入和传出4个参数。

问题描述 投票:0回答:1

这个问题我不知道传递参数到存储过程的步骤。

def get_store_procedure(due_id,due_date):
    print("connect to oracle server")
    try:
        conn = jaydebeapi.connect('oracle.jdbc.driver.OracleDriver'
            ,'jdbc:oracle:thin:@127.0.0.1:1523:dws',[ 
            "admin","admin"],'/hdfs/dev/scripts/pyspark/drivers/ojdbc6.jar')

    curs = conn.cursor()
            curs.execute('call  
            orcl.MYFUNC(TO_DATE(?,?),?,?,?)',arg_in1,'yyyy/mm/dd',arg_in2,arg_out1,arg_out2))
python-3.x ojdbc jaydebeapi
1个回答
0
投票

你必须将参数指定为一个序列,而不是将其指定为多个参数。execute() 职能。

curs.execute('call orcl.MYFUNC(TO_DATE(?,?),?,?,?)',
             (arg_in1, 'yyyy/mm/dd', arg_in2, arg_out1, arg_out2)
            )
© www.soinside.com 2019 - 2024. All rights reserved.