【发布时间】:2016-12-22 01:17:16
【问题描述】:
我有问题。当我传递一个 Python 数组时:
self.notPermited = [2,3]
这是我的程序
def select_ids_entre_amistades(self,cod_us,ids_not):
lista = []
try:
cursor = self.__cursor.var(cx_Oracle.CURSOR)
print ids_not
data = self.__cursor.arrayvar(cx_Oracle.NUMBER, ids_not)
print data
l_query = self.__cursor.callproc("SCHEMA.PROC_SELECT_IDS_ENT_AMISTADES", [cursor,cod_us,data])
lista = l_query[0]
return lista
except cx_Oracle.DatabaseError as ex:
error, = ex.args
print(error.message)
return lista
问题是当我使用这个调用该过程时:
self.select_ids_entre_amistades(int_id,self.notPermited)
我在控制台中看到以下消息:
PLS-00306:调用“PROC”时参数的数量或类型错误
在数据库中我这样创建数组对象:
CREATE TYPE SCHEMA.ARRAY_ID_FRIENDS AS TABLE OF INT;
Oracle 存储过程是这样开始的:
CREATE OR REPLACE PROCEDURE FACEBOOK.PROC_SELECT_IDS_ENT_AMISTADES
(CONSULTA OUT SYS_REFCURSOR,COD_US IN INT, IDS_FRIEND IN SCHEMA.ARRAY_ID_FRIENDS)
我不知道问题出在哪里,我相信cx_Oracle.NUMBER 不是整数,但没有其他数字类型。提前致谢。
【问题讨论】:
标签: python-2.7 stored-procedures cx-oracle