以前都一直在SQLSERVER資料庫下做開發,最近想要兼容ORACLE,資料庫,但是在轉換的程序中很多資料庫的函式名稱等都不一樣,如果要實作同一套PB代碼下兼容這兩套資料庫不知道大家平常是怎么做的,希望大家集思廣益發表一下自己的看法。
uj5u.com熱心網友回復:
如果要兼容的話,建議采用統一的sql陳述句,如果要用特色的sql,肯定不一行
或者你可以考慮采用sqlserver,然后再向oracle遷移,把sql進行對應調整
uj5u.com熱心網友回復:
也可以考慮采用統一介面Jdbc或者Odbc來實作,或者寫一個統一的函式,根據特色對sql進行轉化,轉化為可以識別的sqluj5u.com熱心網友回復:
如果可以通用,則這樣寫:select
(a.col1) as col1,
(a.col2) as col2
from table_name a
不通用的就做二個dw,以_ora,_sql來區別
如 dw_mmkt_ora,語法如下
(a.col1) as col1,
(a.col2) as col2
from table_name a
where nvl(a.col1,0)<>0
如 dw_mmkt_sql,語法如下
(a.col1) as col1,
(a.col2) as col2
from table_name a
where isnull(a.col1,0)<>0
uj5u.com熱心網友回復:
遇到不通用的就封裝函式處理 比較麻煩uj5u.com熱心網友回復:
有些需要單獨處理的·uj5u.com熱心網友回復:
不通用的,做成條件,連接不同的資料庫時,使用不同的語法uj5u.com熱心網友回復:
1、寫標準的sql,不要寫帶有特色的sql,如oracle的decode函式。2、用odbc連接,odbc也提供了一些簡單的函式,如{fn ifnull()}完全可以代替nvl、 isnull之類特色的函式。
3、復雜的業務邏輯不要在資料庫的觸發器或存盤程序完成,能用代碼實作的盡量不用資料庫做。
能實作以上三點,基本能支持市面上流行的關系型資料庫。
uj5u.com熱心網友回復:
一套代碼兼容不同資料庫,需要自己寫一層資料庫的操作,所有和資料庫操作都封裝在這一層,所有資料視窗都用外部資料源實作,這樣應該可以滿足你的要求,就是前期費些事,后面架子都搭起來了,效率也不會太慢轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/36625.html
標籤:項目管理
上一篇:能幫我把日期的字體變大么
下一篇:在資料庫中用資料語言創建資料表
