日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
談一談兼容Oracle和DB2開發(fā)時的注意事項(xiàng)

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

目前成都創(chuàng)新互聯(lián)已為上千余家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬空間、成都網(wǎng)站托管、企業(yè)網(wǎng)站設(shè)計、常寧網(wǎng)站維護(hù)等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

注意事項(xiàng):

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

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. 視圖中使用的別名不應(yīng)該與當(dāng)前表字段同名。

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

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

兼容寫法:

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

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

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

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

oralce寫法:

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

兼容寫法:

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

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


名稱欄目:談一談兼容Oracle和DB2開發(fā)時的注意事項(xiàng)
URL鏈接:http://www.5511xx.com/article/cdiodip.html