動的結果セットの許可 - Call-Level Interface Version 2

Teradata® Call-Level Interfaceバージョン2 リファレンス - ワークステーション接続システム - 17.20

Product
Call-Level Interface Version 2
Release Number
17.20
Published
2022年10月10日
Language
日本語
Last Update
2022-11-21
dita:mapPath
ja-JP/zws1641280432166.ditamap
dita:ditavalPath
ja-JP/obe1474387269547.ditaval
dita:id
B035-2418
Product Category
Teradata Tools and Utilities

使用上の注意

プロシージャがSQL PROCEDURESのWITH RETURN句またはDBCAREA Returnresulttoオプションを使用してSQLの結果がCALLerまたはアプリケーションに反映するよう要求したとしても、それを対象としたCLIv2ルーチンがDBCAREA Result-sets-OKオプションを使用してそれを許可していなければなりません。このオプションを指定しなかった場合、結果はそこに戻されません。

結果が伝播されると、結果はSQL CALLを含んだ文のあとに、加算された文番号で応答に示されます。 文番号は暗黙文の最初のパーセル(Success、OK、またはResultSummary)と暗黙文の最後のパーセル(EndStatement)の両方に含まれます。 このSuccess、OK、ResultSummaryパーセルには、ActivityType 176も含まれます。 次のパーセルはResultSetで、これはプロシージャを識別し、プロシージャが結果を配置した行番号を提供します。 他の応答パーセルがあれば、ResultSetのあとに続きます。

呼び出し(CALL)を実行するリクエストとストアド プロシージャが発行するリクエストのオプションは異なる場合があります。プロシージャ、呼び出し側、アプリケーションに提供される応答は、それぞれが設定するリクエスト オプションを反映します。 したがって、応答は、そのリクエストのDBCAREA Return-objects-as、Continued-characters-state、APH-response-OK、Return-statement-info、Max-decimal-returned、Return-identity-dataオプションの設定に従います。 プロシージャがDBCAREA MultipartIndicator応答モードを指定してラージ オブジェクト(LOB)を選択したとしても、呼び出し側またはアプリケーションがLOBをサポートしない応答モードを指定している場合、プロシージャはエラーを受け取り、応答は伝播されません。

同様に、プロシージャ、呼び出し側、アプリケーションに提供される応答では、それぞれが設定する文字セットが使用されます。 ただし、照合の場合は別です。 ストアド プロシージャをコンパイルしたときに使用された照合が、すべての応答に使用されます。

プロシージャは、DBCAREAKeep-responseオプションを使用して、SQLストアド プロシージャのSQL DECLARE CURSOR文のSCROLLまたはNO SCROLLで提供されるものと同じ情報をCLIv2に提供できます。 具体的には、「Y」の設定はNO SCROLLに相当し、伝播された結果は、伝播されていない取り出し済み行とともに、次の未取り出し行に配置されます。「P」の設定はSCROLLに相当し、伝播された結果は、以前に取り出した伝播された行とともに、最後の取り出し済み行に配置され、DBCAREA Positioning-actionを指定するCLIv2 Fetch関数、またはCLIv2 Rewind関数を使用した明示的配置で使用できます。 Success、OK、ResultSummaryパーセルのActivityCountフィールドは、初期配置にかかわらず、使用可能なすべての行を示します。

返された行の配置と異なり、ロケーターによって選択されたラージ オブジェクト(LOB)のオフセットをプロシージャが配置することはできません。 プロシージャによるLOB内の配置はいずれも反映されません。

言語 変数名
COBOL: DYNAMIC-RESULT-SETS-ALLOWED
C: dynamic_result_sets_allowed
ルーチン 動作
DBCHINI: 書き込み
DBCHCL: 読み取り(RSUP;IRQ)
使用者 動作
アプリケーション プログラム 書き込み

このDBCAREAフィールドに設定できる値は、「Y」および「N」です。