1.部分SQL语句差异
(1)SQL:select top 10 * from table
ORA: select * from table where rownum<11
(2)SQL:Select * from t1 join t2 on t1.c1=t2.c1
ORA: select * from t1,t2 where t1.c1=t2.c1
(3)select * from t1 left join t2 on t1.c1=t2.c1
ORA: select * from t1,t2 where t1.c1=t2.c1(+)
(4)SQL:select * from t1 right join t2 on t1.c1=t2.c1
ORA: select * from t1,t2 where t1.c1(+)=t2.c1
2. 其他技术差异
GPRS技术可以应用的领域有:
◆在oracle中,delete语句中的from从句中不能涉及到多个表,要基于多个表进行删除记录只有使用子查询。;
◆在oracle中,update语句不能基于多个表进行修改数据,要基于多个表进行修改数据只有使用子查询;
◆在oracle中,存储过程不能返回记录集,如果要存储过程返回记录集,可以创建视图,可以单独执行select语句 (注意:并不是说在存储过程中不能使用select语句,但select只能用于以下情况:insert into table select * from t1 /select col1 into a from table where ……(a为一变量));
◆在oracle中insert 的语法是:insert into table values() 或insert into table select * from t1;;
◆Oracle中的日期型常量必须用to_date()函数得到。;
◆Dual表是一个虚拟表,专门用于测试的目的用,注意dual表的用法:
在sql server中,如果我们项测试某个函数,例如:select convert(int,’13’) ,在 oracle 中这种表示方法是错误的,应表示为:select to_number(‘13’) from dual;;
◆得到相差的天数:两个日期相减,再用ceil或floor函数取整得到相差的月数:months_between()
◆数据类型的转换;
◆ORACLE中对象名不能超过30个字符。ORACLE中界限符是“”(对应SQLSERVER中的[ ])(我的建议是:最好不要是用界限符,能避免实用系统的保留字就尽量避免);
◆ORACLE中空字符串被看成null;
◆ORACLE中字符的比较是区分大小写的;
◆视图中如果用了order by ,并且order by 从句中的字段名都是别名,那么,在显示视图时必须显示出order by 子句中的所有字段,例如,有下面这样一个视图:
create view v
as
select name as c1,address from t1 order by c1
那么在select 该视图时
select c1,address from v 是正确的, select address from v是错误的;
◆关于临时表的问题
在sqlserver中 create table #table1 (c int);
在oracle 中解决办法是:
create global temporary table table1(c int) on commit preserve rows
这个table1在数据库中是永久存在的,所以不要是用drop命令,在你的程序中在对这个表进行任何操作之前,先执行truncate table table1,切忌不要用drop命令删除此表。;
◆http://technet.oracle.com/doc/server815.htm这个网站有许多在线教程,但一定要先注册;
3. 数据类型转换
SQL SERVER ORACLE
bigint NUMBER (19 ,0)
binary (50) RAW (50)
bit NUMBER (1, 0)
char (10) CHAR (10)
datetime DATE
decimal (18 , 0) NUMBER (18, 0)
float FLOAT
image BLOB
int NUMBER (10, 0)
money NUMBER (19 ,4)
nchar (10) CHAR (20)
ntext CLOB
numeric (18 , 0) NUMBER (18 ,0)
nvarchar (50) VARCHAR2 (100)
real FLOAT
smalldatetime DATE
smallint NUMBER (5, 0)
smallmoney NUMBER (10, 4)
sql_variant LONG RAW
text CLOB
timestamp RAW (8) NOT
tinyint NUMBER (3 ,0)
uniqueidentifier LONG RAW
varbinary (50) RAW (50)
varchar (50) VARCHAR2 (50)
分享到:
相关推荐
描述中提到的"sqlserver转oracle"则是指将SQL Server数据库的内容迁移到Oracle数据库的过程。这个过程涉及到SQL语法的转换,因为SQL Server和Oracle虽然都遵循SQL标准,但各自的语法特性和函数库有所不同。例如,SQL...
在IT行业中,数据库迁移是一项常见的任务,特别是在不同的数据库系统之间,如从SQL Server迁移到Oracle。这个过程涉及多个步骤和注意事项,确保数据的完整性和一致性。以下是对标题和描述中所述知识点的详细说明: ...
3. 配置 Oracle 客户端 tnsnames.ora 文件,其中需要注意文件中的数据库别名“ORADB”,该名称在下文创建 Linked Server 时将会使用到。 在 tnsnames.ora 文件中,需要添加以下内容: ORADB = (DESCRIPTION = ...
在Java中实现这样的转换,主要涉及到以下几个关键知识点: 1. **JDBC驱动**:Java Database Connectivity (JDBC) 是Java访问数据库的标准API。对于Oracle,我们需要Oracle JDBC驱动(如ojdbc),而对于SQL Server,...
【SQLServer2000到Oracle11G存储过程转换技术探究】 在IT行业中,数据库管理系统的选择往往因项目需求或企业偏好而异。SQLServer2000与Oracle11G作为两种广泛应用的关系型数据库系统,它们之间的存储过程在语法、...
总结,MySQL到SQL Server或反之的转换涉及到数据库对象的结构和数据的迁移,这可以通过专门的工具实现,如`mss2sql.rar`和`mysqltomssql.zip`。转换过程中需要注意语法差异、数据一致性、安全性和测试验证。理解这个...
在将 Oracle 数据库中的数据操作语言(DML)语句和过程化语言(PL/SQL)程序迁移至 SQL Server 时,需要考虑以下几个关键点: 1. **DML 语句的语法验证**: - 对于 SELECT、INSERT、UPDATE 和 DELETE 语句,首先要...
在迁移含有NCLOB特殊字段的数据时,需要注意以下几点: - **NCLOB字段兼容性:** Oracle数据库中的NCLOB字段主要用于存储大量的Unicode文本数据。在迁移过程中,需要确保Sql Server 2000中的相应字段能够正确转换为...
在实际迁移过程中,有几点需要注意: 1. 数据库兼容性:确保目标SQL Server版本与源Oracle数据库的数据结构和功能相匹配。 2. 数据类型映射:Oracle和SQL Server的数据类型有所不同,SSMA会自动进行映射,但可能需要...
可以通过创建一个SSIS包,定义从Oracle源连接到SQL Server目标的转换和加载过程。在设计数据流时,可以处理数据清洗、类型转换等任务。 2. **使用Oracle的导出和SQL Server的导入命令:** Oracle提供`expdp`和`...
通过创建DTS包,我们可以定义数据源、目标以及转换规则,实现数据从SQL Server到Oracle的迁移。步骤包括设计数据流任务,配置连接管理器,设置源和目标数据,以及运行包进行数据迁移。 2. **使用第三方工具**:市场...
在转换过程中,需要注意以下几点: (1)表结构的更改:在转换过程中,可能需要手动更改表结构,以适应Mysql数据库的要求。 (2)数据长度的限制:在转换过程中,需要注意数据长度的限制,以免出现数据截断或溢出...
在使用SQL Server订阅功能将数据复制到Oracle订阅服务器时,存在以下几点限制,需要特别注意: 1. **表名含有空格**:若表名包含空格,则复制过程会因为Oracle错误ORA-00903:无效的表名称,而导致复制失败。 2. *...
总结来说,"SQL转Oracle数据库工具 V4.0 绿色免费版"是一个实用的数据库迁移工具,它简化了SQL到Oracle的转换过程,对于学习者和小型项目具有很高的价值。但在考虑生产环境的使用时,需要权衡其功能限制和可能的风险...
在实现SQL Server与Oracle间的数据复制时,需要考虑以下几点: 1. **接口和驱动**:由于SQL Server和Oracle是两个不同的数据库系统,它们之间的数据复制通常需要中间件或者定制的接口。例如,可以使用微软的ODBC...
以下是对SQL Server 2005 Solutions - Migration - Oracle - FAQ中的几个核心知识点的深入解析。 ### SSMA:SQL Server Migration Assistant SSMA是SQL Server Migration Assistant的简称,它定义并自动化了数据库...
MySQL到SQL Server 2008的迁移是一个常见的数据库转换任务,这通常涉及到大量的数据迁移、结构转换以及应用程序的适配。SQL Server Migration Assistant (SSMA) 是微软提供的一款工具,专为帮助用户从其他数据库系统...
在“microsoft sqlserver 2008汉化”这个主题中,我们关注的是SQL Server 2008的中文版本。这对于中国用户来说非常重要,因为它使得非英语环境下的用户能够更方便地理解和使用该系统。汉化版不仅包括了界面语言的...
本文将重点讨论两个主要的数据库管理系统:Oracle和SQL Server,以及如何处理与它们相关的常见问题——密码过期和数据库备份。以下是对这两个主题的详细阐述: 1. Oracle密码过期: Oracle数据库系统为了确保安全性...
在进行数据导入导出时,需要注意以下几点: - **数据类型匹配**:确保Excel和SQL Server中的数据类型一致,避免因类型不匹配导致的导入失败或数据丢失。 - **分批处理**:对于非常大的数据集,可以考虑分批导入,...