次のコードを使用すると、Oracleデータベースで常にその値を取得できます
SQLHSTMT hStmt = SQL_NULL_HANDLE;
SQLRETURN sret;
SQLLEN rowCount = 0;
const SQLHDBC conn = this->getConnection();
if (conn == NULL)
{
ret = false;
}
SQLAllocHandle(SQL_HANDLE_STMT, conn, &hStmt);
std::string metaTableName="meta_table";
sret=SQLTables( hStmt,
NULL, 0, /* no specific catalog */
NULL, 0, /* no specific schema */
(SQLCHAR *)metaTableName.c_str(), SQL_NTS,
NULL, 0); /* no specific type - table or view */
if ((sret != SQL_SUCCESS) && (sret != SQL_SUCCESS_WITH_INFO))
{
std::cout << "Problem retrieving " << metaTableName << " table from database!" << std::endl);
ret= false;
}
SQLRowCount(hStmt,&rowCount);
std::cout <<std::endl << "Rows: " <<rowCount<<std::endl ;
エラーメッセージがないため、この動作の明らかな原因はありません
Oracle ライブラリの使用: oracle-instantclient11.2-odbc-11.2.0.1.0-1.x86_64
そのような行動の理由について何か考えはありますか?