mysql 切换成 oracle

mysql 切换成 oracle,第1张

在mysql中,数据表的主键是 auto increment

在oracle中,不支持 auto increment

<table> 标签中添加generateKey 子标签,同时需要在oracle中创建sequence。示例:

mysql的排序语句

在oracle中不支持,直接换成

即可

mysql的模糊查询语句

oracle中的concat只支持两个参数,会报参数个数错误,替换成下面的

or

注意,mysql中不支持用 || 的模糊查询

mysql中的别名可以使用uid,但是uid在oracle中是一个保留关键字。替换成oracle之后,注意有别名设置成uid的别名语句是不能通过执行的。(报找不到 from关键字)

用sqlldr从mysql导出一个表的数据到oracle中:

*** 作步骤:

1、进入mysql

mysql>select UUID, CYC_CODE, b03_05, b03_06, b03_07, b03_08, b03_09, b03_10, b03_11, b03_12, Cate_Item_Code, product_name, product_unit

from jb603_jb603_sub3 into outfile 'd:/tmp/603sub.txt'

Query OK, 79537 rows affected (0.48 sec)

mysql>show create table jb603_jb603_sub3

| jb603_jb603_sub3 | CREATE TABLE `jb603_jb603_sub3` (

`UUID` varchar(32) NOT NULL default '',

`CYC_CODE` char(2) NOT NULL default '',

`b03_05` decimal(11,2) default '0.00',

`b03_06` decimal(11,2) default '0.00',

`b03_07` decimal(11,2) default '0.00',

`b03_08` decimal(11,2) default '0.00',

`b03_09` decimal(9,0) default '0',

`b03_10` decimal(11,2) default '0.00',

`b03_11` decimal(11,2) default '0.00',

`b03_12` decimal(11,2) default '0.00',

`Cate_Item_Code` varchar(7) NOT NULL default '',

`product_name` varchar(60) default '',

`product_unit` varchar(20) default '',

PRIMARY KEY (`UUID`,`CYC_CODE`,`Cate_Item_Code`)

) TYPE=InnoDB |

2、将语句整理成oracle支持的格式:

CREATE TABLE jb603_jb603_sub3 (

UUID varchar(32) NOT NULL ,

CYC_CODE char(2) NOT NULL ,

b03_05 number(11,2) ,

b03_06 number(11,2) ,

b03_07 number(11,2) ,

b03_08 number(11,2) ,

b03_09 number(9,0) ,

b03_10 number(11,2) ,

b03_11 number(11,2) ,

b03_12 number(11,2) ,

Cate_Item_Code varchar(7) NOT NULL ,

product_name varchar(60) ,

product_unit varchar(20) ,

PRIMARY KEY (UUID,CYC_CODE,Cate_Item_Code))

3、编写sqlldr控制文件t.ctl

load data

infile 'd:/tmp/603sub.txt'

into table jb603_jb603_sub3

replace

fields terminated by x'09'

(UUID, CYC_CODE, b03_05, b03_06, b03_07, b03_08, b03_09, b03_10, b03_11, b03_12, Cate_Item_Code, product_name, product_unit)

3运行sqlplus /nolog

SQL>conn lt/lt5@ibmlt

建立jb603_jb603_sub3表

SQL> CREATE TABLE jb603_jb603_sub3 (

2UUID varchar(32) NOT NULL ,

3CYC_CODE char(2) NOT NULL ,

4b03_05 number(11,2) ,

5b03_06 number(11,2) ,

6b03_07 number(11,2) ,

7b03_08 number(11,2) ,

8b03_09 number(9,0) ,

9b03_10 number(11,2) ,

10b03_11 number(11,2) ,

11b03_12 number(11,2) ,

12Cate_Item_Code varchar(7) NOT NULL ,

13product_name varchar(60) ,

14product_unit varchar(20) ,

15PRIMARY KEY (UUID,CYC_CODE,Cate_Item_Code))

表已创建。

5、ho进入 *** 作系统命令行

在 *** 作系统命令行运行sqlldr lt/lt_5@ibmlt d:/tmp/t.ctl

提交导入脚本,逻辑记录计数79537

6、exit回到sqlplus查询导入结果

SQL>select count(*)from JB603_JB603_SUB3

COUNT(*)

----------


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7245054.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-03
下一篇 2023-04-03

发表评论

登录后才能评论

评论列表(0条)

保存