PRO*C書き方
【EXEC SQL WHENNEVER SQLERROR GOTO errorpt;】
WHENEVERはSQLの例外宣言で、
SQLを実行した時に失敗(ユーザの誤りやXDBの異常によって,SQLが正常に実行されなかったとき)errorptへGOTOする処理。
GOTOとか省略可能かも。
またSQLの実行自体がこの例外処理の下に記載されていてもwheneverの条件になるときはそっちの例外処理が適用されているっぽい。
(無限ループの中にそんな感じでbreakするサンプルがあった。革新はない。懸賞の余地ありかな。)
【EXEC SQL CONNECT :username IDENTIFIELD BY :password;】
DB接続
【EXEC SQL DECLARE CUR1 CURSOR FOR】
カーソルの宣言
→exec sql declare カーソル名 cursor for select 文;
そしてカーソルをオープンする
→exec sql open カーソル名;
で、カーソル内の1行ずつデータを取り出すにはFETCH文を使う。
→exec sql fetch in カーソル名 into ホスト変数リスト ;
FETCHはすべての行を読み終わると、”not found”という例外を発生する仕組みになっているので、前もって例外発生時のアクションを指定する必要がある。
→exec sql whenever not found do break;
本当にわかりやすい。