ODBC C++ (Visual Studio 2010) SQLPrepare(.) returns SQL_ERROR 当 Oracle 11g PL/SQL 存储过程将 BLOB 作为 OUT 参数时

ODBC C++ (Visual Studio 2010) SQLPrepare(.) returns SQL_ERROR when the Oracle 11g PL/SQL stored procedure has BLOB as OUT parameter

你们中有人知道为什么当 BLOB 类型用于PL/SQL 存储过程 OUT 参数,而 VARCHAR2、NUMBER 等作为 OUT 参数工作正常?从 Oracle(SQL 开发人员)中调用时,带有 BLOB OUT 参数的存储过程工作正常。

我的C++代码: sqlReturnCode = SQLPrepare( OracleStatementHandle, (SQLCHAR*)"{call package_one.param_test_proc(?)}", SQL_NTS );

我们的一位 DBA 发现了关于我们正在使用的驱动程序的信息:

https://msdn.microsoft.com/en-us/library/ms713590%28v=vs.85%29.aspx

“重要 此功能将在 Windows 的未来版本中删除。避免在新的开发工作中使用此功能,并计划修改当前使用此功能的应用程序。相反,请使用 Oracle 提供的 ODBC 驱动程序。”

有支持说明明确声明它们不支持 CLOB/BLOB 数据类型等: https://msdn.microsoft.com/en-us/library/ms710205%28v=vs.85%29.aspx