CliPreSQLExt - 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

CliPreSQLExtは、DBCHCLのCLIプリプロセスSQLユーザー出口関数です。CliPreSQLExtを使用して、データベースの速度低下の原因になるSQLリクエストをフィルタリングし、データベースに送られるSQLリクエストを制御し、さらにSQLリクエストの時間統計を収集します。

CliPreSQLExtの呼び出し

CliPreSQLExtは、CLIIRQの直前に呼び出します。 CliPreSQLExtを呼び出す前に、CLIは以下のことを行ないます。

  1. 変数の長さが要求されない場合、CLIは、SQLリクエストが内部CLIバッファに格納できるかどうかを調べます。

    リクエストの長さが内部最大バッファ長以下である場合は、プロセスは次のステップに続きます。そうでない場合は、アボートし、エラー302を返します。

  2. SQLリクエストの長さがCliPreSQLExt構造体に格納されます。

    リクエストの長さが内部バッファ サイズ以下である場合は、プロセスは次のステップに続きます。そうでない場合は、アボートし、エラー302を返します。

  3. CliPreSQLExtを呼び出した後、CLIは以下のことを行ないます。
    • EM_OKが返された場合、Teradata SQLをデータベースに送信する。
    • エラー メッセージを受け取った場合には、リクエストをアボートします。 Teradata SQLリクエストがアボートされたときの通常のCLIエラー ロジックを使用します。
CliPreSQLExt関数の範囲内でTeradata SQLのバッファ サイズを超えてはなりません。バッファ サイズを超えると、CLIの他の領域が破壊されます。破壊は、プラットフォームに左右されます。

インターフェース

struct CliPreSQLExit
{
   char   *SQL_Request_ptr;    /* pointer to user request */
   char   Start_date[80];      /* start date in ascii */
   Int32  Clock_time;          /* clock time */
   char   dbcname[DBCNAMLEN];  /* DBC name */
   char   username[USRNAMLEN]; /* username */
   char   account[ACTNAMLEN];  /* account */
   char   password[PWDNAMLEN]; /* password */
   char   domain[DOMAINLEN];   /* domain */
   Int32  *SQL_len_ptr;        /* length of user request */
   Int32  logsessid;           /* logical session id */
   Int16  Process_Post;        /* enable post processing */
};

Start_date[80]エレメントとClock_timeエレメントは、SQLリクエストのクロック タイムを測定するために手操作で設定する必要があります。

戻り値

処理に成功した場合には、CliPreSQLExtはゼロ(0)を返します。その他の場合には、CliPreSQLExtはエラー コードを返します。 ポストプロセスSQL関数をCLIが実行する場合には、変数Process_Postは"TRUE"に設定されます。

エラー処理

CLIのエラー コード351(SQLUSREXT)がユーザーに返されます。 ただし、errmsg.txtファイルにあるエラー コードが返される場合もあります。