Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - SQL リファレンス » SQL の使用 » SQL 文 » SQL 文 (P ~ Z)

 

PREPARE 文 [ESQL]

この文は、後から実行する文、またはカーソルの定義に使用する文を準備するために使用します。

構文
PREPARE statement-name
   FROM statement
[ DESCRIBE describe-type INTO [ [ SQL ] DESCRIPTOR ] descriptor ]
[ WITH EXECUTE ]
statement-name :  identifier または hostvar
statement :   string または hostvar
describe-type :
  [ ALL | BIND VARIABLES | INPUT | OUTPUT | SELECT LIST ]
  [ LONG NAMES [ [ [ OWNER. ]TABLE. ]COLUMN ]
        | WITH VARIABLE RESULT ]
パラメータ
  • statement-name   文の名前は、識別子またはホスト変数とすることができます。ただし、複数の SQLCA を使用する場合には識別子を使用しないでください。そのような場合に識別子を使用すると、2 つの準備文の文番号が同じになり、誤った文が実行されたり開かれたりすることがあります。また、マルチスレッドのアプリケーションの場合、文の名前に ID を使用することはおすすめしません。文の名前は複数のスレッドから同時に参照される場合があるためです。

  • DESCRIBE 句   DESCRIBE INTO DESCRIPTOR を使用すると、準備文は指定した記述子に記述されます。記述タイプとして、DESCRIBE 文で許容されるいずれかのものを使用できます。

  • WITH EXECUTE 句   WITH EXECUTE 句を使用すると、CALL または SELECT 文ではなく、ホスト変数が含まれていない場合にのみ、文が実行されます。正常に実行された後、文はその場で削除されます。文の準備と記述が正常に終了し、文が実行できない場合、警告 SQLCODE 111、SQLSTATE 01W08 が設定され、文は削除されます。

    DESCRIBE INTO DESCRIPTOR 句と WITH EXECUTE 句を使用すると、必要なクライアント/サーバ通信を最小限に抑えて、パフォーマンスを改善できる場合があります。

  • WITH VARIABLE RESULT 句   WITH VARIABLE RESULT 句は、複数の結果セットと異なる数または種類のカラムを持つプロシージャの記述に使用します。

    WITH VARIABLE RESULT を使用する場合、記述後にデータベース・サーバによって SQLCOUNT 値に次のいずれかの値が設定されます。

    • 0   結果セットは変更される場合があります。各 OPEN 文の後でプロシージャ・コールを記述し直してください。

    • 1   結果セットは固定です。再度記述する必要はありません。

    静的と動的

    互換性を保つために、COMMIT、PREPARE TO COMMIT、ROLLBACK 文の準備は引き続きサポートされています。ただし、静的 Embedded SQL を使って、すべてのトランザクション管理操作を行うことをおすすめします。特定のアプリケーション環境では、これが必要とされるからです。また、他の Embedded SQL システムは、動的トランザクション管理操作をサポートしません。

備考

PREPARE 文は、statement から SQL 文を準備し、準備した文を statement-name と関連付けます。この statement name を参照し、文を実行します。または、statement が SELECT 文の場合、カーソルを開きます。statement-name は、sqlca.h ヘッダ・ファイルの中で定義される a_sql_statement_number 型のホスト変数であり、自動的に含まれます。識別子が statement-name に使用される場合、モジュールごとに 1 つの文だけが、statement-name と一緒に準備されます。

statement-name にホスト変数を使用する場合は、SHORT INT 型にします。sqlca.h 内には、この型の型定義 a_sql_statement_number があります。この型を SQL プリプロセッサが認識し、DECLARE セクションの中で使用できます。PREPARE 文の実行中に、データベースによってホスト変数が埋められるので、プログラマが初期化する必要はありません。

パーミッション

なし

関連する動作

以前に同じ名前で準備した文が失われます。

WITH EXECUTE を指定した文は、実行が成功した場合のみ削除されます。それ以外の場合は、DROP を使って文を使用後に削除してください。DROP しないと、文が使ったメモリを再使用できません。

参照
標準と互換性
  • SQL/2003   コア機能。

次の文は、簡単なクエリを準備します。

EXEC SQL PREPARE employee_statement FROM
'SELECT Surname FROM Employees';