这个问题我不知道传递参数到存储过程的步骤。
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))
你必须将参数指定为一个序列,而不是将其指定为多个参数。execute()
职能。
curs.execute('call orcl.MYFUNC(TO_DATE(?,?),?,?,?)',
(arg_in1, 'yyyy/mm/dd', arg_in2, arg_out1, arg_out2)
)