ストアド プロシージャの戻り結果 - Call-Level Interface Version 2

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

Product
Call-Level Interface Version 2
Release Number
17.10
Published
2021年6月
Language
日本語
Last Update
2021-09-23
dita:mapPath
ja-JP/ttt1608578409164.ditamap
dita:ditavalPath
ja-JP/ttt1608578409164.ditaval
dita:id
B035-2418
Product Category
Teradata Tools and Utilities

使用上の注意

アプリケーションがプロシージャを構成する文をデータベースに送信すると、それらの文はデータベースでコンパイルされ、以後の実行用に保存されます。 プロシージャを定義するアプリケーションはSQL文を送信して、プロシージャの作成(CREATE PROCEDURE)または置き換え(REPLACE PROCEDURE)を実行する必要があります。

データベースで外部ストアド プロシージャがサポートされていない場合、SQLは拒否されます(SQLがサポートされていることを確認する機能は提供されていません)。

サポートされる場合は、ElicitFile応答パーセルが返され、その結果、アプリケーションはCLIv2 ContinueRequest関数を使用してプロシージャの文をデータベースに送信します。

すべての文が送信されると、プロシージャがコンパイルされ、データベースに保存されます。 コンパイルに使用される文字セットは、プロシージャの作成または置き換えで使用した文字セットです。

プロシージャの使用

すでにコンパイルされ保存されたプロシージャを呼び出すためには、SQL CALL文をデータベースに送信します。 呼び出しが行なわれると、SQL READS SQL DATAまたはWRITES SQL DATA句で定義されたプロシージャは、自らCLIv2を呼び出して、接続を確立し、SQLリクエストを送信できます。 このときの接続は、標準データベース ログオン文字列を供給する、新規接続(DBCAREA Use-default-connの値が「N」)でもよいし、またプロシージャの呼び出しに使用したセッションを使用することもできます(DBCAREA Use-default-connが「Y」)。

後者はデフォルト接続と呼ばれるもので、いくつかの制限があります。 具体的にいうと、プロシージャの実行に使用される文字セットは、CALLの送信で使用された文字セットではなく、プロシージャの作成または置き換え時に設定された文字セットとなります。 この文字セットを確認する機能は提供されていません。

また、アプリケーションによって設定された次のオプションは変更できません。
  • Date-form
  • Language-conformance
  • Statement-status
  • Transaction-semantics
  • 2PC

これらのオプションに対するアプリケーションの設定を確認する機能は提供されていません。 また、デフォルト接続は切断できません。

プロシージャは、DBCAREA Return-result-toオプションを使用して、SQLストアド プロシージャのSQL PROCEDURE文のWITH RETURN句で提供されるものと同じ情報をCLIv2に提供できます。 具体的には、SQLリクエストの結果を要求者、プロシージャの呼び出し側、アプリケーションのいずれに返すかという情報です。 呼び出し側またはアプリケーションに結果を伝播する場合は、ResultSet応答パーセルが先行します。

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

このDBCAREAフィールドに設定できる値は、0~5です。