ストアドプロシージャまたはファンクションの宣言済みパラメータは、そのプロシージャまたはファンクションが実行されるたびに、句の定義内のプレースホルダを自動的に置き換えます。代入パラメータを使用すると、実行時に動的に句を設定する一般的な Web サービスプロシージャを作成できます。感嘆符 '!' の後に宣言されたパラメータの 1 つの名前が続いている部分文字列はすべて、パラメータの値で置換されます。こうして、実行時に 1 つ以上のパラメータ値が代入され、1 つ以上の句の値が抽出されます。
パラメータの代入を行うには、次の規則を順守する必要があります。
代入に使用するパラメータはすべて英数字にします。アンダースコアは使用できません。
代入パラメータの直後は、英数字以外の文字が続くか終了である必要があります。たとえば、!sizeXL は、X が英数字であるため、size というパラメータの値で置換されません。
パラメータ名に一致しない代入パラメータは無視されます。
感嘆符 (!) は別の感嘆符でエスケープできます。
たとえば、次のプロシージャは、代入パラメータの使用方法を示します。URL と HTTP ヘッダの定義は、パラメータとして渡します。
CREATE PROCEDURE test(uid CHAR(128), pwd CHAR(128), headers LONG VARCHAR) URL 'http://!uid:!pwd@localhost/myservice' HEADER '!headers'; |
次の文を使用して test プロシージャを呼び出し、HTTP 要求を開始できます。
CALL test('dba', 'sql', 'NewHeader1:value1\nNewHeader2:value2'); |
このプロシージャが呼び出されるたびに、異なる値を使用できます。
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2013, SAP AG or an SAP affiliate company. - SAP Sybase SQL Anywhere 16.0 |