16.20 - LOGOFF - Teradata Vantage NewSQL Engine

Teradata Vantage™ SQL ストアド プロシージャおよび埋め込みSQL

prodname
Teradata Database
Teradata Vantage NewSQL Engine
vrm_release
16.20
category
プログラミング リファレンス
featnum
B035-1148-162K-JPN

目的

Teradata Databaseから埋め込みSQLアプリケーション プログラムを切断します。

呼び出し

実行可能形式。

埋め込みSQLのみ。

構文



CURRENT
現在のセッションだけをログオフします。
ALL
現在のユーザーに接続しているすべてのセッションをログオフします。
connection_name
接続の名前を指定します。
:connection_name_variable
接続名を含んでいるホスト変数を指定します。
先行コロン文字は必須です。

ANSI準拠

LOGOFFは、ANSI/ISO SQL:2011規格に対するTeradataの拡張機能です。

許可

なし。

ルール

  • LOGOFF文は任意選択です。省略した場合、Teradata Databaseからの切断は、アプリケーション プログラムの終了時に暗黙に実行されます。
  • LOGOFFは、Teradata Databaseへの接続が、CONNECT文、LOGON文、または暗黙の接続のいずれによって確立されたかに関係なく使用できます。
  • アプリケーションがCOMMITモードで実行している場合、LOGOFFによって未解決のトランザクションはすべてコミットされます。

    アプリケーションがいずれかのトランザクション モードで実行している場合、LOGOFFしても未解決のトランザクションはコミットされません。

  • LOGOFFは、動的文としては実行できません。
  • LOGOFF ALLは、すべてのアクティブな接続を切断します。
  • LOGOFF CURRENTは、現在のアクティブな接続を切断します。(切断オブジェクトが指定されない場合は、これがデフォルトです。)
  • LOGOFF connection_nameは、指定した接続を切断します。各接続名は固有でなければならず(最大30バイト)、大文字小文字を区別します。
  • LOGOFF:namevarは、:namevarに保管されている、指定した接続を切断します。:namevarは、30バイト以内の固定長または可変長の文字変数でなければなりません。

例1 - 4

以下のRDTINフィールドは、切断オブジェクトを指定する以下のLOGOFFに重要です。

RDTINフィールド 必須の指定
RdtVersn 10に設定。
RdtAux1 次の値のいずれかに設定。
  • 0。現在の接続を切断します。
  • 1。すべての接続を切断します。
  • 2。指定の接続を切断します。
RdtExt ’Y’に設定。指名の接続を指定した場合のみ、拡張機能領域の存在を示す。
RdtXTotL RDTXCONM拡張機能領域のサイズを含む。指名の接続を指定した場合のみ。

さらに、RdtX007 (RDTXCONM)構造は、指名の接続を指定した場合にのみ接続名と通信するので、拡張機能領域のいずれかを組み込む必要があります。

例1

以下の例では、明示的な接続名を使用して切断します。

EXEC SQL LOGOFF SESSION1;

例1でC Preprocessor2によって生成される行

{
static struct {
       SQLInt32 RdtCType;
       SQLInt16 RdtVersn;
       SQLInt16 RdtDec;
       char     RdtUserid[8];
       SQLInt32 RdtEntty;
       char     *RdtCA;
       char     *RdtDAIn;
       char     *RdtDAOut;
       char     *RdtSql;
       char     *RdtRtCon;
       SQLInt32 RdtAux1;
       SQLInt32 RdtAux2;
       char     RdtLCS;
       char     RdtComit;
       char     RdtRelse;
       char     RdtExt;
       char     RdtSepBT;
       char     RdtUCStm;
       char     RdtCmpat;
       char     RdtComp;
       SQLInt16 RdtXTotL;
       char     RdtXFill[2];
       struct {
              SQLInt16 RdtXLen;
              SQLInt16 RdtXType;
              SQLInt32 RdtXCode;
              } RdtX005;
       struct {
              SQLInt16 RdtXLen;
              SQLInt16 RdtXType;
              SQLInt16 RdtXConL;
              char     RdtXConT[30];
              } RdtX007;
       } RDTIN006 =
       {200,10,0,{' '},0,0,0,0,0,0,2,0,'N','B','N','Y','N','N',' ','C',
       48,{' '},{8,5,255},{36,7,8,'S','E','S','S','I','O','N','1'}};
RDTIN006.RdtCA = (char *)(&sqlca);
RDTIN006.RdtRtCon = SQL_RDTRTCON;
TDARDI(&RDTIN006);
SQL_RDTRTCON = RDTIN006.RdtRtCon;
  }

例2

以下の例では、VARCHARホスト変数connamevによって指定される接続名を使用して切断します。

EXEC SQL LOGOFF :CONNAMEV;

例2でC Preprocessor2によって生成される行

{
static struct {
       SQLInt32 RdtCType;
       SQLInt16 RdtVersn;
       SQLInt16 RdtDec;
       char     RdtUserid[8];
       SQLInt32 RdtEntty;
       char     *RdtCA;
       char     *RdtDAIn;
       char     *RdtDAOut;
       char     *RdtSql;
       char     *RdtRtCon;
       SQLInt32 RdtAux1;
       SQLInt32 RdtAux2;
       char     RdtLCS;
       char     RdtComit;
       char     RdtRelse;
       char     RdtExt;
       char     RdtSepBT;
       char     RdtUCStm;
       char     RdtCmpat;
       char     RdtComp;
       SQLInt16 RdtXTotL;
       char     RdtXFill[2];
       struct {
              SQLInt16 RdtXLen;
              SQLInt16 RdtXType;
              SQLInt32 RdtXCode;
              } RdtX005;
       struct {
              SQLInt16 RdtXLen;
              SQLInt16 RdtXType;
              SQLInt16 RdtXConL;
              char     RdtXConT[30];
              } RdtX007;
       } RDTIN007 =
       {200,10,0,{' '},0,0,0,0,0,0,2,0,'N','B','N','Y','N','N',' ','C',
       48,{' '},{8,5,255},{36,7,}};
RDTIN007.RdtX007.RdtXConL = CONNAMEV.len;
memcpy(RDTIN007.RdtX007.RdtXConT,CONNAMEV.arr,CONNAMEV.len);
RDTIN007.RdtCA = (char *)(&sqlca);
RDTIN007.RdtRtCon = SQL_RDTRTCON;
TDARDI(&RDTIN007);
SQL_RDTRTCON = RDTIN007.RdtRtCon;
  }

例3

以下の例では、固定長ホスト変数connamefによって指定される接続名を使用して切断します。

EXEC SQL LOGOFF :CONNAMEF;

例3でC Preprocessor2によって生成される行

{
static struct {
       SQLInt32 RdtCType;
       SQLInt16 RdtVersn;
       SQLInt16 RdtDec;
       char     RdtUserid[8];
       SQLInt32 RdtEntty;
       char     *RdtCA;
       char     *RdtDAIn;
       char     *RdtDAOut;
       char     *RdtSql;
       char     *RdtRtCon;
       SQLInt32 RdtAux1;
       SQLInt32 RdtAux2;
       char     RdtLCS;
       char     RdtComit;
       char     RdtRelse;
       char     RdtExt;
       char     RdtSepBT;
       char     RdtUCStm;
       char     RdtCmpat;
       char     RdtComp;
       SQLInt16 RdtXTotL;
       char     RdtXFill[2];
       struct {
              SQLInt16 RdtXLen;
              SQLInt16 RdtXType;
              SQLInt32 RdtXCode;
              } RdtX005;
       struct {
              SQLInt16 RdtXLen;
              SQLInt16 RdtXType;
              SQLInt16 RdtXConL;
              char     RdtXConT[30];
              } RdtX007;
       } RDTIN008 =
       {200,10,0,{' '},0,0,0,0,0,0,2,0,'N','B','N','Y','N','N',' ','C',
       48,{' '},{8,5,255},{36,7,}};
RDTIN008.RdtX007.RdtXConL = strlen(CONNAMEF);
memcpy(RDTIN008.RdtX007.RdtXConT,CONNAMEF,strlen(CONNAMEF));
RDTIN008.RdtCA = (char *)(&sqlca);
RDTIN008.RdtRtCon = SQL_RDTRTCON;
TDARDI(&RDTIN008);
SQL_RDTRTCON = RDTIN008.RdtRtCon;
  }

例4

以下の例ではすべての接続を切断します。

EXEC SQL LOGOFF ALL;

例4でC Preprocessor2によって生成される行

{
static struct {
       SQLInt32 RdtCType;
       SQLInt16 RdtVersn;
       SQLInt16 RdtDec;
       char     RdtUserid[8];
       SQLInt32 RdtEntty;
       char     *RdtCA;
       char     *RdtDAIn;
       char     *RdtDAOut;
       char     *RdtSql;
       char     *RdtRtCon;
       SQLInt32 RdtAux1;
       SQLInt32 RdtAux2;
       char     RdtLCS;
       char     RdtComit;
       char     RdtRelse;
       char     RdtExt;
       char     RdtSepBT;
       char     RdtUCStm;
       char     RdtCmpat;
       char     RdtComp;
       SQLInt16 RdtXTotL;
       char     RdtXFill[2];
       struct {
              SQLInt16 RdtXLen;
              SQLInt16 RdtXType;
              SQLInt32 RdtXCode;
              } RdtX005;
       } RDTIN009 =
       {200,10,0,{' '},0,0,0,0,0,0,1,0,'N','B','N','Y','N','N',' ','C',
       12,{' '},{8,5,255}};
RDTIN009.RdtCA = (char *)(&sqlca);
RDTIN009.RdtRtCon = SQL_RDTRTCON;
TDARDI(&RDTIN009);
SQL_RDTRTCON = RDTIN009.RdtRtCon;
  }

例: LOGOFF CURRENT

LOGOFF CURRENT文で生成されるコードは、オブジェクトの切断を指定しないLOGOFFと同じです。

RDTIN RdtAux1フィールドは0に設定する必要があります。