偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

談一談兼容Oracle和DB2開發(fā)時的注意事項

數據庫 Oracle
本文主要介紹了兼容Oracle和DB2開發(fā)時的一些注意事項,了解了這些注意事項,我們在開發(fā)時就可以避免一些不兼容的現象的發(fā)生了。

我們在做兼容oralcedb2開發(fā)時,需要注意一些問題,以免遇到不兼容的現象,為開發(fā)者帶來麻煩。本例子的前提是db2版本是9.7,且是開啟PLSQL編譯選項之后創(chuàng)建的數據庫。接下來我們就開始介紹這些。

注意事項:

1. 在like 之后若使用了表字段,應統(tǒng)一改成使用locate函數,如:

oralce寫法:

 

  1. select * from fw_right a where '03' like a.rightid||'%'; 

 

兼容寫法:

 

  1. select * from fw_right a where locate('03',a.rightid) = 1; 

 

oralce寫法:

 

  1. select * from fw_right a where '03' like '%'||a.rightid||'%'; 

 

兼容寫法:

 

  1. select * from fw_right a where locate('03',a.rightid) > 0; 

 

2. 視圖中使用的別名不應該與當前表字段同名。

如以下語句,在oracle中不會有問題,但在db2中會報"SQL0153N"錯誤。

 

  1. CREATE OR REPLACE VIEW V_WF_TODOLIST AS  
  2.  
  3. select c.process_def_id, c.process_def_name, a.action_def_id,  
  4.  
  5. a.work_item_id, a.bae007, a.action_def_name,  
  6.  
  7. a.state,  a.pre_wi_id,  a.work_type,  
  8.  
  9. a.operid, a.x_oprator_ids,  b.process_key_info,  
  10.  
  11. to_char(to_date(a.start_time, 'yyyymmddhh24miss'),'yyyy-mm-dd hh24:mi:ss') as start_time,  
  12.  
  13. to_char(to_date(a.complete_time,'yyyymmddhh24miss'),'yyyy-mm-dd hh24:mi:ss') as complete_time,  
  14.  
  15. a.filter_opr, a.memo,a.bae002,a.bae003, a.bae006,c.x_action_def_ids  
  16.  
  17. from wf_work_item a, wf_process_instance b, wf_action_def c  
  18.  
  19. where a.action_def_id  = c.action_def_id  
  20.  
  21. and b.process_def_id = c.process_def_id  
  22.  
  23. and a.bae007 = b.bae007  
  24.  
  25. and a.state in('0','2') 

 

兼容寫法:

 

  1. CREATE OR REPLACE VIEW V_WF_TODOLIST AS  
  2.  
  3. select c.process_def_id, c.process_def_name, a.action_def_id,  
  4.  
  5. a.work_item_id, a.bae007, a.action_def_name,  
  6.  
  7. a.state,  a.pre_wi_id,  a.work_type,  
  8.  
  9. a.operid, a.x_oprator_ids,  b.process_key_info,  
  10.  
  11. to_char(to_date(a.start_time, 'yyyymmddhh24miss'),'yyyy-mm-dd hh24:mi:ss') as start_time_0,  
  12.  
  13. to_char(to_date(a.complete_time,'yyyymmddhh24miss'),'yyyy-mm-dd hh24:mi:ss') as complete_time_0,  
  14.  
  15. a.filter_opr, a.memo,a.bae002,a.bae003, a.bae006,c.x_action_def_ids  
  16.  
  17. from wf_work_item a, wf_process_instance b, wf_action_def c  
  18.  
  19. where a.action_def_id  = c.action_def_id  
  20.  
  21. and b.process_def_id = c.process_def_id  
  22.  
  23. and a.bae007 = b.bae007  
  24.  
  25. and a.state in('0','2') 

 

3.在下列情況下不允許ORDER BY 或 FETCH FIRST n ROWS ONLY:

  • 外層全查詢視圖
  •  "SQL 表函數"的 RETURN 語句中的外層全查詢
  • 具體化查詢表定義
  • 未用圓括號括起來的子查詢

否則會報"SQL20211N  規(guī)范 ORDER BY 或 FETCH FIRST n ROWS ONLY 無效。"錯誤。

oralce寫法:

 

  1. CREATE OR REPLACE VIEW V_FW_BLANK_BULLETIN as  
  2.  
  3. select id, bae001,  operunitid, operunittype, unitsubtype, ifergency,  
  4.  
  5. title,  content, digest,  duetime,  validto, aae100,  
  6.  
  7. bae006, bae002,  bae003,  id as colid,  
  8.  
  9. substr(digest,1,20) as digest2  
  10.  
  11. from fw_bulletin  
  12.  
  13. where duetime <= to_char(sysdate,'yyyymmddhh24miss')  
  14.  
  15. and (to_char(validto) >= to_char(sysdate,'yyyymmddhh24miss') or validto is null)  
  16.  
  17. and aae100 ='1' 
  18.  
  19. order by ifergency desc, id desc,  duetime desc 

 

兼容寫法:

 

  1. CREATE OR REPLACE VIEW V_FW_BLANK_BULLETIN as  
  2.  
  3. select * from (select id, bae001,  operunitid, operunittype, unitsubtype, ifergency,  
  4.  
  5. title,  content, digest,  duetime,  validto, aae100,  
  6.  
  7. bae006, bae002,  bae003,  id as colid,  
  8.  
  9. substr(digest,1,20) as digest2  
  10.  
  11. from fw_bulletin  
  12.  
  13. where duetime <= to_char(sysdate,'yyyymmddhh24miss')  
  14.  
  15. and (to_char(validto) >= to_char(sysdate,'yyyymmddhh24miss') or validto is null)  
  16.  
  17. and aae100 ='1' 
  18.  
  19. order by ifergency desc, id desc,  duetime desc) 

 

了解了以上Oracle、DB2開發(fā)時的注意事項,我們在做開發(fā)的時候就能夠盡量避免一些不兼容得狀況了。本文就介紹到這里,希望能對各位有所幫助。

【編輯推薦】

  1. 數據倉庫的邏輯建模之星型模式
  2. 簡單介紹一下SQL Profiler的過濾設置
  3. 使用SQLite擴展函數來定義自己的函數
  4. Oracle數據庫Shared Pool優(yōu)化過程詳解
  5. 檢測局域網電腦是否有安裝SQL Server數據庫
責任編輯:趙鵬 來源: CSDN博客
相關推薦

2010-08-06 15:27:14

DB2 batch u

2010-08-04 11:23:59

2010-11-01 13:24:15

DB2數據導入

2010-08-17 16:24:32

IBM DB2數據庫

2010-07-30 13:28:10

2010-08-09 09:05:41

DB2快照函數

2011-03-14 17:51:04

IBMDB2數據庫

2010-07-29 13:56:32

2010-11-02 13:09:42

DB2性能優(yōu)化

2010-08-04 10:44:32

2010-08-31 10:53:18

DB2導入數據庫

2010-07-29 13:09:48

DB2 9.7 兼容

2010-08-19 14:11:29

DB2臨時表

2010-08-03 17:00:29

DB2 batch u

2011-08-02 13:08:06

Oracle索引

2011-07-28 09:22:56

Oracle WDPOracle數據庫

2011-03-03 15:16:43

DB2數據庫遷移

2010-07-30 10:11:05

DB2臨時表

2010-08-20 09:21:18

DB2打上補丁

2010-07-29 09:52:04

DB2數據導入
點贊
收藏

51CTO技術棧公眾號