惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Help Net Security
Help Net Security
G
Google Developers Blog
雷峰网
雷峰网
WordPress大学
WordPress大学
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Engineering at Meta
Engineering at Meta
Security Latest
Security Latest
T
Threat Research - Cisco Blogs
AWS News Blog
AWS News Blog
F
Full Disclosure
C
Cybersecurity and Infrastructure Security Agency CISA
T
The Exploit Database - CXSecurity.com
J
Java Code Geeks
U
Unit 42
C
Cyber Attacks, Cyber Crime and Cyber Security
V
V2EX
C
Cisco Blogs
博客园 - 司徒正美
Project Zero
Project Zero
L
LINUX DO - 热门话题
阮一峰的网络日志
阮一峰的网络日志
Blog — PlanetScale
Blog — PlanetScale
Scott Helme
Scott Helme
A
About on SuperTechFans
Hugging Face - Blog
Hugging Face - Blog
S
Securelist
小众软件
小众软件
aimingoo的专栏
aimingoo的专栏
S
Schneier on Security
G
GRAHAM CLULEY
酷 壳 – CoolShell
酷 壳 – CoolShell
Cyberwarzone
Cyberwarzone
MongoDB | Blog
MongoDB | Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 叶小钗
T
Threatpost
Recorded Future
Recorded Future
C
CXSECURITY Database RSS Feed - CXSecurity.com
宝玉的分享
宝玉的分享
N
News and Events Feed by Topic
人人都是产品经理
人人都是产品经理
The Register - Security
The Register - Security
S
Security Archives - TechRepublic
博客园 - Franky
N
News | PayPal Newsroom
Simon Willison's Weblog
Simon Willison's Weblog
S
SegmentFault 最新的问题
W
WeLiveSecurity
A
Arctic Wolf
B
Blog

博客园 - leup

一个硬盘的故事 Orcale 临时表 Oracle中Decode()函数使用技巧 oracle 日期函数介绍 Oracle SQLPLUS命令大全 Oracle 自动生成编号(实现sqlserver自增长字段) Oracle 函数介绍之 分析函数 Oracle 表内部字段产生树状结构的处理 oracle与sqlserver比较 Nhibernate开发资料收集 OWC winform Sample Demo 创建DataTable,并填充数据,模拟数据库中的表 GridView 使用技巧收集 【转】asp.net2.0学习历程 菜鸟到中级程序员的飞跃---30本好书点评 【转】ASP.NET2.0轻松搞定统计图表 【转】ASP.NET2.0 文件图片处理1 ASP.NET2.0 遍历文件夹下所有图片 ASP.NET2.0 ReportingServices 整理1 【转】C#优化字符串操作
SQL Server 与Oracle的不同点(从微观上)
leup · 2007-11-18 · via 博客园 - leup

当数据库是SQL Server的时候Enterprise Library访问起来非常方面,完全可以用Enterprise Library Configuration工具配置后就可以在代码中访问DB,但是当数据换成Oracle的时候就没有那么方便了,毕竟是两个公司的东西多少有些不同之处,下面就我知道的Oracle(以9i为例)与SQL Server的不同点总结一下:
1、数据类型的不同;
      SQL Server2000 Transact-SQL 的基本数据类型有:

bigint binary bit char cursor
datetime decimal float image int
money nchar ntext nvarchar real
smalldatetime smallint smallmoney text timestamp
tinyint varbinary varchar uniqueidentifier  

   SQL Server大家都比较熟悉,各个类型的含义就在此不一一列出。

      Oracle 9i基本数据类型有:

名称 含义
Char 用于描述定长的字符型数据,长度<=2000字节
varchar2 用于描述变长的字符型数据,长度<=4000字节
nchar 用来存储Unicode字符集的定长字符型数据,长度<=1000字节
nvarchar2 用来存储Unicode字符集的变长字符型数据,长度<=1000字节
number 用来存储整型或者浮点型数值
Date 用来存储日期数据
Long 用来存储最大长度为2GB的变长字符数据
Raw 用来存储非结构化数据的变长字符数据,长度<=2000字节
Long raw 用来存储非结构化数据的变长字符数据,长度<=2GB
rowid 用来存储表中列的物理地址的二进制数据,占用固定的10个字节
Blob 用来存储多达4GB的非结构化的二进制数据
Clob 用来存储多达4GB的字符数据
nclob 用来存储多达4GB的Unicode字符数据
Bfile 用来把非结构化的二进制数据存储在数据库以外的操作系统文件中
urowid 用来存储表示任何类型列地址的二进制数据
float 用来存储浮点数

2、自增行字段的区别
      在SQL Server 中为自增列(IDENTITY );
      在Oracle中为Oracle 序列是原子对象,并且是一致的。也就是说,一旦您访问一个序列  号,Oracle 将在处理下一个请求之前自动递增下一个编号,从而确保不会出现重复值。
3、Stored Procedure的区别
      在大多数Oracle中的书籍中都称为“过程”,在SQL Server中叫存储过程。Oracle 过程与 Microsoft SQL Server 存储过程之间的主要区别是:返回结果集时,Oracle 过程必须将值作为输出参数返回,并且必须使用输出参数将结果集作为 REF CURSOR 对象返回给调用程序。
4、PL/SQL 和 T-SQL 中的存储过程之间的一个重大差异是 PL/SQL 所使用的 Oracle 包 结构。在 T-SQL 中没有等效元素。包是在逻辑上相关的编程块(如存储过程和函数)的容器。它包含两个部分:

●规范:定义包的名称,并为包中的每个存储过程或函数提供方法签名(原型)。规范头还定义所有全局声明。规范的样式类似于 C 或 C++ 头文件。
 
● 正文:包含包头中定义的存储过程和函数的代码。
 

每个存储过程或函数的参数都出现在括号内,并且用逗号分隔。每个参数还根据需要用以下三个标识符中的一个进行标记:

● IN:该值从调用应用程序传递到 PL/SQL 块。如果未指定标识符,则 IN 为默认传递方向。
 
● OUT:该值由存储过程生成,并传递回调用应用程序。
 
● INOUT:该值被传递到 PL/SQL 块,可能在该块内部进行修改,然后返回到调用应用程序。
 

每个参数也都被标记以指示数据类型。
5、关于Guid
      SQL Server有专门的uniqueidentifier 数据类型来存储Guid类型的字符,Oracle没有改数据类型;SQL中产生Guid使用函数NEWIDOracle中使用SYS_GUID(Oracle8i及其以后版本才引入);使用的示例分别为:
SQL Server:

SELECT NEWID()


Oracle:

SELECT SYS_GUID () FROM DUAL;

可以分别在SQL的查询分析器和TOAD中执行看看结果,SQL Server产生的是类似“C6D4ABBF-9AD6-4255-AADE-C0EDBF1E27B7”,而Oracle的为“5A9C4407068749C7B0662D351C099356”,两者还是有些区别

Feedback

#1楼 [楼主]   回复  引用  查看    

2007-04-13 11:51 by 漂泊雪狼

对数据库定义的不同:
A、在 Oracle,数据库是指整个 Oracle RDBMS 环境,它包括以下组件:

Oracle 数据库进程和缓冲(实例)。
SYSTEM 表空间包含一个集中系统类目,它可以由一个或多个数据文件构成。
其它由数据库管理员 (DBA)(可选)定义的表空间,每个都由一个或多个数据文件构成。
两个以上的联机恢复日志。
归档恢复日志(可选)。
其它文件(控制文件、Init.ora、Config.ora 等)。
b、Microsoft® SQL Server™ 2000 数据库提供了数据、应用程序和安全机制的逻辑分隔。一个 SQL Server 安装(实例)可以支持多个数据库。用 SQL Server 构建的应用程序可以用数据库来逻辑分隔业务功能。一台计算机上可以有多个 SQL Server 实例。每个 SQL Server 实例可以有多个数据库。

每个 SQL Server 数据库可以支持文件组,它提供了物理分布数据位置的能力。一个 SQL Server 文件组可以对含有单个 SQL Server 数据库数据的操作系统文件进行分类,以简化数据库管理任务,比如备份。文件组是 SQL Server 数据库的一个属性,不能包含多于一个数据库的操作系统文件,但一个数据库可以包含一个以上的文件组。创建数据库后,可以将文件组添加到数据库。

#2楼    回复  引用  查看    

2007-04-13 16:47 by pcstu [未注册用户]