取得した列のバインド変数の自動作成
ttIsql
にautovariables
を構成すると、TimesTenでは、フェッチした各列名を使用したバインド変数を自動作成します。行がフェッチされると、フェッチされた値が変数にコピーされます。
次の例では、employees
表からすべての行が選択されます。すべての列が取得されるので、自動変数が作成され、各列に名前が付けられます。このバインド変数には、各列で取得した最後の値が含まれます。
Command> SET AUTOVARIABLES ON; Command> SELECT * FROM employees; ... < 204, Hermann, Baer, HBAER, 515.123.8888, 1994-06-07 00:00:00, PR_REP, 10000, <NULL>, 101, 70 > < 205, Shelley, Higgins, SHIGGINS, 515.123.8080, 1994-06-07 00:00:00, AC_MGR, 12000, <NULL>, 101, 110 > < 206, William, Gietz, WGIETZ, 515.123.8181, 1994-06-07 00:00:00, AC_ACCOUNT, 8300, <NULL>, 205, 110 > Command> PRINT; EMPLOYEE_ID : 206 FIRST_NAME : William LAST_NAME : Gietz EMAIL : WGIETZ PHONE_NUMBER : 515.123.8181 HIRE_DATE : 1994-06-07 00:00:00 JOB_ID : AC_ACCOUNT SALARY : 8300 COMMISSION_PCT : <NULL> MANAGER_ID : 205 DEPARTMENT_ID : 110
各結果セットがフェッチされると、各列値は列名を使用した変数に配置されます。複数の行がフェッチされると、各列の最終値が変数の値を上書きします。変数が上書きされないようにするには、設定をオフにします。
列名として別名を渡すと、自動バインド変数名に列名ではなくその別名が使用されます。
Command> SET AUTOVARIABLES ON; Command> SELECT employee_id ID, First_name SURNAME, last_name LASTNAME FROM employees; ID, SURNAME, LASTNAME ... < 204, Hermann, Baer > < 205, Shelley, Higgins > < 206, William, Gietz > 107 rows found. Command> PRINT; ID : 206 SURNAME : William LASTNAME : Gietz
また、describe
を使用すると列名を表示することもできます。次の例では、describe
コマンドを使用し、ttConfiguration
組込みプロシージャの列名を表示します。
Command> DESCRIBE TTCONFIGURATION; Procedure TTCONFIGURATION: Parameters: PARAMNAME TT_VARCHAR (30) Columns: PARAMNAME TT_VARCHAR (30) NOT NULL PARAMVALUE TT_VARCHAR (1024) 1 procedure found.
既知の列名を指定せずにデータをフェッチする問合せでは、列名を表示するようにcolumnlabels
on
を設定します。次の例では、ttConfiguration
組込みプロシージャによって、paramname
およびparamvalue
の列が返されています。
Command> SET AUTOVARIABLES ON; Command> SET COLUMNLABELS ON; Command> call TTCONFIGURATION('LockLevel'); PARAMNAME, PARAMVALUE < LockLevel, 0 > 1 row found. Command> print paramname; PARAMNAME : LockLevel