对Oracle SQL到DB2 SQL移植的浅析

数据库 Oracle
下面的文章主要介绍的是Oracle SQL到DB2 SQL移植解决的方案,如果你对Oracle SQL到DB2 SQL移植的实际操作感兴趣的话,以下的文章可以供你参考。

以下的文章主要是对Oracle SQL到DB2 SQL移植解决方案浅析,Oracle SQL到DB2 SQL移植现已变得十分抢手,如果你想知道更多的关于其实际应用方面的知识,你就可以浏览下面的文章,相信会对你有所帮助。

1、Oracel中的decode

DB2解决方案:用case条件表达式完成。

case两种语法模式:

(1)CASE

WHEN 条件 THEN 结果1

ELSE 结果2

END

(2)CASE 表达式1

WHEN 表达式2 THEN 结果1

ELSE 结果2

END

上面的WHEN可以重复多次,就像C中的SWITCH ..CASE的表达.

例如:

 

  1. SELECT ORDNO,CUSNO,  
  2. CASE MONTH(SHIPDATE)  
  3. WHEN ´´01´´ THEN ´´Jan´´  
  4. WHEN ´´02´´ THEN ´´Feb´´  
  5. WHEN ´´03´´ THEN ´´Mar´´  
  6. WHEN ´´04´´ THEN ´´Apr´´  
  7. WHEN ´´05´´ THEN ´´May´´  
  8. WHEN ´´06´´ THEN ´´Jun´´  
  9. WHEN ´´07´´ THEN ´´Jul´´  
  10. WHEN ´´08´´ THEN ´´Aug´´  
  11. WHEN ´´09´´ THEN ´´Sep´´  
  12. WHEN ´´10´´ THEN ´´Oct´´  
  13. WHEN ´´11´´ THEN ´´Nov´´  
  14. WHEN ´´12´´ THEN ´´Dec´´  
  15. END  
  16. FROM FILE  

 

应用实例:

Oracle SQL:

 

  1. select decode(t.organtypecode, 
    ´´D´´, t.parent, ´´S´´, t.parent, t.id)  
  2. from A_ORGAN t  
  3. where t.parent = 35 
  4. DB2 SQL:  
  5. select case x.organtypecode  
  6. when ´´D´´ then  
  7. x.parent  
  8. when ´´S´´ then  
  9. x.parent  
  10. else  
  11. x.id  
  12. end  
  13. from a_Organ x  
  14. where x.parent = 35;  

 

2、Oracle中的Start with...Connect By递归查询

DB2解决方案:用with公共递归表达式来解决。

DB2解决方案:用case条件表达式完成。

Oracle SQL:

 

  1. select t.id  
  2. from a_organ t  
  3. start with t.id in (select decode(t.organtypecode,  
  4. ´´D´´,  
  5. t.parent,  
  6. ´´S´´,  
  7. t.parent,  
  8. t.id)  
  9. from A_ORGAN  
  10. where t.id = 35)  
  11. connect by t.parent = prior t.id  
  12. DB2 SQL:  
  13. WITH FKK(id) as  
  14. (select o.id from a_organ o  
  15. where o.id=35 
  16. UNION ALL  
  17. select case x.organtypecode  
  18. when ´´D´´ then x.parent  
  19. when ´´S´´ then x.parent  
  20. else x.id  
  21. end  
  22. from FKK fk, a_organ x  
  23. where fk.id=x.parent)  
  24. select distinct id from FKK;  

 

上述的相关内容就是对Oracle SQL到DB2 SQL移植解决方案的描述,希望会给你带来一些帮助在此方面。

【编辑推荐】

  1. Oracle缓冲块管理机制的看法
  2. Oracle undo释放表空间中的操作步骤
  3. Oracle数据库里重复没有用的数据如何删除
  4. Oracle undo释放表空间中的操作步骤
  5. Oracle 简易客户端配置详解
责任编辑:佚名 来源: 博客园
相关推荐

2010-08-12 10:43:36

DB2 SQL移植

2010-09-30 16:00:40

DB2动态SQL

2011-08-17 20:48:25

索引建立语句非聚集索引唯一索引

2010-09-06 15:13:05

DB2

2010-11-04 15:39:40

DB2 SQL语句

2010-09-06 10:54:52

DB2 sql 存储过

2010-08-04 11:23:59

2010-11-02 11:43:11

DB2动态SQL

2011-05-17 09:40:18

SQL Server IBM DB2

2011-07-11 18:22:34

2011-07-11 17:44:07

SQLOracle标识符

2011-07-11 16:10:38

SQL移植Oracle数据库

2011-07-11 15:23:37

Sql DevelopOracle Migr

2011-07-11 16:47:57

数据库移植SQL ServerOracle

2010-08-12 15:31:07

DB2数据库

2011-08-17 21:49:55

建立视图SQL ServerOracle

2011-08-17 21:23:41

约束NOT NULLUNIQUE

2010-09-07 17:12:46

DB2故障处理

2011-08-22 17:18:53

SQL ServerOracleDB2

2010-11-02 10:46:14

DB2分页查询
点赞
收藏

51CTO技术栈公众号