파이썬 스크립트에서 2 in 및 1 out 매개 변수로 oracle 저장 프로 시저를 호출하려고합니다. 내가 겪고있는 문제는 커서를 매개 변수로 전달하는 것입니다.파이썬 스크립트에서 커서 출력 매개 변수로 oracle 저장 프로 시저 호출
오라클 저장 프로 시저는 본질적으로 :
#! /usr/bin/python
import cx_Oracle
lac='11508'
ci='9312'
try:
my_connection=cx_Oracle.Connection('login/[email protected]_name')
except cx_Oracle.DatabaseError,info:
print "Logon Error:",info
sys.exit()
my_cursor=my_connection.cursor()
cur_var=my_cursor.var(cx_Oracle.CURSOR)
my_cursor.callproc("cgi_info.ci_lac_state", [lac, ci, cur_var])
print cur_var.getvalue()
그리고 결과 등 커서 값을 얻을 :
PROCEDURE ci_lac_state
(LAC_ID_IN IN VARCHAR2,
CI_ID_IN IN VARCHAR2 DEFAULT NULL,
CGI_ID OUT SYS_REFCURSOR)
AS
BEGIN
OPEN cgi_id FOR
...
END;
데이터베이스에 호출 파이썬 코드는
<__builtin__.OracleCursor on <cx_Oracle.Connection to [email protected]_name>>
내가 뭘 잘못하고 있니?
감사합니다.
'print cur_var.getvalue (pos = 0)'를 시도 했습니까? 또는 CGI_ID –
인 [curthout 매개 변수에 전달하는 파이썬 - 오라클] 복제본 인 cur_var를 검색해야하는 경우 pos = 2 일 수 있습니다 (http://stackoverflow.com/questions/6821372/python-oracle-passing-in -a-cursor-out-parameter) – ThinkJet
FoxMaSk에게. 예. 나는이 "print cur_var.getvalue (pos = 0)"을 시도했지만, "<@ 내장 Oracle __에서 OracleCursor를>"같은 결과를 얻습니다. "pos = 2"는 새로운 오류로 이어집니다 : print cur_var.getvalue (pos = 1) IndexError : Variable_GetSingleValue : 배열 크기 초과 –
user2831245