プライマリ・コンテンツに移動
Pro*C/C++プログラマーズ・ガイド
12c リリース1(12.1)
B71397-03
目次へ移動
目次
索引へ移動
索引

前
次

EXECUTE ...END-EXEC (実行可能埋込みSQL拡張機能)

用途

Pro*C/C++プログラムに無名PL/SQLブロックを埋め込みます。

前提条件

なし。

構文

キーワードおよびパラメータ

キーワードおよびパラメータ 説明

AT

PL/SQLブロックをどのデータベースに対して実行するかを指定します。次のいずれかを使用してデータベースを指定します。

db_name: DECLARE DATABASE文を使用して事前に宣言したデータベース識別子。

host_variable: 事前に宣言したdb_nameの値を持つホスト変数。この句を省略した場合、PL/SQLブロックはデフォルトのデータベースに対して実行されます。

pl/sql_block

PL/SQLブロックの作成方法など、PL/SQLの詳細は『Oracle Database PL/SQL言語リファレンス』を参照してください。

END-EXEC

このキーワードは、Oracleプリコンパイラ・プログラムが使用するプログラミング言語に関係なく、埋込みPL/SQLブロックの後に配置する必要があります。キーワードEND-EXECの後には、C/C++の文終了記号「;」を付ける必要があります。

使用上の注意

Pro*C/C++では埋込みPL/SQLブロックが1つの埋込みSQL文のように扱われるため、PL/SQLブロックはプログラムでSQL文を埋め込める場所であればどこでも埋込みが可能です。Oracleプリコンパイラ・プログラムへのPL/SQLブロックの埋込みに関する詳細は、埋込みPL/SQLを参照してください。

このEXECUTE文をPro*C/C++プログラムに使用すると、PL/SQLブロックがプログラムに埋め込まれます。

EXEC SQL EXECUTE 
    BEGIN 
        SELECT ename, job, sal 
            INTO :emp_name:ind_name, :job_title, :salary 
            FROM emp 
            WHERE empno = :emp_number; 
        IF :emp_name:ind_name IS NULL 
            THEN RAISE name_missing; 
        END IF; 
    END; 
END-EXEC; 

関連項目