C++ ODBC C++;(Visual Studio 2010)当Oracle 11g PL/SQL存储过程将BLOB作为OUT参数时,SQLPrepare(.)返回SQL_错误

C++ ODBC C++;(Visual Studio 2010)当Oracle 11g PL/SQL存储过程将BLOB作为OUT参数时,SQLPrepare(.)返回SQL_错误,c++,oracle11g,odbc,parameter-passing,blob,C++,Oracle11g,Odbc,Parameter Passing,Blob,当PL/SQL存储过程OUT参数使用BLOB类型,而VARCHAR2、NUMBER等作为OUT参数工作正常时,ODBC SQLPrepare(.)中的调用为什么会使SQLExecute(.)失败(返回SQL_错误)?当从Oracle(SQL Developer)内部调用时,带有BLOB OUT参数的存储过程工作正常

当PL/SQL存储过程OUT参数使用BLOB类型,而VARCHAR2、NUMBER等作为OUT参数工作正常时,ODBC SQLPrepare(.)中的调用为什么会使SQLExecute(.)失败(返回SQL_错误)?当从Oracle(SQL Developer)内部调用时,带有BLOB OUT参数的存储过程工作正常

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

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

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

有一些支持说明明确指出它们不支持CLOB/BLOB数据类型等:

如何绑定相应的缓冲区?我猜您首先调用SQLBindParameter(…);然后打电话给SQLPrepare?如果是,您能告诉我们如何绑定BLOB参数吗?我猜错误是由不正确的绑定引起的。我找到了原因(请参阅下面答案部分的原因)。感谢您关注这个问题!(: