度量快速开发平台-专业、快速的软件定制快开平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 部件 流程 SQL
查看: 2359|回复: 6
打印 上一主题 下一主题

[分享] Oracle和SQL SERVER在SQL语句上的差别

[复制链接]

348

主题

3572

帖子

9731

积分

论坛元老

Rank: 8Rank: 8

积分
9731
跳转到指定楼层
楼主
发表于 2020-5-3 17:51:17 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 万望 于 2015-12-3 17:51 编辑

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好像也不支持。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1
若現在就覺得失望無力,未來那麽遠妳該怎麽扛...
————————————————————————致自己
回复

使用道具 举报

348

主题

3572

帖子

9731

积分

论坛元老

Rank: 8Rank: 8

积分
9731
沙发
 楼主| 发表于 2020-5-3 17:51:18 | 显示全部楼层
来来来,现学现卖,还是暖和的。
若現在就覺得失望無力,未來那麽遠妳該怎麽扛...
————————————————————————致自己
回复 支持 反对

使用道具 举报

348

主题

3572

帖子

9731

积分

论坛元老

Rank: 8Rank: 8

积分
9731
板凳
 楼主| 发表于 2020-5-3 17:51:19 | 显示全部楼层
这只是简单概括说明,更多详细的有待我们去学习。
若現在就覺得失望無力,未來那麽遠妳該怎麽扛...
————————————————————————致自己
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|玉祥公司客服-玉祥集团客服  本站关键词:快速开发平台

GMT+8, 2024-5-7 15:30 , Processed in 0.118527 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表