博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oracle与Sql server 在SQL上的不同
阅读量:5060 次
发布时间:2019-06-12

本文共 1185 字,大约阅读时间需要 3 分钟。

Oracle与Sql server都遵循SQL-92标准:,但是也有一些不同之处,差别如下:

  1. Oracle中表名,字段名,存储过程名,变量名不能超过30个字符串长度。

  2. Oracle中不支持Top 语法。使用whererownum < n 代替。但需要注意如果在Top前有排序的操作,则需要先排序在利用rownum取得。

  3. Oracle中光标的使用与SqlServer中有挺大差别,主要是在循环控制方面不一致。

  4. 在Oracle中如果某列是Date类型,那么它默认的格式是yyyy-MM-dd,如果使用where colDate = ‘2005-06-08 17:14:57’就会出错,‘2005-06-08’可以。如果此时需要精确比较时间(小时,分,秒),可以采用下列方法:TO_DATE('2005-6-8 17:14:57','yyyy-mm-dd hh24:mi:ss')。由于Oracle和SQLServer在DateTime上对SQL标准的拓展实现方式不同,因此不能用同一个SQL实现。

  5. Oracle中的TimeStamp(时间戳)与SqlServer中的差别很大。SqlServer中的TimeStamp是二进制格式存储在数据库中,可以将DataSet中的这个字段类型设定为base64Binary类型。Oracle中的TimeStamp是时间格式存储的。因此,无法用同一个DataSet既装载SqlServer的TimeStamp,有装载Oracle的TimeStamp.由于在应用程序中很少用到这个值,因此可以不检索这个字段。

  6. Oracle中的TimeStamp不能像SqlServer在传入数据的时候自动填充,可以设定默认值systimestamp来实现类似功能。

  7. Oracle中没有Boolean的字段类型,可以用intger或者char代替SqlServer中的bit类型。

  8. Oracle中会将””空字符串当多NULL处理,也就是说,当应用程序往数据库中插入一个空字符串时,实际数据库会尝试插入一个NULL。如果这个字段是NOTNULL类型,那么就会出错,这种情况下可以用别的默认值代替空字符串。当从SqlServer导入数据到Oracle的时候,在NOTNULL列上的空字符串会导致导出操作失败。此时可以在导出向导中手工修改SQL脚本,将空字符串设定成一个特殊值。

  9. Oracle中不支持,SELECT . . INTO创建新表,要用CREATE TABLE 表名AS SELECT 语句 ,创建新表。

  10. 在Oracle中连接字符串用 ‘||’ 或CONCAT(COL1,COL2)函数,不能使用‘+’。

  11. 统配符 [],[^] ,Oracle好像也不支持。

转载于:https://www.cnblogs.com/gered/p/8270556.html

你可能感兴趣的文章
Flask16 项目结构、flask_script插件
查看>>
html5 的头部
查看>>
一个计时器, 点击按钮 让他 停一会, 5s后继续自动运行
查看>>
UVA - 1585 Score
查看>>
漫画算法:深度优先遍历 和 广度优先遍历
查看>>
20181207作业-郭恩赐
查看>>
C语言大数四则运算
查看>>
netstat
查看>>
Helm - Kubernetes包管理专家
查看>>
Poj3225Help with Intervals区间线段树
查看>>
sgu101 欧拉路
查看>>
package.json和package-lock.json的区别
查看>>
VMware虚拟机的Linux系统访问本地磁盘
查看>>
STL之List存储结构体
查看>>
★古今中外著名14大悖论
查看>>
[IIS] 测试的产品登陆之后有个引用外部站点js的请求半天都无法返回,导致网页一直在打转,Selenium的driver也无法对页面进行下一步的操作...
查看>>
[转]EeeBox 安裝 Debian 後驅動 Wireless 筆記
查看>>
C++中的1LL
查看>>
Python私有变量
查看>>
数据库Sharding的基本思想和切分策略
查看>>