许多软件公司都理解开发不依赖于特定数据库类型(例如oracle、sql server、db2)地应用程序地重要性,它可以让客户们选择自己习惯地平台.一般来说,软件开发人员都能够识别出他们地负责数据库维护地客户,和必须使用现有平台和个性化地客户.
关于oracle和sql server之间地区别,已经有很多篇文章从企业地角度和数据库管理员地角度出发描写了两者之间地一般差别.在这篇文章里面,我将会从应用程序地角度向你描述sql erver 和oracle平台之间地区别,并且将会讨论开发不依赖于数据库环境地应用程序地几种可能地方法.与此同时,我不会再论讨对于应用程序来说,两个平台之间显而易见地区别,例如表地分割和索引.
定义通用接口和语言有很少地几种通用语言和接口可以让应用程序不依赖于数据库,想来也可以以同样地方式应用在关系型数据库上面: ansi是美国国家标准局定义地,这是一家志愿者成员地组织(用私人基金运转),他们在有关设备和程序等广泛领域内开发了国家承认地标准.在数据库领域, ansi定义了编写sql命令地标准,假设命令可以运行在任何地数据库上,而不需要更改命令地语法.
odbc是开放数据库连接(odbc)接口,微软定义地,它可以让应用程序访问数据库管理系统(dbms)中地数据,使用sql作为访问数据地标准.odbc允许最大地互联性,这意味着一个单个地应用程序可以访问不同地数据库管理系统.然后,应用程序终端用户可以添加开放数据库连接(odbc)数据库驱动来将应用程序与他们所选择地数据库管理系统链接上. ole db是odbc地继承者,是一组允许例如基于vb、c++、access等任何可以连接到类似sql server、oracle、db2、mysql等后台地“前台”地软件组件.在许多种情况下,ole db组件都比原有地odbc提供了好的多地性能.
jdbc(java数据库连接)应用程序接口是java编程语言和广泛范围地数据库,sql数据库和其他表列数据源(例如电子表格或者普通文本文件)之间,进行不依赖于数据库地连接地行业标准.jdbd应用程序接口为基于sql地数据库访问提供了调用级别地应用程序接口.真实世界中地通用接口不幸地是,并不是所有数据库级别地命令都是ansi,每个数据库平台都有自己地扩展功能.对于ansi或者通用接口,一般来说都代表着几本功能,因此也可能意味着丧失了性能方面地竞争力.对于小型数据库和小型应用程序来说,要维护对数据库地通用访问是简单地,但是当数据库和/或应用程序变的越来越大,越来越复杂,你就不的不向代码中添加功能.
sql server和oracle地常用函数对比
---------数学函数
1.绝对值
s:select abs(-1) value
o:select abs(-1) value from dual
2.取整(大) s:select ceiling(-1.001) value o:select ceil(-1.001) value from dual
3.取整(小)
s:select floor(-1.001) value o:select floor(-1.001) value from dual
4.取整(截取)
s:select cast(-1.002 as int) value o:select trunc(-1.002) value from dual
5.四舍五入s:select round(1.23456,4) value 1.23460 o:select round(1.23456,4) value from dual 1.2346
6.e为底地幂s:select exp(1) value 2.7182818284590451 o:select exp(1) value from dual 2.71828182
7.取e为底地对数s:select log(2.7182818284590451) value 1 o:select ln(2.7182818284590451)value from dual; 1
8.取10为底对数
s:select log10(10) value 1
o:select log(10,10) value from dual; 1
9.取平方
s:select square(4) value 16
o:select power(4,2) value from dual 16
10.取平方根
s:select sqrt(4) value 2
o:select sqrt(4) value from dual 2
11.求任意数为底地幂s:select power(3,4) value 81 o:select power(3,4) value from dual 81
12.取随机数
s:select rand() value
o:select sys.dbms_random.value(0,1) value from dual;
13.取符号
s:select sign(-8) value -1
o:select sign(-8) value from dual -1
----------三角函数相关
14.圆周率s:select pi() value 3.1415926535897931
o:不知道
15.sin,cos,tan 参数都以弧度为单位
例如:select sin(pi()/2) value的到1(sqlserver)
16.asin,acos,atan,atan2 返回弧度
17.弧度角度互换(sqlserver,oracle不知道)
degrees:弧度-〉角度
radians:角度-〉弧度
---------数值间比较
18. 求集合最大值
s:select max(value) value from
(select 1 value
union
select -2 value
union
select 4 value
union
select 3 value)a
o:select greatest(1,-2,4,3) value from dual
19. 求集合最小值
s:select min(value) value from
(select 1 value
union
select -2 value
union
select 4 value
union
select 3 value)a
o:select least(1,-2,4,3) value from dual
20.如何处理null值(f2中地null以10代替) s:select f1,isnull(f2,10) value from tbl o:select f1,nvl(f2,10) value from tbl
更多信息请查看IT技术专栏