Oracle 数据库迁移到MYSQL语句部分问题

Oracle 数据库迁移到MYSQL语句部分问题

最近在做Oracle迁移数据到MYSQL,发现俩个数据库中的有很多的语法不对,自己各种百度以及咨询别人,特写此文章------让你不踩坑不迷路

Oracle中的decode

Oracle中的decode是一个用于判断的一个函数
decode(条件,值1,返回值1,值2,返回值2,…值n,返回值n,缺省值)

decode函数怎么用

下面展示一些 内联代码片

select decode ( 1+2,3,'a',5,'b') from dual

select decode ( 1+4,3,'a',5,'b') from dual
// 示例1:输出结果为a
select decode ( 1+2,3,'a',5,'b') from dual
// 示例2:输出结果为b
select decode ( 1+4,3,'a',5,'b') from dual    

如果使用MYSQL怎么转换

下面以上面的Oracle的写法展示一下 Mysql的写法

// MYSQL写法
	SECLECT CASE 1+4
	WHEN 3 THEN
     'a'
	WHEN 5 THEN
     'b'
	ELSE
		'c'
	END;
	from DUAL
// 坑来了,注意躲着点
CASE case_value
	WHEN when_value THEN
		statement_list
	ELSE
		statement_list
END CASE;
--------------------------
上面这个是MYSQL输入case自动出来的东西
但是如果加上END  后面的CASE就会提示错误
不信的可以去踩下坑,我踩过了就不踩了,你们可以多踩踩

Oracle的自己人(自己独有的表)

目前只接触到俩个,欢迎大佬进行再补充

user_tab_columns 是保存了当前用户的表、视图和Clusters中的列等信息,用于oracle获取表结构

那么提到这个不得不提它的同父同母的兄弟了

user_tab_colsuser_tab_columns相比多了以下几列
HIDDEN_COLUMN VARCHAR2(3)
VIRTUAL_COLUMN VARCHAR2(3)
SEGMENT_COLUMN_ID NUMBER
INTERNAL_COLUMN_ID NOT NULL NUMBER
QUALIFIED_COL_NAME VARCHAR2(4000)

那么具体这些有什么区别呢,我还不清楚
给大家附链接,供大家深入了解
华为云 数据仓库服务 GaussDB(DWS)
CSDN大佬的理解

MYSQL的自己人(内表)

MySQL版本大于5.0时,有个默认数据库
information_schema
里面存放着所有数据库的信息(比如表名、 列名、对应权限等),通过这个数据库,我们就可以跨库查询,爆表爆列
那么我怎么去用这个内表呢,萌新教程来了

下面展示一些 查询代码片段来啦

//很简单,很实用
select * from information_schema.columns

MYSQL和ORACLE的日期差距

MYSQLORACLE
当前时间date_format(date,’%Y-%m-%d’)to_char(sysdate,‘yyyy-MM-dd’)
当前日期后30天DATE_FORMAT( date_add(now(), interval 30 day), ‘%Y-%m-%d’ )to_char(sysdate+30,‘yyyy-mm-dd’)

日期的相关链接
关于计算的转换问题:
使用unsigned和signed的不同
23行:在使用signed时转换负数时没问题,但是在使用unsiged时会出现下面这个问题

24行:在使用signed和unsiged时转空不会出现不同
在这里插入图片描述

新手小白,若有不对的以及有建议请到下方的评论区将您的建议留给需要帮助的人

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值