SQLSERVER 和ORACLE数据类型对应关系详解

合集下载

将SQLSERVER中的数据同步到ORACLE中

将SQLSERVER中的数据同步到ORACLE中

如何将SQLServer2005中的数据同步到Oracle中有时由于项目开发的需要,必须将SQLServer2005中的某些表同步到Oracle数据库中,由其他其他系统来读取这些数据。

不同数据库类型之间的数据同步我们可以使用链接服务器和SQLAgent来实现。

假设我们这边(SQLServer2005)有一个合同管理系统,其中有表contract 和contract_project是需要同步到一个MIS系统中的(Oracle9i)那么,我们可以按照以下几步实现数据库的同步。

1.在Oracle中建立对应的contract 和contract_project表,需要同步哪些字段我们就建那些字段到O racle表中。

这里需要注意的是Oracle的数据类型和SQLServer的数据类型是不一样的,那么他们之间是什么样的关系拉?我们可以在SQLServer下运行:SELECT*FROM msdb.dbo.MSdatatype_mappingsSELECT*FROM msdb.dbo.sysdatatypemappings来查看SQLServer和其他数据库系统的数据类型对应关系。

第一个SQL语句是看SQL转Oracle的类型对应,而第二个表则更详细得显示了各个数据库系统的类型对应。

根据第一个表和我们的SQLServer中的字段类型我们就可以建立好Oracle表了。

ORACLE bigint NUMBER1931ORACLE binary BLOB NULL01ORACLE binary RAW-141ORACLE bit NUMBER131ORACLE char CHAR-141ORACLE char CLOB NULL01ORACLE char VARCHAR2-141ORACLE datetime DATE NULL01ORACLE decimal NUMBER-131ORACLE double precision FLOAT NULL01ORACLE float FLOAT NULL01ORACLE image BLOB NULL01ORACLE int NUMBER1031ORACLE money NUMBER1931ORACLE nchar NCHAR-141ORACLE nchar NCLOB NULL01ORACLE ntext NCLOB NULL01ORACLE numeric NUMBER-131ORACLE nvarchar NCLOB NULL01ORACLE nvarchar NVARCHAR2 -141ORACLE nvarchar(max) NCLOB NULL01ORACLE real REAL NULL01ORACLE smalldatetime DATE NULL01ORACLE smallint NUMBER531ORACLE smallmoney NUMBER1031ORACLE sysname NVARCHAR2 12841ORACLE text CLOB NULL01ORACLE timestamp RAW841ORACLE tinyint NUMBER331ORACLE uniqueidentifier CHAR3841ORACLE varbinary BLOB NULL01ORACLE varbinary RAW-141ORACLE varbinary(max) BLOB NULL01ORACLE varchar CLOB NULL01ORACLE varchar VARCHAR2-141ORACLE varchar(max) CLOB NULL01ORACLE xml NCLOB NULL01ORACLE bigint NUMBER1931ORACLE binary BLOB NULL01ORACLE binary RAW-141ORACLE bit NUMBER131ORACLE char CHAR-141ORACLE char CLOB NULL01ORACLE char VARCHAR2-141ORACLE datetime DATE NULL01ORACLE decimal NUMBER-131ORACLE double precision FLOAT NULL01ORACLE float FLOAT NULL01ORACLE image BLOB NULL01ORACLE int NUMBER1031ORACLE money NUMBER1931ORACLE nchar CHAR-141ORACLE nchar CLOB NULL01ORACLE ntext CLOB NULL01ORACLE numeric NUMBER-131ORACLE nvarchar CLOB NULL01ORACLE nvarchar VARCHAR2-141ORACLE nvarchar(max) CLOB NULL01ORACLE real REAL NULL01ORACLE smalldatetime DATE NULL01ORACLE smallint NUMBER531ORACLE smallmoney NUMBER1031ORACLE sysname VARCHAR212841ORACLE text CLOB NULL01ORACLE timestamp RAW841ORACLE tinyint NUMBER331ORACLE uniqueidentifier CHAR3841ORACLE varbinary BLOB NULL01ORACLE varbinary RAW-141ORACLE varbinary(max) BLOB NULL01ORACLE varchar CLOB NULL01ORACLE varchar VARCHAR2-141ORACLE varchar(max) CLOB NULL01ORACLE xml CLOB NULL01ORACLE bigint NUMBER1931ORACLE binary BLOB NULL01ORACLE binary RAW-141ORACLE bit NUMBER131ORACLE char CHAR-141ORACLE char CLOB NULL01ORACLE char VARCHAR2-141ORACLE datetime DATE NULL01ORACLE decimal NUMBER-131ORACLE double precision FLOAT NULL01ORACLE float FLOAT NULL01ORACLE image BLOB NULL01ORACLE int NUMBER1031ORACLE money NUMBER1931ORACLE nchar NCHAR-141ORACLE nchar NCLOB NULL01ORACLE ntext NCLOB NULL01ORACLE numeric NUMBER-131ORACLE nvarchar NCLOB NULL01ORACLE nvarchar NVARCHAR2 -141ORACLE nvarchar(max) NCLOB NULL01ORACLE real REAL NULL01ORACLE smalldatetime DATE NULL01ORACLE smallint NUMBER531ORACLE smallmoney NUMBER1031ORACLE sysname NVARCHAR2 12841ORACLE text CLOB NULL01ORACLE timestamp RAW841ORACLE tinyint NUMBER331ORACLE uniqueidentifier CHAR3841ORACLE varbinary BLOB NULL01ORACLE varbinary RAW-141ORACLE varbinary(max) BLOB NULL01ORACLE varchar CLOB NULL01ORACLE varchar VARCHAR2-141ORACLE varchar(max) CLOB NULL01ORACLE xml NCLOB NULL012.建立链接服务器。

SQLSERVER 和ORACLE数据类型对应关系详解

SQLSERVER 和ORACLE数据类型对应关系详解

Oracle SQLServer 比较SQLServer 常见的数据库类型字符数据类型CHAR CHAR :都是固定长度字符资料但oracle里面最大度为2kb,SQLServer里面最大长度为8kb变长字符数据类型VARCHAR2 VARCHAR :racle里面最大长度为4kb,SQLServer 里面最大长度为8kb根据字符集而定的固定长度字符串NCHAR :NCHAR 前者最大长度2kb后者最大长度4kb根据字符集而定的可变长度字符串NVARCHAR2 NVARCHAR :者最大长度都为4kb 日期和时间数据类型DATE 有Datetime和Smalldatetime两种在oracle里面格式为DMY在SQLSerser里面可以调节,默认的为MDY数字类型NUMBER(P,S) NUMERIC[P(,S)] :Oracle里面p代表小数点左面的位数,s代表小数点右面的位数。

而SQLServer里面p代表小数点左右两面的位数之和,s代表小数点右面的位数。

数字类型DECIMAL(P,S) DECIMAL[P(,S)] :racle里面p代表小数点左面的位数,s代表小数点右面的位数。

而SQLServer里面p代表小数点左右两面的位数之和,s代表小数点右面的位数。

整数类型INTEGER INT 同为整数类型,存储大小都为4个字节浮点数类型FLOAT FLOAT实数类型REAL REALORACLE的数据类型常用的数据库字段类型如下:字段类型中文说明限制条件其它说明CHAR 固定长度字符串最大长度2000 bytesVARCHAR2 可变长度的字符串最大长度4000 bytes 可做索引的最大长度749 NCHAR 根据字符集而定的固定长度字符串最大长度2000 bytesNVARCHAR2 根据字符集而定的可变长度字符串最大长度4000 bytesDATE 日期(日-月-年)DD-MM-YY(HH-MI-SS)LONG 可变长度的字符数据最大长度2G(231-1)足够存储大部头著作RAW 固定长度二进制数据最大长度2000 bytes 可存放比较小的多媒体图象声音等LONG RAW 可变长度的二进制数据最大长度2G 可存放比较大的多媒体图象声音等BLOB 大型的二进制对象(可变长度)最大长度4GCLOB 大型的CHAR类型数据NCLOB 大型的NCHAR类型数据BFILE 存放在数据库外的大型的二进制文件ROWID 数据表中记录的唯一行号10 bytes ********.****.****格式,*为0或1,存储在索引中。

sql server跨库查询oracle语句

sql server跨库查询oracle语句

SQL Server 是微软公司推出的一种关系型数据库管理系统(RDBMS),而 Oracle 则是甲骨文公司的一种商业关系型数据库管理系统。

在实际应用中,有时候需要进行跨库查询,即在 SQL Server 中查询 Oracle 数据库的数据。

本文将介绍如何编写 SQL 语句来实现跨库查询。

1. 连接 Oracle 数据库在 SQL Server 中进行跨库查询,首先需要建立与 Oracle 数据库的连接。

可以通过使用“信息服务器”功能来实现这一步骤。

在 SQL Server Management Studio 中,找到“服务器对象”下的“信息服务器”,右键单击后选择“新建信息服务器”,在弹出的对话框中选择“Oracle Provider for OLE DB”,并填写相应的连接信息,如Oracle 数据库的位置区域、用户名、密码等。

注意要确保 SQL Server 和 Oracle 数据库之间网络畅通,并且有相应的权限。

2. 执行跨库查询连接建立完成后,就可以在 SQL Server 中编写跨库查询的 SQL 语句了。

在执行查询时,可以使用四部分限定名来指定 Oracle 数据库中的表。

如果在 Oracle 数据库中有一个叫做“EMPLOYEE”的表,可以通过以下方式在 SQL Server 中进行查询:```sqlSELECT * FROMOracleServerName.OracleDatabaseName.dbo.EMPLOYEE```其中,“OracleServerName”是在连接服务器时设置的名称,“OracleDatabaseName”是Oracle 数据库的名称,“EMPLOYEE”是要查询的表名。

3. 使用 OPENQUERY 函数另一种执行跨库查询的方法是使用 SQL Server 中的 OPENQUERY 函数。

这个函数可以在 SQL Server 中直接执行一个在远程服务器上的查询。

基于NetBeans的SQL Server到Oracle的通用数据迁移JAVA程序

基于NetBeans的SQL Server到Oracle的通用数据迁移JAVA程序

在这里:
editor­fold
是编辑器折叠
defaultstate="collapsed" 是默认状态,collapsed 是折叠的
desc=" 构造函数 "
是说明 (describe)
点击行号 15 后面小方框中的减号可以折叠代码如下:
当光标悬停在折叠得代码上时可以不展开折叠直接查看自动显示的代码。 也可以点击行号 15 后面小方框中的加号展开折叠的代码。 ¨ 重新排列代码 代码经过添加修改会变得不整齐或不符合缩进规定,这时我们可以整理代码: 在编辑器中的任意位置 > 右击 > 重新设置代码格式。 ¨ 导入必须的包 添加了代码后可能会有一些类的包需要引入: 在编辑器中的任意位置 > 右击 > 修复导入。 ¨ 添加主类 为了程序能够独立运行,用代码为该 JPanel 添加一个主类和顶层窗体 JFrame。
· 查看和修改生成的 DataMigrating.java 代码 ¨ 类 class DataMigrating 扩展 javax.swing.JPanel
¨ 构造函数
¨ 显示编辑器中代码的行号(注意:随着开发的进行行号会不断地变化。) 视图 > 显示行号。或在行号显示区域右击 >显示行号。
¨ 代码折叠 随着开发得进行代码会越来越长,查找、浏览代码会变得越来越困难,采用代码折叠是个 好办法。下面是将构造函数折叠的例子。
触发器。 5. 操作结果显示区。显示 SQL Server 和 Oracle 表的定义信息,数据和迁移信息。 下面我们分别介绍应用程序主窗体各部分的设计。 · 创建 Java 应用程序 1. 打开 NetBeans IDE 5.0 2. 文件 > 新建项目 3. 新建项目窗口:

用SQL DTS实现SQL Server到Oracle的数据迁移

用SQL DTS实现SQL Server到Oracle的数据迁移

用SQL DTS实现SQL Server到Oracle的数据迁移陈拓 chentuo@2005 年 2月 15 日 最后修改日期 2005 年 3月 27 日以下的操作以 SQL Server2000 和 Oracle 10g 为例。

一、 在Oracle数据库中建立一个新帐户如果已有可用用户,跳过这一部分。

1.用SQL*plus创建新用户l建立一个新帐户 ct,PL/SQL 脚本如下:SET ECHO OFFPROMPTPROMPT specify password for ct as parameter 1 (ct):DEFINE pass = &1PROMPTPROMPT specify default tablespeace for ct as parameter 2 (USERS):DEFINE tbs = &2PROMPTPROMPT specify temporary tablespace for CT as parameter 3 (TEMP):DEFINE ttbs = &3PROMPTPROMPT specify password for SYS as parameter 4 (sys):DEFINE pass_sys = &4PROMPTPROMPT specify log path as parameter 5 (D:\oracle\product\10.1.0\):DEFINE log_path = &5PROMPT-- The first dot in the spool command below is-- the SQL*Plus concatenation characterDEFINE spool_file = &log_path.ct_main.logSPOOL &spool_fileREM =======================================================REM 删除用户及其方案REM =======================================================DROP USER CT CASCADE;REM =======================================================REM 创建新用户,指定默认表空间和临时表空间REM =======================================================CREATE USER CT IDENTIFIED BY &pass;ALTER USER CT DEFAULT TABLESPACE &tbsQUOTA UNLIMITED ON &tbs;ALTER USER CT TEMPORARY TABLESPACE &ttbs;REM =======================================================REM 授权 CONNCET AND RESOURCE 角色REM =======================================================GRANT CONNECT TO CT;GRANT RESOURCE TO CT;REM =======================================================REM 从 sys方案授权(方案\SYS\源类型\程序包\dbms_stats)REM =======================================================CONNECT sys/&pass_sys AS SYSDBA;GRANT execute ON sys.dbms_stats TO ct;REM =======================================================REM 设置本次会话的语言和区域REM =======================================================CONNECT ct/&passALTER SESSION SET NLS_LANGUAGE='SIMPLIFIED CHINESE';ALTER SESSION SET NLS_TERRITORY=CHINA;spool offl查看相关信息用 DBA_ROLES 视图查看角色信息:SQL> conn sys/sys@oract as sysdbaSQL> select * from DBA_ROLES;用 DBA_ROLE_PRIVS 视图查看授予授予用户的角色:SQL> select * from DBA_ROLE_PRIVS where GRANTEE='CT'; 用 ROLE_SYS_PRIVS 视图查看授予角色的系统权限:SQL> select * from ROLE_SYS_PRIVS where ROLE='CONNECT';SQL> select * from ROLE_SYS_PRIVS where ROLE='RESOURCE'; 用 SESSION_ROLES 视图查看用户当前已启用的角色:SQL> conn ct/ct@oractSQL> select * from SESSION_ROLES;l将此脚本存为文件 ct_main.sqll以 SYS 或 SYSTEM 登录C:\>sqlplus sys/sys as sysdbal运行脚本 ct_main.sqlSQL> @D:\lecture\oracle\ct_main.sqll查看操作日志文件:D:\oracle\product\10.1.0\ ct_main.log2.用JDeveloper创建新用户The user name you use to create a connection must have adequate privilege to create a user, either by having been granted CREATE USER privilege or having been granted a role such as administrator that contains that privilege. If you did not create the connection with a user with the correct privileges, you will not be able to select User from the New Gallery.用于创建一个连接的用户名必须有足够的权限来创建用户,即可以是1) 选择 View | Connection Navigator2) 展开 Database 并且选择一个 database connection3) 在 connection中,右击schema 或者其中的任一项,选择 NewFrom the New Gallery, in Filter By, choose All TechnologiesFrom the New Gallery, in Categories , expand Database Tier and choose Database Objects从 Database Objects,选择 User,并且 and click OK to open the New Database User wizardIn the pages of the wizard enter parameters and select options to define the tableClick NextOn the Finish page, click Finish to create the table.二、用 Microsoft DST 将数据从SQL Server 导出到 Oracle1.启动DST开始 > 程序 > Microsoft SQL Server > 导入和导出数据:图1 启动DST2.出现“DTS导入/导出向导”界面,下一步:图2 DTS导入/导出向导3.选择数据源在数据源中选取“用于 SQLServer 的Microsoft OLE DB 提供程序”。

sqlserver 如何连oracle 配置详解

sqlserver 如何连oracle 配置详解

sqlserver 连接oracle 配置详解2011-12-21 10:29 229人阅读评论(0) 收藏举报方法一:一、安装配置oracle客户端要访问orcale数据,必须在访问的客户端机器上安装oracle客户端。

Orcale有两种形式的客户端:l 完整的客户端包括访问服务器端数据库的基本Oracle 的 Microsoft OLE DB 访问接口需要 Oracle Client Software Support File以及SQL*Net 。

还包括用于配置客户端设置的工具、sqlplus、企业管理器等一系列的工具。

l 立即客户端(instant client)这个客户端体积很小,但是只包括了访问orcale服务器的最基本的支撑驱动,没有设置管理工具,也找不到可用的图形界面。

对客户端的设置需要手工就行。

目前orcale比较新的是oracle 10g版本,以这个版本为例。

1、下载oracle 10 的客户端可以到orcale官方网站下载,需要先注册,然后下载。

下载适用于Microsoft Windows (32-bit)的Oracle Database 10g Client Release 2的客户端,下载地址:/otn/nt/oracle10g/10201/10201_client_win32.zip2、安装oracle 10 客户端下载好后,解压,安装。

安装时有四个选项:l Instantclient,相当于最小化安装。

l 管理员,完整安装。

l 运行时l 自定义为了管理方便,一般以管理员方式安装。

3、配置oracle 10 客户端在客户端主要需要配置两个设置,命名方法和服务器别名,还有一个监听程序是服务端需要用的,用来监听客户端的访问,客户端不必设置监听程序。

这些设置都能在net manager工具中进行,在oracle程序组中的“配置和移植工具”中的“net manager”。

如图所示:概要文件就是用来设置命名方法和验证方式的的3.1. 命名方法在窗口左面的上部下拉列表中选“命名”,左边窗口显示目前可用的方法,右边是已经选择的命名方法,几个主要的命名方法有:l TNSNAMES表示采用TNSNAMES.ORA文件来解析l ONAMES表示Oracle使用自己的名称服务器(Oracle Name Server)来解析,目前Oracle建议使用轻量目录访问协议LDAP来取代ONAMESl HOSTNAME表示使用host文件,DNS,NIS等来解析一般使用本地命名方式来解析服务器名,即使用TNSNAMES.ORA中设置的服务器名。

sqlserver同步数据到oracle

sqlserver同步数据到oracle

如何将SQLServer2005中的数据同步到Oracle中有时由于项目开发的需要,必须将SQLServer2005中的某些表同步到Oracle数据库中,由其他其他系统来读取这些数据。

不同数据库类型之间的数据同步我们可以使用链接服务器和SQLAgent来实现。

假设我们这边(SQLServer2005)有一个合同管理系统,其中有表contract 和contract_project是需要同步到一个MIS系统中的(Oracle9i)那么,我们可以按照以下几步实现数据库的同步。

1.在Oracle中建立对应的contract 和 contract_project表,需要同步哪些字段我们就建那些字段到Oracle表中。

这里需要注意的是Oracle的数据类型和SQLServer的数据类型是不一样的,那么他们之间是什么样的关系拉?我们可以在SQLServer下运行:SELECT*FROM m sdb.dbo.MSdatatype_m appingsSELECT*FROM m sdb.dbo.sysdatatypem appings来查看SQLServer和其他数据库系统的数据类型对应关系。

第一个SQL语句是看SQL转Oracle的类型对应,而第二个表则更详细得显示了各个数据库系统的类型对应。

根据第一个表和我们的SQLServer中的字段类型我们就可以建立好Oracle表了。

2.建立链接服务器。

我们将Oracle系统作为SQLServer的链接服务器加入到SQLServer中。

具体做法参见我以前的文章/studyzy/archive/2006/12/08/690307.html3.使用SQL语句通过链接服务器将SQLServer数据写入Oracle中。

比如我们建立了链接服务器MIS,而Oracle中在MIS用户下面建立了表contract_project,那么我们的SQL语句就是:DELETE FROM MIS..MIS.CONTRACT_PROJECT--清空Oracle表中的数据INSERT into MIS..MIS.CONTRACT_PROJECT--将SQLServer中的数据写到Oracle中SELECT contract_id,project_code,actual_moneyFROM contract_project如果报告成功,那么我们的数据就已经写入到Oracle中了。

SQLServer,MySQL,Oracle三者的区别

SQLServer,MySQL,Oracle三者的区别

SQLServer,MySQL,Oracle三者的区别目录1 Oracle、Sql Server、MySql简介1.1 Oracle1.2 SQL Server1.3 MySQL2 Oracle和MySQL的主要区别2.1 客户端和命令窗口2.2 市场占有率及其他2.3 Oracle也与MySQL操作上的一些区别2.3.1 组函数用法规则2.3.2 自动增长的数据类型处理2.3.3 主键2.3.4 单引号的处理2.3.5 翻页的SQL语句的处理2.3.6 长字符串的处理2.3.7 日期字段的处理2.3.8 空字符的处理2.3.9 字符串的模糊比较1 Oracle、Sql Server、MySql简介返回1.1 OracleOracle 能在所有主流平台上运行(包括Windows)。

完全支持所有的工业标准。

采用完全开放策略。

可以使客户选择最适合的解决方案。

对开发商全力支持,Oracle并行服务器通过使一组结点共享同一簇中的工作来扩展Windows NT的能力,提供高可用性和高伸缩性的簇的解决方案。

如果Windows NT不能满足需要,用户可以把数据库移到UNIX中。

Oracle的并行服务器对各种UNIX平台的集群机制都有着相当高的集成度。

Oracle获得最高认证级别的ISO标准认证.Oracle性能最高,保持开放平台下的TPC-D和TPC-C的世界记录Oracle多层次网络计算,支持多种工业标准,可以用ODBC、JDBC、OCI等网络客户连接。

Oracle 在兼容性、可移植性、可联结性、高生产率上、开放性也存在优点。

Oracle产品采用标准SQL,并经过美国国家标准技术所(NIST)测试。

与 IBM SQL/DS,DB2,INGRES,IDMS/R等兼容。

Oracle的产品可运行于很宽范围的硬件与操作系统平台上。

可以安装在70种以上不同的大、中、小型机上;可在VMS、DOS、UNIX、WINDOWS等多种操作系统下工作。

(word完整版)Oracle-SQLServer-MySQL-MongoDB数据库比较

(word完整版)Oracle-SQLServer-MySQL-MongoDB数据库比较

主流数据库比较目录前言 (3)1. 数据库安装对硬件的要求 (3)1。

1. Oracle (3)1.2. SQL Server (4)1。

3. MySQL (5)2. 数据类型对比 (6)2。

1。

Oracle数据类型 (6)2.2。

SQL Server 数据类型 (7)2。

3。

MySQL 数据类型 (11)3. 三大关系型数据库比较 (14)4。

应用场景 (18)4。

1. Oracle的一般应用 (18)4。

2. MySQL的应用场景 (18)4.3. SQL Server的应用 (19)5. MongoDB-非关系型数据库 (19)5。

1。

MongoDB的应用场景 (19)5.2. MongoDB与MySQL性能比较 (19)5.2。

1. 测试目的 (19)5。

2.2。

测试环境 (19)5。

2.3. 测试结果1:插入速率 (20)5。

2.4. 测试结果2:插入稳定性 (21)5。

2。

5. 测试结果3:读取性能测试 (23)5.2.6。

测试结论 (24)5。

3. MongoDB的优势和缺陷 (25)5。

3。

1。

MongoDB的优势 (25)5。

3。

2. MongoDB的缺陷 (25)前言数据库流行度排行榜来自于美国数据库知识网站DB-engines,在本月(2014—10)的榜单中,前三甲依然是Oracle、MySQL和Microsoft SQL Server.前十名中文档型数据库MongoDB和列式数据库Cassandra作为仅有的两个NoSQl数据库分别位列第五和第十名。

下面就对排名前三甲的关系型数据库(Oracle、MySQL、SqlServer)进行一下对比、以及最受欢迎的非关系型MongoDB.1. 数据库安装对硬件的要求1.1. Oracle以Oracle 11g为例,系统是Windows:硬件要求配置组件最低配置——-—-——--—-—---—-———--————-—-—------—---—-———-----—————-—--— Physical memory (RAM) 1 GB minimumVirtual memory Double the amount of RAMDisk space Total: 4。

Oracle和SQLServer的主要区别

Oracle和SQLServer的主要区别

ORACLE提供了7种备份机制,具有联机备份功能 Oracle的日志默认有3个,先写入1号日志,满了后再写入2号日志,2号满了再写 入3号日志,3号满了后Oracle将自动备分1号日志的内容,然后清空后写入新的 日志信息,且Oracle的日志有多路复用功能,我们可以为日志创建多个镜像,把 相同的日志信息同时写入多个日志文件中,这样可以防止磁盘损坏造成的数据丢
SQL Server可用涵数比比较少,而且名称、调用语法跟Oracle差别比较大。 SQL Server的初如花费比较少,而且Microsoft提供免费的SQL Server工具软 件。因此价格会比Oracle低很多。 SQL Server提供全图形界面操作,很少见到DOS窗口。它的企业管理器给用户 提供一个全图形界面的集成管理控制台来集中管理多个服务器,使用比较方 便,安装也比较简单。 Sql server 只是关系型数据库管理系统(RDBMS) Ms Sql Server的扩展叫Transact-SQL,主要的结构化查询工具就是自带的查 询分析器
SQL中的错误机制比较复杂,没有提供错误描述。
SQL只能是本机备份本机的数据库,无法联机备份,而且备份压缩很低,占用 了大量空间 SQL Server对每个数据库只能分配一个日志文件。且当日志填满后,日志将停 止工作,等待人工干预,而无法自动重用。
1.SQL Server中的数据类型比较简单,只有一些简单的基本数据类型,无法提 供事务操作。 2.SQL Server包含的数据类型比较少,无法定义结构体,数组,对象。 3.SQL Server无法定义流程机制,类型转换也极不方便,SQL Server中对游标 定义十分复杂,且当用户定义的多个游标同时打开时系统却只有一个游标变 量,这是SQL SERVER中一个严重的缺陷。 4.SQL Server在保存大文件时,是一次将整个大文件写入内存,然后在一次性 存到数据库里面,很容易引起内存溢出。

sqlserver与oracle差异汇总

sqlserver与oracle差异汇总

SQL server 与Oracle开发比较本文档主要从oracle与sql server语法上进行差异性比较,诸如两者在管理,性能,优化等方面的差异不作比较。

●概念上区别1.Oracle 是一种对象关系数据库管理系统(ORDBMS),而Sql server 只是关系型数据库管理系统(RDBMS).2.Oracle使用Internet文件系统,该系统基于Java的应用程序,可以使数据库基于成为Internet的开发平台;Sql server 是基于windows3.两者支持的命令类别差不多,数据定义语言,数据操纵语言,事务处理控制语言,数据控制语言.在Oracle中,在事务控制语言中除了commit,rollback等还多了一个Savepoint,设置保存点。

4.oracle sql的扩展叫PL/SQL,主要的结构化查询工具有sql*plus,isql*plus, pl/sql等,Ms sql的扩展叫Transact-SQL,主要的结构化查询工具就是自带的查询分析器5.主要数据类型Orace:主要支持char ,varchar2,long,number,datetime,raw,longraw,clob,blob,bfie前面三个是Character数据类型,varchar2支持可变长度的字符串,long支持可变长度的字符数据,raw,long raw用于存储二进制数据,long raw 可变长度最后三个是大对象(lob)数据类型,存储非结构化的信息,例如声音剪辑,视频文件CLOG表示Character Lob,可以存储大量的字符数据,它对于存储非结构化的XML 文档非常有用。

BLOG表示Binary LOG,此数据类型可以存储大型二进制对象,如图形、视频剪辑,声音文件等支不支持,money,货币Sql server 主要支持的文本类型char ,varchar,nchar,nvarchar,text,ntext,image,货币类型Money,二进制 binary,varbinary等等●开发语法A.SQL 语法两者的SQL语法基本上是相同的,只是一些细节方面的问题一、表的管理:修改表的结构,如增加,删除列,创建表修改表1.修改表的列的数据类型,大小的定义不同,如下面修改数据类型。

Oracle和SQLServer的语法区别

Oracle和SQLServer的语法区别

Oracle和SQLServer的语法区别SQL 语言支持这一部分概述了 Transact-SQL 和 PL/SQL 语言语法之间的相同点和不同点,并给出转换策略。

要将 Oracle DML 语句和 PL/SQL 程序迁移到 SQL Server 时,请按下列步骤执行:1.验证所有 SELECT、INSERT、UPDATE 和 DELETE 语句的语法是有效的。

进行任何必要的修改。

2.把所有外部联接改为 SQL-92 标准外部联接语法。

3.用相应 SQL Server 函数替代 Oracle 函数。

4.检查所有的比较运算符。

5.用“+”字符串串联运算符代替“||”字符串串联运算符。

6.用 Transact-SQL 程序代替 PL/SQL 程序。

7.把所有 PL/SQL 游标改为非游标 SELECT 语句或 Transact-SQL 游标。

8.用 Transact-SQL 过程代替 PL/SQL 过程、函数和包。

9.把 PL/SQL 触发器转换为 Transact-SQL 触发器。

10.使用 SET SHOWPLAN 语句,优化查询性能。

SELECT 语句Oracle 和 Microsoft SQL Server 使用的 SELECT 语句语法类似。

SQL Server 不支持 Oracle 特定的基于开销的优化程序提示,它必须被删除。

建议使用的技术是,使用 SQL Server 基于开销的优化程序。

有关详细信息,请参见本章后面的“SQL 语句优化”。

SQL Server 不支持 Oracle 的 START WITHUCONNECT BY 子句。

在 SQL Server 中,可以创建完成相同任务的存储过程替代它。

SQL Server 不支持 Oracle 的 INTERSECT 和 MINUS 集合运算符。

可使用 SQL Server EXISTS 和 NOT EXISTS 子句,实现相同的结果。

SQLServer的数据类型详解

SQLServer的数据类型详解

SQLServer的数据类型详解数据类型是数据的⼀种属性,表⽰数据所表⽰信息的类型。

任何⼀种计算机语⾔都定义了⾃⼰的数据类型。

当然,不同的程序语⾔都具有不同的特点,所定义的数据类型的各类和名称都或多或少有些不同。

SQL Server总共提供了 25 种数据类型: ·Binary [(n)] ·Varbinary [(n)] ·Char [(n)] ·Varchar[(n)] ·Nchar[(n)] ·Nvarchar[(n)] ·Datetime ·Smalldatetime ·Decimal[(p[,s])] ·Numeric[(p[,s])] ·Float[(n)] ·Real ·Int ·Smallint ·Tinyint ·Money ·Smallmoney ·Bit ·Cursor ·Sysname ·Timestamp ·Uniqueidentifier ·Text ·Image ·Ntext(1)⼆进制数据类型 ⼆进制数据包括 Binary、Varbinary 和 Image Binary 数据类型既可以是固定长度的(Binary),也可以是变长度的。

Binary[(n)] 是 n 位固定的⼆进制数据。

其中,n 的取值范围是从 1 到 8000。

其存储窨的⼤⼩是 n + 4 个字节。

Varbinary[(n)] 是 n 位变长度的⼆进制数据。

其中,n 的取值范围是从 1 到 8000。

其存储窨的⼤⼩是 n + 4个字节,不是n 个字节。

Image 在 Image 数据类型中存储的数据是以位字符串存储的,不是由 SQL Server 解释的,必须由应⽤程序来解释。

mysqloraclesqlserver三大数据库的数据类型列表

mysqloraclesqlserver三大数据库的数据类型列表

MySql Oracle SqIServer三大数据库的数据类型列表MySql数据类型Oracle数据类型、概述在ORACLE8中定义了:标量(SCALAR、复合(COMPOSITE、引用(REFERENCE和LOB四种数据类型,下面详细介绍它们的特性。

二、标量(SCALAR合法的标量类型与数据库的列所使用的类型相同,此外它还有一些扩展。

它又分为七个组:数字、字符、行、日期、行标识、布尔和可信。

数字,它有三种基本类型--NUMBER、PLS_INTEGEF和BINARY_INTENER NUMBER可以描述整数或实数,而PLS_INTEGEf和BINARY_INTENER^能描述整数。

NUMBER,是以十进制格式进行存储的,它便于存储,但是在计算上,系统会自动的将它转换成为二进制进行运算的。

它的定义方式是NUMBER( P, S),P是精度,最大38位,S是刻度范围,可在-84...127间取值。

例如:NUMBER( 5, 2)可以用来存储表示-999.99...999.99间的数值。

P、S可以在定义是省略,例如:NUMBER( 5)、NUMBER 等;BINARY_INTENER|来描述不存储在数据库中,但是需要用来计算的带符号的整数值。

它以2的补码二进制形式表述。

循环计数器经常使用这种类型。

PLS_INTEGEf和口BINARY_INTENER隹一区别是在计算当中发生溢出时,BINARY_INTENERS的变量会被自动指派给一个NUMBER型而不会出错,PLS_INTEGE型的变量将会发生错误。

字符,包括CHAR VARCHAR2 (VARCHAR、LONG NCHAR和NVARCHAR2几种类型。

CHAR描述定长的字符串,如果实际值不够定义的长度,系统将以空格填充。

它的声明方式如下CHAR( L) , L 为字符串长度,缺省为1,作为变量最大32767个字符,作为数据存储在ORACLE8中最大为2000。

sqlserver获取oracle数据库方法

sqlserver获取oracle数据库方法

SQL Server获取Oracle数据库方法1. 简介SQL Server和Oracle是两种常用的关系型数据库管理系统(RDBMS),它们在功能和语法上有所不同。

本文将介绍如何使用SQL Server来获取Oracle数据库的数据,包括连接配置、数据导入和导出等操作。

2. 连接配置在SQL Server中连接Oracle数据库需要使用ODBC(Open Database Connectivity)驱动程序。

以下是连接配置的步骤:步骤一:安装ODBC驱动程序首先,在SQL Server所在的计算机上安装Oracle ODBC驱动程序。

可以从Oracle官方网站下载合适版本的驱动程序,并按照安装向导进行安装。

步骤二:创建ODBC数据源在Windows操作系统中,打开“控制面板”->“管理工具”->“ODBC数据源(64位)”(如果是32位操作系统,则为“ODBC数据源”),点击“添加”按钮,选择正确版本的Oracle ODBC驱动程序,然后点击“完成”。

步骤三:配置数据源名称和连接参数在弹出的对话框中,输入数据源名称、描述和TNS Service Name等连接参数。

TNS Service Name是指要连接的目标Oracle数据库实例名。

步骤四:测试连接点击“测试连接”按钮,检查是否能够成功连接到Oracle数据库。

如果测试通过,则表示已成功配置了ODBC数据源。

3. 导入数据在SQL Server中导入Oracle数据库的数据,可以使用以下方法:方法一:使用OPENROWSET函数SQL Server提供了一个名为OPENROWSET的函数,可以通过该函数直接从Oracle数据库中查询数据并导入到SQL Server中。

以下是使用OPENROWSET函数导入数据的示例:SELECT *INTO SQLServerTableFROM OPENROWSET('MSDASQL','Driver={Oracle ODBC Driver};Server=OracleServer;Uid=username; Pwd=password;','SELECT * FROM OracleTable')上述示例中,SQLServerTable是要导入的目标表名,在执行该语句之前需要事先在SQL Server中创建好对应的表结构。

SQL server和oracle这两个数据库有什么区别?

SQL server和oracle这两个数据库有什么区别?

SQL server和oracle这两个数据库有什么区别?首先这两个都是关系型数据库,都数据经常使用的数据库。

Oracle是排名第一的,从使用广度和并发性性能方面,SQL server排名第三。

它们的区别:1.应用平台的角度:Oracle可以运行在任何平台,像Window,Linux,MarOS 上。

SQL server主流的支持平台是Windows,因为它背后的靠山就是Microsoft.从2017版开始,SQL server也开始跨平台,你可以下载它的Docker版本,就可以运行在Linux和MarOS上。

2.从优化的角度:比如查询优化,Orcale支持*的查询优化,SQL server是没有这个操作的。

从更新的角度,Orcale更新一个字段后需要执行commit提交以后才能更新,而SQL server 不需要commit,它的值已经改变了。

从回滚的角度,Orcale 可以在事务执行中支持回滚,而SQL server不允许,只有事务执行完了,发生失败或发生意外,才执行rollback这个功能。

另外就是Schema的区别,Orcale中一个instance有多个Schema,对于Orcale来说,Schema相当于数据库的概念,对于SQL server来说,一个数据库中可以有多个Schema,所以这个Schema相当于table的概念。

3.从备份的角度说,Orcale支持差分备份,而SQL server不支持,像增量级的,完整的文件级的备份这两个数据库都是支持的。

4.从触发器的角度说,Orcale支持前触发器和后触发器,SQL server只支持后触发器。

最后就是从付费的角度考虑,两者都有开源的版本,可供下载使用。

以上就是两者的区别,希望对你有所帮助。

Oracle、SQLserver 左连接 右连接 全连接 对比

Oracle、SQLserver 左连接 右连接 全连接 对比

Oracle 左连接、右连接、全外连接、(+)号作用Oracle 外连接(1)左外连接(左边的表不加限制)(2)右外连接(右边的表不加限制)(3)全外连接(左右两表都不加限制)外连接(Outer Join)outer join则会返回每个满足第一个(顶端)输入与第二个(底端)输入的联接的行。

它还返回任何在第二个输入中没有匹配行的第一个输入中的行。

外连接分为三种:左外连接,右外连接,全外连接。

对应SQL:LEFT/RIGHT/FULL OUTER JOIN。

通常我们省略outer 这个关键字。

写成:LEFT/RIGHT/FULL JOIN。

在左外连接和右外连接时都会以一张表为基表,该表的内容会全部显示,然后加上两张表匹配的内容。

如果基表的数据在另一张表没有记录。

那么在相关联的结果集行中列显示为空值(NULL)。

对于外连接,也可以使用“(+) ”来表示。

关于使用(+)的一些注意事项:1.(+)操作符只能出现在where子句中,并且不能与outer join语法同时使用。

2. 当使用(+)操作符执行外连接时,如果在where子句中包含有多个条件,则必须在所有条件中都包含(+)操作符3.(+)操作符只适用于列,而不能用在表达式上。

4.(+)操作符不能与or和in操作符一起使用。

5.(+)操作符只能用于实现左外连接和右外连接,而不能用于实现完全外连接。

在做实验之前,我们先将dave表和bl里加一些不同的数据。

以方便测试。

SQL> select * from bl;ID NAME---------- ----------1 dave2 bl3 big bird4 exc9 怀宁SQL> select * from dave;ID NAME---------- ----------8 安庆1 dave2 bl1 bl2 dave3 dba4 sf-express5 dmm2.1 左外连接(Left outer join/ left join)left join是以左表的记录为基础的,示例中Dave可以看成左表,BL可以看成右表,它的结果集是Dave表中的数据,在加上Dave表和BL表匹配的数据。

各数据库的数据类型的区别

各数据库的数据类型的区别

Oracle、MySQL、SQL Server数据库的数据类型的差异1.Oracle数据库的各种数据类型CHAR 定长的字符型数据,长度<=2000字节VARCHAR2 变长的字符型数据,长度<=4000字节N CHAR 用来存储Unicode字符集的定长字符型数据,长度<=1000字节注意:N字打头的是存储Unicode字符集NVARCHAR2 Unicode字符集的变长字符型数据,长度<=1000字节NUMBER 整型或者浮点型数值DATE 日期数据LONG 2GB的变长字符数据RAW 用来存储非结构化数据的变长字符数据,长度<=2000字节LONG RAW 用来存储非结构化数据的变长字符数据,长度<=2GBROWID 用来存储表中列的物理地址的二进制数据,占用固定的10个字节BLOB 4GB的非结构化的二进制数据CLOB 4GB的字符数据NCLOB 4GB的Unicode字符数据BFILE 把非结构化的二进制数据存储在数据库以外的操作系统文件中UROWID 表示任何类型列地址的二进制数据FLOAT 浮点数2.MySQL数据库的各种数据类型CHAR (M) CHAR数据类型用于表示M长度的字符串。

VARCHAR (M) VARCHAR可以保存可变长度的字符串, VARCHAR数据类型所支持的最大长度也是255个字符。

INT (M) [Unsigned] INT数据类型用于保存从- 2147483647 到2147483648范围之内的任意整数数据。

如果用户使用Unsigned选项,则有效数据范围调整为0-4294967295。

FLOAT [(M,D)] FLOAT数据类型用于表示数值较小的浮点数据,可以提供更加准确的数据精度。

其中,M代表浮点数据的长度(即小数点左右数据长度的总和),D表示浮点数据位于小数点右边的数值位数。

DATE DATE数据类型用于保存日期数据,默认格式为YYYY-MM-DD。

sql server跨库查询oracle语句 -回复

sql server跨库查询oracle语句 -回复

sql server跨库查询oracle语句-回复SQL Server是一种关系型数据库管理系统(RDBMS),而Oracle也是一种常用的商业关系型数据库管理系统。

在某些情况下,可能需要在SQL Server中跨库查询Oracle数据库。

跨库查询是指在一个数据库管理系统中访问另一个数据库管理系统中的数据表。

在本文中,我们将一步一步回答以下主题:SQL Server跨库查询Oracle 语句。

第一步:创建Oracle数据库链接要在SQL Server中访问Oracle数据库,我们需要创建一个Oracle数据库链接。

链接是通过定义适当的连接字符串来实现的,其中包括Oracle 数据库的主机名、端口、服务名称以及凭据等信息。

在SQL Server中创建Oracle数据库链接的语法如下:sqlEXEC sp_addlinkedserver@server='OracleServer',@srvproduct='Oracle',@provider='OraOLEDB.Oracle',@datasrc='(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=OracleHost)(PORT=OraclePort))(CONNECT_DATA=(SERVICE_NAM E=OracleServiceName)))',@provstr='UserID=OracleUsername;Password=OraclePassword;'在上面的代码中,需要将`OracleServer`替换为自己指定的链接服务器名称,`OracleHost`替换为实际的Oracle数据库主机名,`OraclePort`替换为Oracle数据库的端口号,`OracleServiceName`替换为实际的Oracle数据库服务名称,`OracleUsername`和`OraclePassword`替换为有效的凭据。

SqlServer数据类型、C#SqlDbType对应关系及转换

SqlServer数据类型、C#SqlDbType对应关系及转换

SqlServer数据类型、C#SqlDbType对应关系及转换// SqlDbType转换为C#数据类型public static Type SqlType2CsharpType(SqlDbType sqlType){switch (sqlType){case SqlDbType.BigInt:return typeof(Int64);case SqlDbType.Binary:return typeof(Object);case SqlDbType.Bit:return typeof(Boolean);case SqlDbType.Char:return typeof(String);case SqlDbType.DateTime:return typeof(DateTime);case SqlDbType.Decimal:return typeof(Decimal);case SqlDbType.Float:return typeof(Double);case SqlDbType.Image:return typeof(Object);case SqlDbType.Int:return typeof(Int32);case SqlDbType.Money:return typeof(Decimal);case SqlDbType.NChar:return typeof(String);case SqlDbType.NText:return typeof(String);case SqlDbType.NVarChar:return typeof(String);case SqlDbType.Real:return typeof(Single);case SqlDbType.SmallDateTime:return typeof(DateTime);case SqlDbType.SmallInt:return typeof(Int16);case SqlDbType.SmallMoney:return typeof(Decimal);case SqlDbType.Text:return typeof(String);case SqlDbType.Timestamp:return typeof(Object);case SqlDbType.TinyInt:return typeof(Byte);case SqlDbType.Udt://⾃定义的数据类型return typeof(Object);case SqlDbType.UniqueIdentifier:return typeof(Object);case SqlDbType.VarBinary:return typeof(Object);case SqlDbType.VarChar:return typeof(String);case SqlDbType.Variant:return typeof(Object);case SqlDbType.Xml:return typeof(Object);default:return null;}}// sql server数据类型(如:varchar)// 转换为SqlDbType类型public static SqlDbType SqlTypeString2SqlType(string sqlTypeString){SqlDbType dbType = SqlDbType.Variant;//默认为Objectswitch (sqlTypeString){case "int":dbType = SqlDbType.Int;break;case "varchar":dbType = SqlDbType.VarChar;break;case "bit":dbType = SqlDbType.Bit;break;case "datetime":dbType = SqlDbType.DateTime;break;case "decimal":dbType = SqlDbType.Decimal;break;case "float":dbType = SqlDbType.Float;break;case "image":dbType = SqlDbType.Image;break;case "money":dbType = SqlDbType.Money;break;case "ntext":dbType = SqlDbType.NText;break;case "nvarchar":dbType = SqlDbType.NVarChar;break;case "smalldatetime":dbType = SqlDbType.SmallDateTime;break;case "smallint":dbType = SqlDbType.SmallInt;break;case "text":dbType = SqlDbType.Text;break;case "bigint":dbType = SqlDbType.BigInt;break;case "binary":dbType = SqlDbType.Binary;break;case "char":dbType = SqlDbType.Char;break;case "nchar":dbType = SqlDbType.NChar;break;case "numeric":dbType = SqlDbType.Decimal;break;case "real":dbType = SqlDbType.Real;break;case "smallmoney":dbType = SqlDbType.SmallMoney;break;case "sql_variant":dbType = SqlDbType.Variant;break;case "timestamp":dbType = SqlDbType.Timestamp;break;case "tinyint":dbType = SqlDbType.TinyInt;break;case "uniqueidentifier":dbType = SqlDbType.UniqueIdentifier;break;case "varbinary":dbType = SqlDbType.VarBinary;break;case "xml":dbType = SqlDbType.Xml;break;}return dbType;}// sql server中的数据类型,转换为C#中的类型类型public static Type SqlTypeString2CsharpType(string sqlTypeString) {SqlDbType dbTpe = SqlTypeString2SqlType(sqlTypeString); return SqlType2CsharpType(dbTpe);}// 将sql server中的数据类型,转化为C#中的类型的字符串public static string SqlTypeString2CsharpTypeString(string sqlTypeString){Type type = SqlTypeString2CsharpType(sqlTypeString);return ;}有如下类型的映射对照:System.Data.SqlClient.SqlDbTypeSystem.Data.OleDb.OleDbTypeSystem.Data.Odbc.OdbcTypeSystem.Data.OracleClient.OracleTypeOracle.ManagedDataAccess.ClientOracleDbType格式:DbType.枚举名(枚举值) = DbType.枚举名(枚举值)回到顶部1、与 System.Data.SqlClient.SqlDbType转换System.Data.SqlClient.SqlDbType.BigInt(0) = System.Data.DbType.Int64(12)System.Data.SqlClient.SqlDbType.Binary(1) = System.Data.DbType.Binary(1)System.Data.SqlClient.SqlDbType.Bit(2) = System.Data.DbType.Boolean(3)System.Data.SqlClient.SqlDbType.Char(3) = System.Data.DbType.AnsiStringFixedLength(22) System.Data.SqlClient.SqlDbType.DateTime(4) = System.Data.DbType.DateTime(6)System.Data.SqlClient.SqlDbType.Decimal(5) = System.Data.DbType.Decimal(7)System.Data.SqlClient.SqlDbType.Float(6) = System.Data.DbType.Double(8)System.Data.SqlClient.SqlDbType.Image(7) = System.Data.DbType.Binary(1)System.Data.SqlClient.SqlDbType.Int(8) = System.Data.DbType.Int32(11)System.Data.SqlClient.SqlDbType.Money(9) = System.Data.DbType.Currency(4)System.Data.SqlClient.SqlDbType.NChar(10) = System.Data.DbType.StringFixedLength(23) System.Data.SqlClient.SqlDbType.NText(11) = System.Data.DbType.String(16)System.Data.SqlClient.SqlDbType.NVarChar(12) = System.Data.DbType.String(16)System.Data.SqlClient.SqlDbType.Real(13) = System.Data.DbType.Single(15)System.Data.SqlClient.SqlDbType.UniqueIdentifier(14) = System.Data.DbType.Guid(9) System.Data.SqlClient.SqlDbType.SmallDateTime(15) = System.Data.DbType.DateTime(6) System.Data.SqlClient.SqlDbType.SmallInt(16) = System.Data.DbType.Int16(10)System.Data.SqlClient.SqlDbType.SmallMoney(17) = System.Data.DbType.Currency(4) System.Data.SqlClient.SqlDbType.Text(18) = System.Data.DbType.AnsiString(0)System.Data.SqlClient.SqlDbType.Timestamp(19) = System.Data.DbType.Binary(1)System.Data.SqlClient.SqlDbType.TinyInt(20) = System.Data.DbType.Byte(2)System.Data.SqlClient.SqlDbType.VarBinary(21) = System.Data.DbType.Binary(1)System.Data.SqlClient.SqlDbType.VarChar(22) = System.Data.DbType.AnsiString(0)System.Data.SqlClient.SqlDbType.Variant(23) = System.Data.DbType.Object(13)System.Data.SqlClient.SqlDbType.Xml(25) = System.Data.DbType.Xml(25)System.Data.SqlClient.SqlDbType.Udt(29) = System.Data.DbType.Object(13)System.Data.SqlClient.SqlDbType.Structured(30) = System.Data.DbType.Object(13)System.Data.SqlClient.SqlDbType.Date(31) = System.Data.DbType.Date(5)System.Data.SqlClient.SqlDbType.Time(32) = System.Data.DbType.Time(17)System.Data.SqlClient.SqlDbType.DateTime2(33) = System.Data.DbType.DateTime2(26) System.Data.SqlClient.SqlDbType.DateTimeOffset(34) = System.Data.DbType.DateTimeOffset(27)回到顶部2、与 System.Data.OleDb.OleDbType转换System.Data.OleDb.OleDbType.Empty(0) = System.Data.DbType.Object(13)System.Data.OleDb.OleDbType.SmallInt(2) = System.Data.DbType.Int16(10)System.Data.OleDb.OleDbType.Integer(3) = System.Data.DbType.Int32(11)System.Data.OleDb.OleDbType.Single(4) = System.Data.DbType.Single(15)System.Data.OleDb.OleDbType.Double(5) = System.Data.DbType.Double(8)System.Data.OleDb.OleDbType.Currency(6) = System.Data.DbType.Currency(4)System.Data.OleDb.OleDbType.Date(7) = System.Data.DbType.DateTime(6)System.Data.OleDb.OleDbType.BSTR(8) = System.Data.DbType.String(16)System.Data.OleDb.OleDbType.IDispatch(9) = System.Data.DbType.Object(13)System.Data.OleDb.OleDbType.Error(10) = System.Data.DbType.Int32(11)System.Data.OleDb.OleDbType.Boolean(11) = System.Data.DbType.Boolean(3)System.Data.OleDb.OleDbType.Variant(12) = System.Data.DbType.Object(13)System.Data.OleDb.OleDbType.IUnknown(13) = System.Data.DbType.Object(13)System.Data.OleDb.OleDbType.Decimal(14) = System.Data.DbType.Decimal(7)System.Data.OleDb.OleDbType.TinyInt(16) = System.Data.DbType.SByte(14)System.Data.OleDb.OleDbType.UnsignedTinyInt(17) = System.Data.DbType.Byte(2)System.Data.OleDb.OleDbType.UnsignedSmallInt(18) = System.Data.DbType.UInt16(18) System.Data.OleDb.OleDbType.UnsignedInt(19) = System.Data.DbType.UInt32(19)System.Data.OleDb.OleDbType.BigInt(20) = System.Data.DbType.Int64(12)System.Data.OleDb.OleDbType.UnsignedBigInt(21) = System.Data.DbType.UInt64(20) System.Data.OleDb.OleDbType.Filetime(64) = System.Data.DbType.DateTime(6)System.Data.OleDb.OleDbType.Guid(72) = System.Data.DbType.Guid(9)System.Data.OleDb.OleDbType.Binary(128) = System.Data.DbType.Binary(1)System.Data.OleDb.OleDbType.Char(129) = System.Data.DbType.AnsiStringFixedLength(22)System.Data.OleDb.OleDbType.WChar(130) = System.Data.DbType.StringFixedLength(23) System.Data.OleDb.OleDbType.Numeric(131) = System.Data.DbType.Decimal(7)System.Data.OleDb.OleDbType.DBDate(133) = System.Data.DbType.Date(5)System.Data.OleDb.OleDbType.DBTime(134) = System.Data.DbType.Time(17)System.Data.OleDb.OleDbType.DBTimeStamp(135) = System.Data.DbType.DateTime(6) System.Data.OleDb.OleDbType.PropVariant(138) = System.Data.DbType.Object(13)System.Data.OleDb.OleDbType.VarNumeric(139) = System.Data.DbType.VarNumeric(21) System.Data.OleDb.OleDbType.VarChar(200) = System.Data.DbType.AnsiString(0)System.Data.OleDb.OleDbType.LongVarChar(201) = System.Data.DbType.AnsiString(0) System.Data.OleDb.OleDbType.VarWChar(202) = System.Data.DbType.String(16)System.Data.OleDb.OleDbType.LongVarWChar(203) = System.Data.DbType.String(16) System.Data.OleDb.OleDbType.VarBinary(204) = System.Data.DbType.Binary(1)System.Data.OleDb.OleDbType.LongVarBinary(205) = System.Data.DbType.Binary(1)回到顶部3、与System.Data.Odbc.OdbcType转换System.Data.Odbc.OdbcType.BigInt(1) = System.Data.DbType.Int64(12)System.Data.Odbc.OdbcType.Binary(2) = System.Data.DbType.Binary(1)System.Data.Odbc.OdbcType.Bit(3) = System.Data.DbType.Boolean(3)System.Data.Odbc.OdbcType.Char(4) = System.Data.DbType.AnsiStringFixedLength(22) System.Data.Odbc.OdbcType.DateTime(5) = System.Data.DbType.DateTime(6)System.Data.Odbc.OdbcType.Decimal(6) = System.Data.DbType.Decimal(7)System.Data.Odbc.OdbcType.Numeric(7) = System.Data.DbType.Decimal(7)System.Data.Odbc.OdbcType.Double(8) = System.Data.DbType.Double(8)System.Data.Odbc.OdbcType.Image(9) = System.Data.DbType.Binary(1)System.Data.Odbc.OdbcType.Int(10) = System.Data.DbType.Int32(11)System.Data.Odbc.OdbcType.NChar(11) = System.Data.DbType.StringFixedLength(23) System.Data.Odbc.OdbcType.NText(12) = System.Data.DbType.String(16)System.Data.Odbc.OdbcType.NVarChar(13) = System.Data.DbType.String(16)System.Data.Odbc.OdbcType.Real(14) = System.Data.DbType.Single(15)System.Data.Odbc.OdbcType.UniqueIdentifier(15) = System.Data.DbType.Guid(9)System.Data.Odbc.OdbcType.SmallDateTime(16) = System.Data.DbType.DateTime(6) System.Data.Odbc.OdbcType.SmallInt(17) = System.Data.DbType.Int16(10)System.Data.Odbc.OdbcType.Text(18) = System.Data.DbType.AnsiString(0)System.Data.Odbc.OdbcType.Timestamp(19) = System.Data.DbType.Binary(1)System.Data.Odbc.OdbcType.TinyInt(20) = System.Data.DbType.Byte(2)System.Data.Odbc.OdbcType.VarBinary(21) = System.Data.DbType.Binary(1)System.Data.Odbc.OdbcType.VarChar(22) = System.Data.DbType.AnsiString(0)System.Data.Odbc.OdbcType.Date(23) = System.Data.DbType.Date(5)System.Data.Odbc.OdbcType.Time(24) = System.Data.DbType.Time(17)回到顶部4、与System.Data.OracleClient.OracleType转换System.Data.OracleClient.OracleType.BFile(1) = System.Data.DbType.Binary(1)System.Data.OracleClient.OracleType.Blob(2) = System.Data.DbType.Binary(1)System.Data.OracleClient.OracleType.Char(3) = System.Data.DbType.AnsiStringFixedLength(22) System.Data.OracleClient.OracleType.Clob(4) = System.Data.DbType.AnsiString(0)System.Data.OracleClient.OracleType.Cursor(5) = System.Data.DbType.Object(13)System.Data.OracleClient.OracleType.DateTime(6) = System.Data.DbType.DateTime(6) System.Data.OracleClient.OracleType.IntervalDayToSecond(7) = System.Data.DbType.Object(13) System.Data.OracleClient.OracleType.IntervalYearToMonth(8) = System.Data.DbType.Int32(11) System.Data.OracleClient.OracleType.LongRaw(9) = System.Data.DbType.Binary(1)System.Data.OracleClient.OracleType.LongVarChar(10) = System.Data.DbType.AnsiString(0) System.Data.OracleClient.OracleType.NChar(11) = System.Data.DbType.StringFixedLength(23) System.Data.OracleClient.OracleType.NClob(12) = System.Data.DbType.String(16)System.Data.OracleClient.OracleType.Number(13) = System.Data.DbType.VarNumeric(21) System.Data.OracleClient.OracleType.NVarChar(14) = System.Data.DbType.String(16) System.Data.OracleClient.OracleType.Raw(15) = System.Data.DbType.Binary(1)System.Data.OracleClient.OracleType.RowId(16) = System.Data.DbType.AnsiString(0) System.Data.OracleClient.OracleType.Timestamp(18) = System.Data.DbType.DateTime(6) System.Data.OracleClient.OracleType.TimestampLocal(19) = System.Data.DbType.DateTime(6) System.Data.OracleClient.OracleType.TimestampWithTZ(20) = System.Data.DbType.DateTime(6) System.Data.OracleClient.OracleType.VarChar(22) = System.Data.DbType.AnsiString(0) System.Data.OracleClient.OracleType.Byte(23) = System.Data.DbType.Byte(2)System.Data.OracleClient.OracleType.UInt16(24) = System.Data.DbType.UInt16(18)System.Data.OracleClient.OracleType.UInt32(25) = System.Data.DbType.UInt32(19)System.Data.OracleClient.OracleType.SByte(26) = System.Data.DbType.SByte(14)System.Data.OracleClient.OracleType.Int16(27) = System.Data.DbType.Int16(10)System.Data.OracleClient.OracleType.Int32(28) = System.Data.DbType.Int32(11)System.Data.OracleClient.OracleType.Float(29) = System.Data.DbType.Single(15)System.Data.OracleClient.OracleType.Double(30) = System.Data.DbType.Double(8)回到顶部5、与Oracle.ManagedDataAccess.ClientOracleDbType转换Oracle.ManagedDataAccess.ClientOracleDbType.BFile = System.Data.DbType.Binary(1) Oracle.ManagedDataAccess.ClientOracleDbType.Blob = 102,Oracle.ManagedDataAccess.ClientOracleDbType.Byte = 103,Oracle.ManagedDataAccess.ClientOracleDbType.Char = 104,Oracle.ManagedDataAccess.ClientOracleDbType.Clob = 105,Oracle.ManagedDataAccess.ClientOracleDbType.Date = 106,Oracle.ManagedDataAccess.ClientOracleDbType.Decimal = 107,Oracle.ManagedDataAccess.ClientOracleDbType.Double = 108,Oracle.ManagedDataAccess.ClientOracleDbType.Long = 109,Oracle.ManagedDataAccess.ClientOracleDbType.LongRaw = 110, Oracle.ManagedDataAccess.ClientOracleDbType.Int16 = 111, Oracle.ManagedDataAccess.ClientOracleDbType.Int32 = 112, Oracle.ManagedDataAccess.ClientOracleDbType.Int64 = 113, Oracle.ManagedDataAccess.ClientOracleDbType.IntervalDS = 114, Oracle.ManagedDataAccess.ClientOracleDbType.IntervalYM = 115, Oracle.ManagedDataAccess.ClientOracleDbType.NClob = 116, Oracle.ManagedDataAccess.ClientOracleDbType.NChar = 117, Oracle.ManagedDataAccess.ClientOracleDbType.NVarchar2 = 119, Oracle.ManagedDataAccess.ClientOracleDbType.Raw = 120,Oracle.ManagedDataAccess.ClientOracleDbType.RefCursor = 121, Oracle.ManagedDataAccess.ClientOracleDbType.Single = 122, Oracle.ManagedDataAccess.ClientOracleDbType.TimeStamp = 123, Oracle.ManagedDataAccess.ClientOracleDbType.TimeStampLTZ = 124, Oracle.ManagedDataAccess.ClientOracleDbType.TimeStampTZ = 125, Oracle.ManagedDataAccess.ClientOracleDbType.Varchar2 = 126, Oracle.ManagedDataAccess.ClientOracleDbType.XmlType = 127, Oracle.ManagedDataAccess.ClientOracleDbType.BinaryDouble = 132, Oracle.ManagedDataAccess.ClientOracleDbType.BinaryFloat = 133, Oracle.ManagedDataAccess.ClientOracleDbType.Boolean = 134,。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Oracle SQLServer比较
SQLServer常见的数据库类型
字符数据类型CHAR CHAR:都是固定长度字符资料但oracle里面最大度为2kb,SQLServer里面最大长度为8kb
变长字符数据类型VARCHAR2VARCHAR:racle里面最大长度为4kb,SQLServer 里面最大长度为8kb
根据字符集而定的固定长度字符串NCHAR:NCHAR前者最大长度2kb后者最大长度4kb
根据字符集而定的可变长度字符串NVARCHAR2NVARCHAR:者最大长度都为4kb 日期和时间数据类型DATE有Datetime和Smalldatetime两种在oracle里面格式为DMY在SQLSerser里面可以调节,默认的为MDY
数字类型NUMBER(P,S)NUMERIC[P(,S)]:Oracle里面p代表小数点左面的位数,s代表小数点右面的位数。

而SQLServer里面p代表小数点左右两面的位数之和,s代表小数点右面的位数。

数字类型DECIMAL(P,S)DECIMAL[P(,S)]:racle里面p代表小数点左面的位数,s代表小数点右面的位数。

而SQLServer里面p代表小数点左右两面的位数之和,s代表小数点右面的位数。

整数类型INTEGER INT同为整数类型,存储大小都为4个字节
浮点数类型FLOAT FLOAT
实数类型REAL REAL
ORACLE的数据类型
常用的数据库字段类型如下:
字段类型中文说明限制条件其它说明
CHAR固定长度字符串最大长度2000bytes
VARCHAR2可变长度的字符串最大长度4000bytes可做索引的最大长度749 NCHAR根据字符集而定的固定长度字符串最大长度2000bytes
NVARCHAR2根据字符集而定的可变长度字符串最大长度4000bytes
DATE日期(日-月-年)DD-MM-YY(HH-MI-SS)
LONG可变长度的字符数据最大长度2G(231-1)足够存储大部头著作
RAW固定长度二进制数据最大长度2000bytes可存放比较小的多媒体图象声音等LONG RAW可变长度的二进制数据最大长度2G可存放比较大的多媒体图象声音等
BLOB大型的二进制对象(可变长度)最大长度4G
CLOB大型的CHAR类型数据
NCLOB大型的NCHAR类型数据
BFILE存放在数据库外的大型的二进制文件
ROWID数据表中记录的唯一行号10bytes********.****.****格式,*为0或1,存储在索引中。

UROWID同上存储在索引中
NROWID二进制数据表中记录的唯一行号最大长度4000bytes
NUMBER(P,S)数字类型P为总的位数,S为小数位
DECIMAL(P,S)数字类型P为总的位数,S为小数位
INTEGER整数类型的整数
FLOAT浮点数类型
NUMBER(38),双精度
REAL实数类型
NUMBER(63),精度更高
注意:每个表中只能有一个LONG或LONG RAW列,……….。

几个常见的SQLSERVER和ORACLE数据类型对应关系表格
SQL Server和Oracle数据类型的对应关系
对应关系:从SQL Server映射到Oracle
从ORACLE转化到SQLSERVER。

相关文档
最新文档