例
コマンド文字列置換のパラメータの例
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
およびname
をemployee_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で、このユーティリティがサポートされています。