前面一篇博客使用了最简单的一种映射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)
       >  ) ;

   (3)从oracle中提取数据插入timesten

Command> call ttLoadFromOracle('lion','test','select * from root.test where id<1
0');
< 10 >
1 row found.

   (4)查询本次插入的结果集

Command> select * from lion.test;
< 0, 呵呵, 我是说明, 我是简介 >
< 1, 呵呵, 我是说明, 我是简介 >
< 2, 呵呵1, 我是说明, 我是简介 >
< 3, 呵呵, 我是说明, 我是简介 >
< 4, 呵呵, 我是说明, 我是简介 >
< 5, 呵呵, 我是说明, 我是简介 >
< 6, 呵呵, 我是说明, 我是简介 >
< 7, 呵呵, 我是说明, 我是简介 >
< 8, 呵呵, 我是说明, 我是简介 >
< 9, 呵呵, 我是说明, 我是简介 >
10 rows found.