17.00 - 17.05 - FNC_DBSSessionAttrInfo - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQL外部ルーチン プログラミング

Product
Advanced SQL Engine
Teradata Database
Release Number
17.00
17.05
Published
2020年6月
Content Type
プログラミング リファレンス
Publication ID
B035-1147-170K-JPN
Language
日本語 (日本)

目的

この関数を使うと、テーブル演算子がシステム変数やセッション属性など現在のセッションに関する情報を取得できます。

構文

void 
FNC_DBSSessionAttrInfo (char  *jsonData);
char *jsonData
JSON形式の文字列として関数によって返されるセッション情報。

使用上の注意

FNC_DBSSessionAttrInfoによって返される現在のセッション情報には、以下が含まれます。
  • 現在のユーザー名
  • 現在のロール名
  • トランザクション モード
  • 照合

現在のロール名に対して、最大127のロール名が返されます。ユーザーに127を超えるロールが付与されており、ユーザーがすべてのロールを有効にするためにSET ROLE ALL文を発行した場合、現在のロール名に対して"ALL"が返されます。例えば、次の出力例は127を超えるロールが有効になっているTESTUSERに返されるセッション情報を示しています。

{"CurUserName":"TESTUSER","CurRoleName":"ALL","TransactionMode":"BTET","Collation":"ASCII"}

SET ROLE ALLを指定したがロールが127以下のユーザーの場合は、"ALL"と共に各ロール名が返されます。例えば、TESTUSER2には、Role1、Role2、およびRole3という3つのロールがあります。

{"CurUserName":"TESTUSER2","CurRoleName":["ALL","Role1","Role2","Role3"],"TransactionMode":"BTET","Collation":"ASCII"}

FNC_DBSSessionAttrInfoの使用例

次のコードは、FNC_DBSSessionAttrInfoを呼び出して現在のセッション情報文字列を取得します。

...
char jsonData [4096] = {'\0'};
FNC_DBSSessionAttrInfo(jsonData);

次のサンプル出力は、現在のユーザー名、現在のロール名、トランザクション モード、および照合を示しています。

{"CurUserName":"TESTUSER","CurRoleName":"R1","TransactionMode":"BTET","Collation":"ASCII"}