亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > Oracle > 正文

DB2數據庫切換為oracle數據庫經驗教訓總結(必看篇)

2020-07-26 14:06:51
字體:
來源:轉載
供稿:網友

由于DB2數據庫使用的人太少,公司有沒有專業的DBA,決定把數據庫從DB2數據庫切換為oracle數據庫,本以為很簡單,可當真的切換時,卻發現,有很多東西出乎意料。

由于系統底層使用的是ORM映射工具,由于沒有使用存儲過程,自定義函數,觸發器,因此我以為系統改動不大,但發現的問題卻不少。

1、我們的主鍵基本上都采用共的是Sequence,沒有采用自動增長作為主鍵。

但獲取Sequence在兩種數據庫中是不相同的。

DB2獲取的方法

values next value for eas.seq_SequenceNameOracle中獲取的方法

select seq_SequenceName.nextval from dual2我們底層采用的是ORM映射工具ActiveRecord,發現執行SQL時語句末尾不能有分號,太奇怪了。這個問題似乎是ActiveRecord本身的問題

例如:

 /// <summary>    /// 得到第一行第一列的值    /// </summary>    /// <param name="sqlstr"></param>    /// <returns></returns>    public object ScalarBySQL(String sqlstr)    {            ISession sess = ActiveRecordMediator.GetSessionFactoryHolder().CreateSession(typeof(ActiveRecordBase));      IDbConnection dbconn = sess.Connection;            try      {        IDbCommand dbCommand = dbconn.CreateCommand();        dbCommand.CommandText = sqlstr;        object thisReader = dbCommand.ExecuteScalar();        return thisReader;      }      catch (Exception ex)      {        LogInfo.Error(sqlstr + ex.Message);        throw new Exception("數據庫執行語句錯誤");      }      finally      {        dbconn.Close();      }    }

例如:sqlstr="select * FROM EAS.T_HRWagesLog where HRWL_Month='201603'";

時在DB2,Oracle中都能正常執行,但如果末尾有一個分號;則在Oracle中直接就是一個錯誤

ORA-00911: 無效字符

3、部分數據庫類型不支持,部分函數沒有。

沒有XML,數據類型。雙精度浮點數字數據類型在DB2是DOUBLE,在Oracle是BINARY_DOUBLE

由于使用了一個工具導出的DOUBLE,直接轉為了NUMBER(13),導致沒有小數部分,導致了大量錯誤。

這幾個函數YEAR,MONTH,DAY沒有

條件in中的數據有限制,否則ORA-01795: 列表中的最大表達式數為 1000

4、視圖定義中表不能使用as。

create view ViewNameasselect a.HWD_User_FK,b.u_name from T_HRWxData as a join T_user as b on a.HWD_User_FK=b.u_id如上的SQL在Server SQL,DB2中都可以使用,但在Oracle中不能使用,需要把as去掉create view ViewNameasselect a.HWD_User_FK,b.u_name from T_HRWxData  a join T_user b on a.HWD_User_FK=b.u_id

5、最大的問題是日期問題

select * FROM EAS.T_HRWxData where HWD_Date>='2016-04-14'如上的SQL,在SQL Server,DB2中可以,但在Oracle中是錯誤的,oracle不會字符串轉為日期類型。

在Oracle可以修改為

select * FROM EAS.T_HRWxData where HWD_Date>=to_date('2016-04-14','yyyy-mm-dd')

包含小時的日期格式處理24小時

to_date('2016-03-06 13:12:09','yyyy-mm-dd hh24:mi:ss')

包含小時的日期格式處理12小時,如果時小時數是下午的13點就會出錯

to_date('2016-03-06 01:12:09','yyyy-mm-dd hh:mi:ss')

在DB2中可以保存2016-04-14這樣沒有時間的日期,但在Oracle中好像不行,也導致了很多問題。

總之,這次切換數據庫還算順利,但教訓也不少,由于系統在七八年前設計,沒有考慮過切換數據庫的問題,因此使用數據庫函數時就沒有考慮數據庫函數的通用型,但因為使用了ORM映射工具ActiveRecord,修改也很少。如果使用大量的存儲過程,估計就有很多工作量了。在日期設計方面,應該根據具體實際設計類型了,例如對于2016-04-14格式的數據就可以采用字符串,沒必要使用日期類型導致不必要的錯誤。

以上這篇DB2數據庫切換為oracle數據庫經驗教訓總結(必看篇)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲国内精品在线| 久久97久久97精品免视看| 亚洲成人久久电影| 国产一区欧美二区三区| 性欧美视频videos6一9| 亚洲国产日韩一区| 日本欧美一二三区| 欧美一区二区大胆人体摄影专业网站| 亚洲国产美女久久久久| 中文字幕欧美精品日韩中文字幕| 国产亚洲精品成人av久久ww| 97精品视频在线| 欧美不卡视频一区发布| 亚洲午夜色婷婷在线| 亚洲男人第一av网站| 久久中文字幕一区| 在线不卡国产精品| 精品爽片免费看久久| 亚洲欧美成人一区二区在线电影| 国产精国产精品| 国产精品美女免费| 亚洲福利小视频| 日韩欧美大尺度| 亚洲美女视频网| 日韩免费看的电影电视剧大全| 久久深夜福利免费观看| 正在播放国产一区| 国产一区二区三区毛片| 91精品久久久久久久久| 欧美大胆在线视频| 国产一区二区三区在线播放免费观看| 亚洲最大的网站| 欧美视频在线观看 亚洲欧| 欧美激情一级精品国产| 精品国产户外野外| 色婷婷av一区二区三区久久| 在线日韩精品视频| 一二美女精品欧洲| 久久精品成人动漫| www亚洲欧美| 国产精品网站入口| 一区二区欧美在线| 欧美成人午夜剧场免费观看| 国产亚洲日本欧美韩国| 亚洲人成电影网站色www| 色偷偷噜噜噜亚洲男人| 尤物yw午夜国产精品视频| 亚洲图片制服诱惑| 有码中文亚洲精品| 欧美激情国内偷拍| 亚洲视频欧洲视频| 欧美激情第一页xxx| 国产在线视频2019最新视频| 国产ts人妖一区二区三区| 亚洲精品美女在线观看播放| 久久精品免费播放| 日韩中文字幕视频| 国产精品午夜一区二区欲梦| 久久夜色精品国产亚洲aⅴ| 国内精品久久久久久中文字幕| 俺也去精品视频在线观看| 亚洲娇小xxxx欧美娇小| 久久影院在线观看| 欧美性受xxx| 欧美国产欧美亚洲国产日韩mv天天看完整| 精品久久久久久久久中文字幕| 久久久久久国产精品| 日韩在线观看免费| 国产精品高潮呻吟久久av无限| 中日韩美女免费视频网站在线观看| 久久夜色精品国产欧美乱| 亚洲大胆人体av| 国产成人av在线| 狠狠躁夜夜躁久久躁别揉| 欧美日韩久久久久| 国产精品久久综合av爱欲tv| 亚洲高清在线观看| 亚洲一区二区三区香蕉| 成人亚洲综合色就1024| 国产z一区二区三区| 国产精品久久久久久久久久ktv| 伊人伊成久久人综合网站| 亚洲aⅴ男人的天堂在线观看| 午夜精品一区二区三区视频免费看| 国产成人免费av| 亚洲午夜久久久久久久| 亚洲国产成人久久综合| 久久亚洲电影天堂| 国外成人在线视频| 国产精品69精品一区二区三区| 亚洲精品久久久久久久久久久| 69国产精品成人在线播放| 91色视频在线观看| 欧美日本黄视频| 狠狠躁18三区二区一区| 国产不卡精品视男人的天堂| 欧美床上激情在线观看| 国外成人在线播放| 日韩一区二区欧美| 亚洲黄色在线看| 成人精品一区二区三区| 欧美xxxx18国产| 美女扒开尿口让男人操亚洲视频网站| 色一区av在线| 日韩在线播放视频| 亚洲免费视频网站| 久久国产精品免费视频| 成人免费观看49www在线观看| 久久久久久久影视| 国产精品av在线播放| 欧美激情亚洲自拍| 亚洲天堂一区二区三区| 尤物精品国产第一福利三区| 欧美特黄级在线| 久久久久国色av免费观看性色| 久久亚洲精品小早川怜子66| 主播福利视频一区| 国产中文日韩欧美| 成人a免费视频| 97色在线观看| 国产91色在线|| 欧美电影在线观看高清| 一区二区av在线| 成人信息集中地欧美| 精品少妇v888av| 久久精品中文字幕一区| 最近日韩中文字幕中文| 97人洗澡人人免费公开视频碰碰碰| 欧美激情综合亚洲一二区| 中文字幕在线成人| 欧美激情一级二级| 成人免费网站在线| 国产日韩欧美在线播放| 国产成人精品国内自产拍免费看| 亚洲第五色综合网| 色综合亚洲精品激情狠狠| 日本久久亚洲电影| 91天堂在线视频| 国模精品一区二区三区色天香| 在线观看国产成人av片| 综合欧美国产视频二区| 日本成熟性欧美| 91精品久久久久久久久| 久久精品视频在线观看| 日韩在线观看av| 午夜美女久久久久爽久久| 18久久久久久| 欧美日韩国产123| 亚洲性线免费观看视频成熟| 中文字幕亚洲情99在线| 亚洲一区二区三区在线视频| 午夜精品福利在线观看| 91精品国产免费久久久久久| 韩国欧美亚洲国产| 亚洲欧美日韩精品久久奇米色影视| 久久国产天堂福利天堂| 亚洲精品国产综合区久久久久久久| 伊人伊成久久人综合网站| 911国产网站尤物在线观看| 成人国产精品一区| 久久亚洲一区二区三区四区五区高| 青青精品视频播放| 欧美色视频日本高清在线观看| 国产精品日韩久久久久|