Xml ORA-01084:OCI调用中的参数无效
当我通过vb.net代码将string.empty或“”传递给下面存储过程的输入参数时,出现“ORA-01084:OCI调用中的无效参数”错误Xml ORA-01084:OCI调用中的参数无效,xml,vb.net,oracle,stored-procedures,clob,Xml,Vb.net,Oracle,Stored Procedures,Clob,当我通过vb.net代码将string.empty或“”传递给下面存储过程的输入参数时,出现“ORA-01084:OCI调用中的无效参数”错误 create or replace PROCEDURE SP_NAME ( in_xml IN CLOB, ) IS BEGIN SELECT xml.ID, xml.Name FROM XMLTABLE ('root/child' passing XMLT
create or replace PROCEDURE SP_NAME
(
in_xml IN CLOB,
)
IS
BEGIN
SELECT xml.ID,
xml.Name
FROM XMLTABLE
('root/child' passing XMLTYPE(in_xml)
columns
ID NUMBER PATH 'ID',
Name VARCHAR2(50)PATH 'Name') xml
EXCEPTION WHEN NO_DATA_FOUND THEN NULL;
WHEN OTHERS THEN RAISE_APPLICATION_ERROR (-20999, 'SP_NAME'||SQLCODE||'-'||SQLERRM) ;
END SP_NAME;
下面是用于调用SP的代码
Public Class DAL
Private _db As Microsoft.Practices.EnterpriseLibrary.Data.Database
Dim param(0) As Object
param(0) = String.Empty
_db.ExecuteNonQuery(SP_NAME, param)
End Class
另外,我有一个特定的场景,需要将空字符串传递给存储过程。不确定您希望我们说什么。您已经取出了程序的内脏,因此我们无法就如何修复代码向您提供任何建议。如果你需要帮助,你需要为我们提供一些帮助。如果有帮助,我已经更新了程序。我在select语句中提取xml,并对其他一些表执行更新。我还有一个标志参数,说明in_xml是否有xml数据。如果为false,则不执行xml提取。但问题是我无法将String.Empty或“”传递给它抛出“ORA-01084:OCI调用中的无效参数”的IN参数(在xml中)