表またはスナップショットからデータを選択するには、表またはスナップショットが自分のスキーマにあるか、またはその表あるいはスナップショットに対するREADまたはSELECT権限が必要です。
ビューの実表から行を選択するには、ビューが属するスキーマの所有者に、実表に対するREADまたはSELECT権限が必要です。また、ビューが自分以外のスキーマにある場合は、そのビューに対するREADまたはSELECT権限が必要です。
READ ANY TABLEまたはSELECT ANY TABLEシステム権限を使用すると、すべての表、スナップショットまたはビューの実表からデータを選択できます。
OracleをDBMS MACモードで使用している場合は、DBMSラベルが問合せ先の各表、ビューまたはスナップショットの作成ラベルより上位にあるか、READUPシステム権限が必要です。
READ権限は、SELECT ... FOR UPDATE操作には使用できません。
AT
SELECT文の発行先のデータベースを指定します。次のいずれかを使用してデータベースを指定します。
db_nameは、DECLARE DATABASE文で事前に宣言したデータベース識別子。
:host_variableは、値が事前に宣言したdb_nameであるホスト変数。
この句を省略した場合、SELECT文はデフォルトのデータベースに対して発行されます。
select_list
非埋込みSELECTコマンドと同じですが、リテラルのかわりにホスト変数を使用できます。
SELECT文が戻すデータを受け取る出力ホスト変数とオプションのインディケータ変数を指定します。これらの変数は、すべてスカラーか、すべて配列である必要があります。ただし、配列は同じサイズでなくてもかまいません。
WHERE
戻される行を、条件がTRUEの行のみに制限します。conditionには、ホスト変数を使用できますが、インジケータ変数は使用できません。これらのホスト変数は、スカラーと配列のどちらでもかまいません。
その他のキーワードおよびパラメータはすべて、非埋込みSQL SELECTコマンドと同じです。