前面一篇部落格使用了最簡單的一種映射oracle表到timesten的方式(《【Oracle Times Ten】用ttisql從oracle中映射表到timesten》),該方式不能指定表的所有者,是以預設為目前登入使用者所有。我參考了官方文檔再舉例兩種方式。
1.使用createandloadfromoraquery指令并開啟4個線程來導入到timesten,這次我們隻導入前299999條資料。
Command> createandloadfromoraquery test 4 select * from root.test where id<30000
0;
Mapping query to this table:
CREATE TABLE "LION"."TEST" (
"ID" number NOT NULL,
"NAME" varchar2(20 byte),
"NOTE" varchar2(20 byte),
"MARK" varchar2(20 byte)
)
Table test created
299999 rows loaded from oracle.
然後,繼續使用createandloadfromoraquery指令導入後面的所有資料。操作過程中會出現一個警告提示你這個表已經存在了,随後操作完成告訴你本次操作導入了多少條資料。
Command> createandloadfromoraquery test 4 select * from root.test where id>=3000
00;
Warning 2207: Table LION.TEST already exists
200001 rows loaded from oracle.
2.使用内置指令完成資料導入(如果自動送出已關閉,還需要執行送出或復原指令才能執行完成)。
(1)獲得資料結構
Command> call ttTableSchemaFromOraQueryGet('lion','test','select * from root.tes
t');
< CREATE TABLE "LION"."TEST" (
"ID" number NOT NULL,
"NAME" varchar2(20 byte),
"NOTE" varchar2(20 byte),
"MARK" varchar2(20 byte)
) >
1 row found.
(2)用提供的建議建表語句建表
Command> CREATE TABLE "LION"."TEST" (
> "ID" number NOT NULL,
> "NAME" varchar2(20 byte),
> "NOTE" varchar2(20 byte),
> "MARK" varchar2(20 byte)
> ) ;
Command> call ttLoadFromOracle('lion','test','select * from root.test where id<1
0');
< 10 >
1 row found.
Command> select * from lion.test;
< 0, 呵呵, 我是說明, 我是簡介 >
< 1, 呵呵, 我是說明, 我是簡介 >
< 2, 呵呵1, 我是說明, 我是簡介 >
< 3, 呵呵, 我是說明, 我是簡介 >
< 4, 呵呵, 我是說明, 我是簡介 >
< 5, 呵呵, 我是說明, 我是簡介 >
< 6, 呵呵, 我是說明, 我是簡介 >
< 7, 呵呵, 我是說明, 我是簡介 >
< 8, 呵呵, 我是說明, 我是簡介 >
< 9, 呵呵, 我是說明, 我是簡介 >
10 rows found.