GBase 8a
适配迁移
文章

oracle迁移到gbase, 对于空串的处理

发表于2026-03-03 13:21:5147次浏览1个评论

1.在Oracle中 ,空串和null  都显示null,在gbase中 空串和null是两个东西,所以需要在数据导出的时候 进行转换。

Oracle:

CREATE TABLE "KKK" (
 "cpf_sales_rep_uuid" numeric(35,0) NOT NULL,
 "rpt_level" numeric(1,0) DEFAULT NULL,
 "upd_usr" varchar2(8) DEFAULT NULL,
 "iris2_sales_cde" varchar2(3) DEFAULT NULL
) ;

INSERT INTO KKK VALUES (10000000000000000000000000000000001, '', '', '');
INSERT INTO KKK VALUES (10000000000000000000000000000000002, NULL, 'ADMIN', '');
INSERT INTO KKK VALUES (10000000000000000000000000000000003, NULL, '', '');
INSERT INTO KKK VALUES (10000000000000000000000000000000004, '', NULL, '');
INSERT INTO KKK VALUES (10000000000000000000000000000000005, 1, '', NULL);
INSERT INTO KKK VALUES (10000000000000000000000000000000006, NULL, '', '2');

gbase: 

 CREATE TABLE "kkk" (
 "cpf_sales_rep_uuid" decimal(35,0) NOT NULL,
 "rpt_level" decimal(1,0) DEFAULT NULL,
 "upd_usr" varchar(8) DEFAULT NULL,
 "iris2_sales_cde" varchar(3) DEFAULT NULL
) ENGINE=EXPRESS DEFAULT CHARSET=utf8 TABLESPACE='sys_tablespace' ; 

oracle 数据导出: 

gbase加载:

查询:

对比 Oracle :

 

 

对比gbase: 

 

   上述对比是一致的。

--- 导出 --null_value 'NULL'   处理 
./orato8a --user='root/"root"@172.16.3.113:1521/ORCL' --query="select * from ROOT.kkk" --file='/opt/sss/output/kkk.txt' --null_value 'NULL'  --field="," --format=3


-- 加载:--null_value 'NULL'  处理 
load data infile 'sftp://root:gbasepoc123@172.16.3.113//opt/scq/output/kkk.txt' into table test.kkk data_format 3 null_value 'NULL' fields terminated by ','date format '%Y-%m-%d %H:%i:%s' date format '%Y-%m-%d' ;

 

 

评论

登录后才可以发表评论
半夏发表于 2个月前
学习了