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

前
次

SELECT (実行可能埋込みSQL)

用途

選択した値をホスト変数に割り当てて、1つ以上の表、ビューまたはスナップショットからデータを取り出します。

前提条件

表またはスナップショットからデータを選択するには、表またはスナップショットがユーザーのスキーマ内にあるか、あるいは表またはスナップショットに対してSELECTの権限を持っている必要があります。

ビューの実表から行を選択するには、ビューが属するスキーマの所有者が、実表に対してSELECTの権限を持っている必要があります。また、ビューが自分のスキーマ以外のスキーマ内にある場合は、ビューに対してSELECTの権限を持つ必要があります。

SELECT ANY TABLEのシステム権限を使用すると、すべての表、スナップショット、ビューの実表からデータを選択できます。

構文

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

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

AT

どのデータベースに対してSELECT文を発行するかを指定します。次のいずれかを使用してデータベースを指定します。

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

host_variable: 事前に宣言したdb_nameの値を持つホスト変数。この句を省略した場合、SELECT文はデフォルトのデータベースに対して発行されます。

select_list

非埋込みSELECT文と同じですが、リテラルのかわりにホスト変数を使用できます。

INTO

SELECT文が戻すデータを受け取る出力ホスト変数とオプションの標識変数を指定します。これらの変数は、すべてスカラーか、すべて配列である必要があります。ただし、配列は同じサイズでなくてもかまいません。

WHERE

戻される行を、条件がTRUEの行のみに制限します。条件の構文については、『Oracle Database SQL言語リファレンス』を参照してください。条件には、ホスト変数は使用できますが、標識変数は使用できません。これらのホスト変数はスカラーである必要があり、配列は使用できません。

その他のキーワードおよびパラメータは、非埋込みSQLのSELECT文と同じです。ORDER BY句のデフォルトは、昇順を示すASCです。

使用上の注意

WHERE句の条件を満たす行が存在しない場合、行は取り出されず、OracleはSQLCAのSQLCODEコンポーネントを使用してエラー・コードを戻します。

SELECT文でコメントを使用して、指示(つまりヒント)をオプティマイザに渡すことができます。オプティマイザは、これらのヒントを使用して文の実行計画を選択します。ヒントの詳細は、Oracle Databaseパフォーマンス・チューニング・ガイドを参照してください。

この例では、埋込みSQLのSELECT文の使用方法を示します。

EXEC SQL SELECT ename, sal + 100, job 
    INTO :ename, :sal, :job 
    FROM emp 
    WHERE empno = :empno; 

関連項目