免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2067 | 回复: 7
打印 上一主题 下一主题

关于oracle 的程序向db2移植的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-05-19 13:38 |只看该作者 |倒序浏览
小弟近日在做ORACLE的程序向DB2 移植,
由于小弟在ORACLE 和DB2 都是刚上手,其中的痛苦就不言而语,
那位老大作过相关的工作,给一下经验,或者提供一些ORACLE 和DB2的语法和函数的差别,小弟将不胜感激。

论坛徽章:
0
2 [报告]
发表于 2005-05-19 13:43 |只看该作者

关于oracle 的程序向db2移植的问题

关注,学习中.

论坛徽章:
0
3 [报告]
发表于 2005-05-20 11:00 |只看该作者

关于oracle 的程序向db2移植的问题

本人一周的一些总结,暂且放上,错误可能会有,请高手指点:
(1)        Oracle: Value1=Value2(+)  左外连接,表示当A有数据而 没有数据时,所有符合A
           的数据都不受B 的影响检索出来。
Db2:  Table1 LEFT OUTER JOIN Table2 on Value1=Value2

论坛徽章:
0
4 [报告]
发表于 2005-05-20 11:01 |只看该作者

关于oracle 的程序向db2移植的问题

(2)        Oracle: To_Date函数:   表示把字符型转换为日期型
     Db2:Date
EXAMPLE:
Oracle中:To_Date (Value,’YYYY/MM/DD’)
Db2中:  Date(Value)

(3)  Oracle:  dual表
     Db2:    Sysibm.sysdummy1 表
EXAMPLE:
Oracle中: Select To_Char(sysdate,’yyyy/mm/dd’) as td ,To_Char(sysdate,’yyyy/mm/dd hh24:mi:ss’) as tdt from dual
Db2中:  Select Current TimeStamp, Current Date, Current Time from sysibm.sysdummy1
         
TimeStamp的形式:yyyy/mm/dd hh24:mi:ss
Date的形式:mm/dd /yyyy
Time的形式:hh24:mi:ss

(4)Oracle:  NVL函数:
         
   Db2:  有三种改法:1  VALUE  2   COALESCE  3 CASE语句
EXAMPLE:
Oracle中:NVL(Value1,’0’)  如果Value1为空,则 Value1=0
Db2中: 1  Value(Value1,’0’)
2        Coalesce(Value1,’0’)
3        Case when Value1=’’ then ‘0’ else Value1 end;
(Oracle中还有一个Decode 函数,可能只能用 Case 语句了)

     注意:在Db2中,函数Value 和Coalesce的两个参数的类型要相同,否则会编译不通过。

论坛徽章:
0
5 [报告]
发表于 2005-05-20 13:16 |只看该作者

关于oracle 的程序向db2移植的问题

不错,继续哦

论坛徽章:
0
6 [报告]
发表于 2005-05-20 15:31 |只看该作者

关于oracle 的程序向db2移植的问题

关于那个日期的函数好像不正确,请高手指点一下,
在Db2中用什么相应的函数:
Oracle : To_Date(value,'yyyy/mm/dd')
db2中怎样修改?
在线等!

论坛徽章:
0
7 [报告]
发表于 2005-05-20 16:43 |只看该作者

关于oracle 的程序向db2移植的问题

原帖由 "sunqihui24" 发表:
关于那个日期的函数好像不正确,请高手指点一下,
在Db2中用什么相应的函数:
Oracle : To_Date(value,'yyyy/mm/dd')
db2中怎样修改?
在线等!

DATE('2005-05-20')
DATE('20.05.2005')
DATE(732086)

最后一个的输出结果就是2005-05-20,表示从这一天开始到公元1年1月1日的天数。

论坛徽章:
0
8 [报告]
发表于 2005-05-20 16:46 |只看该作者

关于oracle 的程序向db2移植的问题

to_date('2000-02-02 00:00:00', 'YYYY-MM-DD HH24:MI:SS')


要将字符串转换成日期或时间值,可以使用:

TIMESTAMP ('2002-10-20-12.00.00.000000')
TIMESTAMP ('2002-10-20 12:00:00')
        DATE ('2002-10-20')
        DATE ('10/20/2002')
        TIME ('12:00:00')
        TIME ('12.00.00')

TIMESTAMP()、DATE() 和 TIME() 函数接受更多种格式。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP