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