![](/img/trans.png)
[英]Calling Oracle stored procedure with XMLTYPE input and output parameters with Python and Cx_Oracle
[英]Python cx_Oracle unable to insert XMLType in Oracle 11g database using a stored procedure
我正在嘗試調用 Python 中的存儲過程來插入 XML 數據,但它不起作用:(
這是詳細信息-
create or replace procedure t(a in XMLType, b out number) as
begin
b := 5;
end;
/
代碼是 -
xmlData = """<?xml version="1.0"?>
<customer>
<name>John Smith</name>
<Age>43</Age>
<Designation>Professor</Designation>
<Subject>Mathematics</Subject>
</customer>"""
xmlval=cx_Oracle.CLOB
xmlval = xmlData
try:
r=c.var(cx_Oracle.NUMBER)
c.callproc("T", [xmlval,r])
print("Result = ",r.getvalue(pos=0))
c.close()
except cx_Oracle.DatabaseError as ex:
err, =ex.args
print("Error code = ",err.code)
print("Error Message = ",err.message)
os._exit(1)
所以這實際上不是一個答案,但我無法發表評論,因為我沒有 50 聲望。
但您可以嘗試像這樣設置 xmlval 的價值:
xmlval=cx_Oracle.CLOB
xmlval.setvalue(0, xmlData)
您可以將其作為 CLOB 傳遞給包裝器 function 或匿名 PL/SQL 塊,例如:
c.execute("begin t(sys.xmltype(:xmlval),:r); end;", [xmlval,r])
cx_Oracle 手冊中有一些關於綁定有關 XMLType 的 LOB 的背景知識。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.