1,oracle没有offet,limit,在mysql中我们用它们来控制显示的行数,最多的是分页了。oracle要分页的话,要换成rownum。
2,oracle有一个dual表,当select后没有表时,加上的。不加会报错的。select 1 这个在mysql不会报错的,oracle下会。select 1 from dual这样的话,oracle就不会报错了。
3,对空值的判断,name != “”这样在mysql下不会报错的,但是oracle下会报错。在oracle下的要换成name is not null,(innull(**))
4,oracle下对单引号,双引号要求的很死,一般不准用双引号
5,oracle有to_number,to_date这样的转换函数,oracle表字段是number型的,如果你$_post得到的参数是123456,入库的时候,你还要to_number来强制转换一下,不然后会被当成字符串来处理。而mysql却不会。
6,group_concat这个函数,oracle是wm_concat。
7,group by,在下oracle下用group by的话,group by后面的字段必须在select后面出现,不然会报错的,而mysql却不会。
8,oracle的表字段类型也没有mysql多,并且有很多不同,例如:mysql的int,float合成了oracle的number型等。
9,oracle查询时from 表名后面 不能加上as 不然会报错的,select t.username from test as t而在mysql下是可以的。
10,oracle截取字符串的函数为:substr(字段名,起始位置,字符串长度) 起始位置可从0开始,截取结果和从1开始一样。mysql截取字符串的函数为:substring(字段名,起始位置,字符串长度) 起始位置必须从1开始,0开始不能获取到数据。
mysql :like concat(‘%’, #{param.type_name},’%’) 改成 like ‘%’|| #{param.typename,jdbctype=varchar} || ‘%’
如对本文有疑问, 点击进行留言回复!!
【Oracle】Oracle11.2.0.4迁移到oracle12.2.0.1-原服务器上新装12c+expdp
荐 Oracle Data Guard(三)Oracle Data Guard补充技术
Windows10安装Oracle19c数据库详细记录(图文详解)
Oracle用decode函数或CASE-WHEN实现自定义排序
Oracle利用errorstack追踪tomcat报错ORA-00903 无效表名的问题
网友评论