前面一篇博客使用了最简单的一种映射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.
转载于:https://blog.51cto.com/liyongyao/1208965