PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
15968 01/08/03 13:05:47 RE(2):PB7.0: 動的SQLについて By JSD
15967 01/08/03 12:01:02 RE(1):PB7.0: 動的SQLについて By 川端
15966 01/08/03 11:29:26 PB7.0: 動的SQLについて By JSD

カテゴリ:スクリプトの記述
日付:2001年08月03日 12:01 発信者:川端
題名:RE(1):PB7.0: 動的SQLについて

JSDさん、こんにちは。

>レコード件数を取得するSQL

>ls_jouken = SELECT COUNT(*) INTO :ll_cnt FROM XXXXXX

>があります。

>動的SQLで

>PREPARE SQLSA FROM : ls_jouken USING SQLCA;
>EXECUTE IMMEDIATE :ls_jouken ;

>と実行したのですが、変数 ll_cnt に値が入りません。

「EXECUTE IMMEDIATE」では、値を取得することは出来ません。
「EXECUTE IMMEDIATE」は、「CREATE ***」「INSERT INTO」「UPDATE」「DELETE」などといった
値が戻る必要のないSQL構文のみに対応した処理です。

どうしても動的にSQLを処理したいのであれば、「DYNAMIC CURSOR」を使ったやり方
(動的SQLのフォーマット3もしくは4)にして下さい。

例)
ls_jouken = \"SELECT COUNT(*) FROM XXXXXX\"

DECLARE mycursor DYNAMIC CURSOR FOR SQLSA ;
PREPARE SQLSA FROM :ls_jouken USING SQLCA ;

OPEN DYNAMIC mycursor ;
FETCH mycursor INTO :ll_cnt ;
CLOSE mycursor ;



付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS Windows NT 4.0
DBMS Oracle SQL*Net 8
Browser (記載なし)

Server SoftWare

OS (記載なし)
DBMS Oracle 7.3
WebServer (記載なし)

PowerSpaceの運営は、パワーフューチャー株式会社が行っております。
Copyright © 2013 Power Future Co., Ltd.