• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:カーソルオープンでエラー(ORA-01012))

カーソルオープンでエラー(ORA-01012)

このQ&Aのポイント
  • CONNECTは成功したが、カーソルのオープンでエラーが発生しています。
  • 環境に問題があるかどうかを調査中ですが、解決策が見つかっていません。
  • 困っているので、詳しい方に助けを求めています。

質問者が選んだベストアンサー

  • ベストアンサー
  • muyoshid
  • ベストアンサー率72% (230/318)
回答No.2

こんにちわ。 #1 のmuyoshid です。 AT 句を指定してCONNECT 文を実行しているにも関わらず、 カーソル宣言でAT 句が指定されていないのが原因では ないでしょうか? AT 句の詳細については、 「Oracle8i Pro*C/C++ プリコンパイラ・プログラマーズ・ガイド」 にて確認してみて下さい。 ユーザ登録が必要 (無料) ですが、OTN Japan でPDF 形式の マニュアルをDownload する事ができます。

参考URL:
http://technet.oracle.co.jp/
ike_aqc
質問者

お礼

御指摘ありがとうございます。 現在、AT句なしでテストしています。(必要ない事が分かった為) >EXEC SQL CONNECT :UserName IDENTIFIED BY :Password USING :DbString; ちょっと頭が煮詰ってるので、クールダウン(散歩)してから作業し、追って結果を報告致します。 都合の良い時にまた、覗いてみてください。 それでは。

その他の回答 (1)

  • muyoshid
  • ベストアンサー率72% (230/318)
回答No.1

こんにちわ。 2点程確認させて下さい。  1) この現象は、Windows版, UNIX版の両方で発生するのでしょうか?  2) DB に発行しているSQL文 (CONNECT 文も含めて) を    教えて下さい。

ike_aqc
質問者

補足

1)この現象は、Windows版, UNIX版の両方で発生しています。 2)以下がSQL文です。 int db_logon(char* DbString) { char UserName[16] = USERNAME; char Password[16] = PASSWORD; strcpy((char*)UserName.arr, UserName); strcpy((char*)Password.arr, Password); strcpy((char*)DbString.arr, DbString); UserName.len = strlen((char*)UserName.arr); Password.len = strlen((char*)Password.arr); DbString.len = strlen((char*)DbString.arr); EXEC SQL WHENEVER SQLERROR GOTO sql_err; EXEC SQL DECLARE DB_NAME DATABASE; EXEC SQL CONNECT :UserName IDENTIFIED BY :Password AT DB_NAME USING :DbString; return(0); sql_err: return(-1); } int db_cursordef() { EXEC SQL WHENEVER SQLERROR GOTO sql_err; EXEC SQL DECLARE cursor CURSOR FOR SELECT A FROM TBL; return( 0 ); sql_err: return(-1); } int db_cursoropen() { EXEC SQL WHENEVER SQLERROR GOTO sql_err; EXEC SQL OPEN cursor; return( 0 ); sql_err: return( -1 ); } ---------------------- 以上画SQL文です。

関連するQ&A