Tag: system.data.oracleclient

使用大型CLOB从C#调用存储过程的问题

我不是第一个遇到这些问题的人,并会在下面列出一些参考文章,但我仍在寻找合适的解决方案。 我需要从C#Web服务调用存储过程(Oracle 10g数据库)。 Web服务器安装了Oracle 9i客户端,我使用的是Microsofts System.Data.OracleClient 。 该过程将XML作为CLOB。 当XML超过4000字节 (这可能是正常的用例)时,我偶然发现了以下错误: ORA-01460 – 要求执行未实现或不合理的转换 我发现了这个 , 这个和这个post。 此外,我发现了一个很有前途的解决方法,它不直接从C#调用存储过程,而是定义了一段匿名PL / SQL代码。 此代码作为OracleCommand运行。 XML嵌入为字符串文字,过程调用从该段代码中完成: private const string LoadXml = “DECLARE ” + ” MyXML CLOB; ” + ” iStatus INTEGER; ” + ” sErrMessage VARCHAR2(2000); ” + “BEGIN ” + ” MyXML := ‘{0}’; ” + ” iStatus […]