コマンド文字列置換のパラメータの例

Command> select * from dual where :a > 100 and :b < 100;
Type '?' for help on entering parameter values.
Type '*' to end prompting and abort the command.
Type '-' to leave the parameter unbound.
Type '/;' to leave the remaining parameters unbound and execute the command.

Enter Parameter 1 'A' (NUMBER) > 110
Enter Parameter 2 'B' (NUMBER) > 99
< X >
1 row found.
Command> var a number;
         exec :a := 110;

PL/SQL procedure successfully completed.

Command> print a
A                    : 110
Command> var b number;
         exec :b := 99;

PL/SQL procedure successfully completed.

Command> select * from dual where :a > 100 and :b < 100;
< X >
1 row found.
Command> print
A                    : 110
B                    : 99
Command> select * from dual where :a > 100 and :b < 100 and :c > 0;
Enter Parameter 3 'C' (NUMBER) > 1
< X >
1 row found.

デフォルト・オプション

環境変数TTISQLをエクスポートすることによって、デフォルトのコマンドライン・オプションを設定できます。TTISQL環境変数の値は、TTISQLコマンドラインと同じ構文要件を備えた文字列です。TTISQL環境変数とコマンドラインに同じオプションが存在している場合は、コマンドラインに指定されているオプションが常に優先されます。

ttIsql.inpからコマンドを実行します。

% ttIsql -f ttIsql.inp

すべての出力を有効にします。DSN RunDataに接続し、データベースが存在していない場合は作成します。

% ttIsql -v 4 -connStr "DSN=RunData;AutoCreate=1"

対話形式のコマンドで出力します。

% ttIsql -helpcmds

ヘルプ・テキスト全体を出力します。

% ttIsql -helpfull

すべてのttIsql set/show属性の設定を表示します。

Command> show all; 
Connection independent attribute values: 

autoprint = 0 (OFF)
columnlabels = 0 (OFF)
define = 0 (OFF)
echo 1 (ON)
FEEDBACK ON
multipleconnections =0 (OFF)
ncharencoding = LOCALE (US7ASCII)
prompt = 'COMMAND>'
timing = 0 (OFF)
verbosity = 2
vertrical = 0 (OFF)

Connection specific attribute values:

autocommit = 1 (ON)
Client timeout = 0
Connection String DSN=repdb1_1121;UID=timesten; DataStore=/DS/repdb1_1121;
 DatabaseCharacterSet=AL32UTF8; ConnectionCharacterSet=US7ASCII;
 DRIVER=/sw/tthome/install/lib/libtten.so; PermSize=20;TempSize=20; 
No errors.
isolation = READ_COMMITTED
Prefetch count = 5
Query threshold = 0 seconds (no threshold)
Query timeout = 0 seconds (no timeout)
serveroutput OFF

Current Optimizer Settings:
    Scan: 1
    Hash: 1
    Range: 1
    TmpHash: 1
    TmpTable: 1
    NestedLoop: 1
    MergeJoin: 1
    GenPlan: 0
    TblLock: 1
    RowLock: 1
    Rowid: 1
    FirstRow: 1
    IndexedOr: 1
    PassThrough: 0
    BranchAndBound: 1
    ForceCompile: 0
    CrViewSemCheck: 1
    ShowJoinOrder: 0
    CrViewSemCheck: 1
    UserBoyerMooreStringSearch: 0
    DynamicLoadEnable: 1
    DynamicLoadErrorMode: 0
    NoRemRowIdOpt: 0

Current Join Order:
    <>

Command

SQL文を準備して実行します。

% ttIsql -connStr "DSN=RunData"
ttIsql (c) 1996-2011, TimesTen, Inc. All rights reserved.
Type ? or "help" for help, type "exit" to quit ttIsql.
(Default setting AutoCommit=1)
Command> prepare 1 SELECT * FROM my_table;
         exec 1;
         fetchall;

verticalコマンドの例:

Command> call ttlogholds;
< 0, 265352, Checkpoint , DS.ds0 >
< 0, 265408, Checkpoint , DS.ds1 >
2 rows found.

Command> vertical call ttlogholds;

 HOLDLFN:       0

 HOLDLFO:       265352
 TYPE:          Checkpoint
 DESCRIPTION:   DS.ds0
 HOLDLFN:       0

 HOLDLFO:       265408
 TYPE:          Checkpoint
 DESCRIPTION:   DS.ds1
 2 rows found.

Command>

新しいユーザーを作成するには、内部ユーザーのパスワード名を一重引用符で囲んで入力します。

% ttIsql -connStr "DSN=RunData"
ttIsql (c) 1996-2000, TimesTen, Inc. All rights reserved.
Type ? or "help" for help, type "exit" to quit ttIsql.
(Default setting AutoCommit=1)
Command> CREATE USER terry IDENDTIFIED BY `secret';

mybookmarkというXLAブックマークを削除するには、次のように入力します。

% ttIsql -connStr "DSN=RunData"
ttIsql (c) 1996-2000, TimesTen, Inc. All rights reserved.
Type ? or "help" for help, type "exit" to quit ttIsql. (Default setting
AutoCommit=1) 
Command> xlabookmarkdelete;
XLA Bookmark: mybookmark
 Read Log File:  0
 Read Offset:    268288
 Purge Log File: 0
 Purge Offset:   268288
 PID:            2004
 In Use:         No
1 bookmark found.

Command> xlabookmarkdelete mybookmark;

Command> xlabookmarkdelete;

0 bookmarks found.

結果「X」が返されるまで、または問合せが10秒でタイムアウトになるまでSELECT問合せを実行するには、次のように入力します。

% ttIsql -connStr "DSN=RunData"
ttIsql (c) 1996-2000, TimesTen, Inc. All rights reserved.
Type ? or "help" for help, type "exit" to quit ttIsql. (Default setting
AutoCommit=1) 
Command> waitfor X 10 select * from dual;

XLAブックマークの管理の例

xlabookmarkdeleteコマンドを使用して、現在のXLAブックマークのステータスの確認およびブックマークの削除の両方を実行できます。このコマンドには、XLA権限またはオブジェクト所有権が必要です。

たとえば、XLAアプリケーションxlaSimpleを実行している場合は、次のように入力してブックマークのステータスを確認できます。

Command> xlabookmarkdelete;

XLA Bookmark: xlaSimple
  Read Log File: 0
  Read Offset: 630000
  Purge Log File: 0
  Purge Offset: 629960
  PID: 2808
  In Use: No
1 bookmark found.

ブックマークxlaSimpleを削除するには、次のように入力します。

Command> xlabookmarkdelete xlaSimple;

変数および出力を使用したパラメータの例

ttIsqlの置換は、SQL*Plusの置換をモデルにしています。置換機能を有効にするには、set define onまたはset define substitution_charを使用します。ユーザーがonを指定した場合の置換文字は&です。無効にするには、'set define off'を使用します。デフォルトでは、置換は無効です。デフォルトはoffです。これは、置換文字に&を選択すると、TimesTenでBITのAND演算子として使用するアンパサンドと競合するためです。有効にすると、置換文字に続く英数字識別子は、その識別子に割り当てられた値に置き換えられます。無効にすると、展開は実行されなくなります。新しい定義は、置換が無効の場合でも定義できます。ttIsqlに事前定義されている定義をリストするには、defineコマンドを使用します。

Command> show define
define = 0 (OFF)
Command> define
DEFINE            _PID = "9042" (CHAR)
DEFINE      _O_VERSION = "TimesTen Release 11.2.1.0.0" (CHAR)
Command> select '&_O_VERSION' from dual;
< &_O_VERSION >
1 row found.
Command> set define on
         SELECT '&_O_VERSION' FROM DUAL;
< TimesTen Release 11.2.1.0.0 >
1 row found.

値が定義されていない場合は、ttIsqlによって値の入力が求められます。識別子の前に置換文字を1つのみ指定してプロンプトを表示すると、識別子は1つの文の存続期間に対してのみ定義されます。2つの置換文字が使用されていて、値がプロンプト表示された場合は、明示的に識別子を定義したときのように動作します。

Command> SELECT '&a' FROM DUAL;
Enter value for a> hi
< hi >
1 row found.
Command> define a
symbol a is UNDEFINED
The command failed.
Command> SELECT '&&a' FROM DUAL;
Enter value for a> hi there
< hi there >
1 row found.
Command> define a
DEFINE               a = "hi there" (CHAR)

追加の定義を作成するには、defineコマンドを使用します。

Command> define tblname = sys.dual
         define tblname
DEFINE         tblname = "sys.dual" (CHAR)
Command> select * from &tblname;
< X >
1 row found.

runコマンドの引数は、次のスクリプトに示すように、引数をrunコマンドまたは@ (および@@)コマンドに追加すると、'&1''&2'などに対して自動的に定義されます。

CREATE TABLE &1 ( a INT PRIMARY KEY, b CHAR(10) );
INSERT INTO &1 VALUES (1, '&2');
INSERT INTO &1 VALUES (2, '&3');SELECT * FROM &1;

次のようにスクリプトを使用します:

Command> SET DEFINE ON
Command> @POPULATE mytable Joe Bob;

CREATE TABLE &1 ( a INT PRIMARY KEY, b CHAR(10) );
INSERT INTO &1 VALUES (1, '&2');
1 row inserted.

INSERT INTO &1 VALUES (2, '&3');
1 row inserted.

SELECT * FROM &1;
< 1, Joe        >
< 2, Bob        >
2 rows found.

この例では、variableコマンドを使用しています。このコマンドは、employee表から従業員を削除します。empidおよびnameemployee_idおよびlast_nameと同じデータ型の変数として宣言します。行を削除し、employee_idおよびlast_nameを変数内に戻します。正しい行が削除されたことを確認します。

Command> VARIABLE empid NUMBER(6) NOT NULL;
         VARIABLE name VARCHAR2(25) INLINE NOT NULL;
         DELETE FROM employees WHERE last_name='Ernst'
         RETURNING employee_id, last_name INTO :empid,:name;
1 row deleted.
Command> PRINT empid name;
EMPID                : 104
NAME                 : Ernst

ノート

ttIsqlユーティリティは汎用のREF CURSOR変数のみをサポートし、特定のREF CURSORタイプはサポートしません。

ttIsqlユーティリティのコマンドラインでは、無名ブロックなど複数行にわたるPL/SQL文を使用できます(この場合は「/」のみの行で終了します)。例:

Command> set serveroutput on
         BEGIN
         dbms_ouput.put_line ('Hi There');
         END;
         /
Hi There

PL/SQL block successfully executed.

Command>

UTF-8の場合、NCHAR値はUTF-8エンコードに変換されてから出力されます。

ASCIIの場合、ASCII文字に対応するNCHAR値はASCIIとして出力されます。ASCII以外のNCHAR値では、エスケープされたUnicode書式が使用されます。例:

U+3042 HIRAGANA LETTER A

これは、次のように出力されます

Command> SELECT c1 FROM t1;
< a\u3042 >

NCHARパラメータは、先頭がASCII Nで始まる一重引用符で囲まれたリテラルとして入力する必要があります。

Command> prepare SELECT * FROM t1 WHERE c1 = ?; 
         exec;

パラメータ値の入力についてヘルプを表示するには、?;を入力してください。パラメータ入力処理を終了するには、*;を入力します。

Enter Parameter 1> N'XY';

Windowsでは、すべてのTimesTen Data ManagerおよびクライアントDSNで、このユーティリティがサポートされています。