佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > oralce和db2兼容開發(fā)注意事項

oralce和db2兼容開發(fā)注意事項

熱門標(biāo)簽:呼叫中心市場需求 服務(wù)外包 百度競價排名 Linux服務(wù)器 AI電銷 地方門戶網(wǎng)站 鐵路電話系統(tǒng) 網(wǎng)站排名優(yōu)化

數(shù)據(jù)庫兼容,在開發(fā)項目過程中,難免會遇到 更改數(shù)據(jù)庫,或者后期 項目升級,也可能會遇到這種情況,這里就說明下oralce和db2兼容開發(fā)注意事項。

兼容oralce、db2開發(fā)注意事項(前提是db2版本是9.7,且是開啟PLSQL編譯選項之后創(chuàng)建的數(shù)據(jù)庫):

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

   如:
  oralce寫法:
   select * from fw_right a where '03' like a.rightid||'%';
  兼容寫法:
   select * from fw_right a where locate('03',a.rightid) = 1;
  oralce寫法:
   select * from fw_right a where '03' like '%'||a.rightid||'%';
  兼容寫法:
   select * from fw_right a where locate('03',a.rightid) > 0;

 2. 視圖中使用的別名不應(yīng)該與當(dāng)前表字段同名

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

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

        兼容寫法:

CREATE OR REPLACE VIEW V_WF_TODOLIST AS
  select c.process_def_id, c.process_def_name, a.action_def_id,
   a.work_item_id,  a.bae007,      a.action_def_name,
   a.state,     a.pre_wi_id,    a.work_type,
   a.operid,     a.x_oprator_ids,  b.process_key_info,
   to_char(to_date(a.start_time,  'yyyymmddhh24miss'),'yyyy-mm-dd hh24:mi:ss') as start_time_0,
   to_char(to_date(a.complete_time,'yyyymmddhh24miss'),'yyyy-mm-dd hh24:mi:ss') as complete_time_0,
   a.filter_opr, a.memo,a.bae002,a.bae003, a.bae006,c.x_action_def_ids
   from wf_work_item a, wf_process_instance b, wf_action_def c
   where a.action_def_id = c.action_def_id
   and b.process_def_id = c.process_def_id
   and a.bae007 = b.bae007
   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 無效。"錯誤.  

  e.g:
  oralce寫法:

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

      兼容寫法:

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

 

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

您可能感興趣的文章:
  • Oralce中VARCHAR2()與NVARCHAR2()的區(qū)別介紹
  • Oralce 歸檔日志開啟與關(guān)閉示例
  • 提取oralce當(dāng)天的alert log的shell腳本代碼
  • oralce 計算時間差的實現(xiàn)

標(biāo)簽:湖南 崇左 湘潭 黃山 蘭州 衡水 仙桃 銅川

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《oralce和db2兼容開發(fā)注意事項》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    钟山县| 防城港市| 荆州市| 息烽县| 威信县| 娄底市| 安达市| 顺义区| 娄烦县| 丁青县| 茶陵县| 陇南市| 双桥区| 东港市| 乃东县| 常山县| 巴青县| 通辽市| 大关县| 苏尼特右旗| 榆林市| 玛沁县| 屯门区| 西城区| 安达市| 乐平市| 逊克县| 正阳县| 绍兴县| 交城县| 长春市| 阿合奇县| 靖州| 吉木萨尔县| 策勒县| 美姑县| 安远县| 镇远县| 新疆| 晋城| 招远市|