天天看點

gbase使用中遇到的bug(如果有可能,盡量避免使用 GBase資料庫,相對達夢等國産資料庫,實在太差勁)

鄭重聲明:如果有可能,盡量避免使用 GBase資料庫,相對達夢等國産資料庫,實在太差勁.

多個版本之間不能平滑更新,跟IE有一拼,A 版本支援的B版本可能就不支援.

迫于形勢必須使用的話,則隻能咬牙忍受了.

1.之前使用8t版本遇到 TOP 函數問題,開發環境支援,線上版本不支援

  而且資料庫都是 8t,但是8t也有不同的版本,是以..............

  根據目前的情況 gabse對 first 函數相容性更好(用于擷取前N條資料)

2.8s版本遇到,  select MAX(org_code) from SYS_ORGAINZE where ORG_CODE like 'LS%' ; 該語句結果為null

select avg(1),MAX(org_code) from SYS_ORGAINZE where ORG_CODE like 'LS%' ;  或者  select MAX(org_code) from SYS_ORGAINZE where ORG_CODE like '%LS%' ; 則正常

整體來說就是版本多還混亂,各個版本還是不同團隊維護.像ie各個版本不相容,但沒那麼誇張.

3.資料遷移困難,不管往其他資料庫還是遷移到gbase都比較麻煩,就連gbase之間的遷移都需要停庫,執行一串伺服器腳本,後來gabse給提供了遷移腳本,gbase之間導出導入稍微好受點

4.用戶端,驅動錯誤提示極差,大部分隻會告訴你SQL有文法錯誤,然後就沒了,需要自己好好審閱SQL

比如它本身導出的sql他不認(智障!!!),主要出現在datetime字段上,必須是 

DATETIME           YEAR TO FRACTION(5)   如果有預設值則如下

 DATETIME           YEAR TO FRACTION(5) DEFAULT CURRENT YEAR TO FRACTION(5)

5.資料庫單使用者多執行個體,雖然可以建立其他使用者,但會導緻很多問題,比如PageHelper需要注冊新的使用者名,比如hibernate需要注冊新的

Dialect等,雖然改動不大,但是很不爽
           

6.資料庫不支援字段注釋

7.gbase  text字段不能通過sql語句插入,隻能通過程式或者用戶端修改(是不是很傻?)

    用戶端修改的時候不能直接修改,隻能粘貼,用戶端不能通過sql修改

    或者是删除重建,直接使用lvarchar,長度基本也夠用

    varchar目前最大隻能255,這個根據實際情況使用

     text字段不能更改字段類型,不管資料庫有沒有資料,oracle也是這樣的,還可以接受吧

8.查詢系統所有表時,select * from systables,但是informix驅動或者gbasedbt(informix  8s版本)驅動,分别添加了字首 informix/gbasedbt 是以如果使用其他使用者調用系統的方法可能會出現問題

此外,某些查詢可能會出問題,比如,有大文本字段的,但僅限于某些版本,有的版本可以,迷一樣的庫

gbase使用中遇到的bug(如果有可能,盡量避免使用 GBase資料庫,相對達夢等國産資料庫,實在太差勁)

9.資料庫  字段/表别名不能加引号

gbase的 SQL  裡支援 字段 和 表名 添加表名時 ,() 代表 可有可無, 可以

     字段名  (AS)  字段别名

     表名     (AS)  表别名 

 但 ORACLE ,() 代表 可有可無,隻能   

    字段名  (AS)  字段别名

     表名   表别名 

 ORACLE  字段  ,表 亦可以 别名添加雙引号  ,() 代表 可有可無

     字段名  (AS)   "字段别名"

     表名  "表别名"

select A.lhbm as aaa,jhbm as bbb from TY_LHJHNM as A join  ty_lhjhnmzb as B on a.lhbm=b.lhbm

10.gbase的遞歸和oracle一樣

            SELECT   *

FROM     TREES 

         START WITH parentId =0

         CONNECT BY PRIOR id=parentId

         ORDER BY id desc

11.gbase資料庫在資料完全一樣的時候

(資料庫沒主鍵肯定是設計有鍋,這個跑不了)

   發現這個問題,想撥亂返正,現在讨論gabse方面:

       不好意思,不能删除,是否定制唯一鍵? 或者使用全部列?

       然後...............不好意思資料重複不能定制唯一鍵,不能删除,我去年買了個表!

      如果嫌這個提示煩,以後不再提示的話.那恭喜你中獎了

             如果有N條完全一樣的資料,重複了一遍,目前總共是2N ,假設将這2N條查詢出來

   ,并且删除其中重複的,隻保留不重複的N條,CTRL  +  S 後,資料全部被删除了,2N都沒了

    特别提示:gbase是自動送出的,謹防手殘,千萬記得左上角的  AUTO

   這個問題有2個解決方案:

          1.通過 distinct 篩選重複資料,添加到新表,此時可篩選掉主鍵重複的資料

        在新表設定主鍵,再通過SQL去除其他重複資料,比如id不同的,但是其他業務唯一的資料重複的

             或不同建立/修改時間的資料等

          2.可通過rowid 進行資料删除

     此外,發現在用程式執行更新的時候,如果沒有where條件,且這個表裡有text等大文本字段時,更新會報錯,提示  Blobs are not allowed in this expression.  加上後就好了,猜測是跟更新的時候一樣,沒主鍵就用全部字段做條件了,然後大文本字段做條件會有問題,大概是這樣,加上主鍵字段做條件後就好了

12.gbase會自動斷開連接配接,比如幾分鐘後,用戶端連接配接中斷,需要重新連接配接,此時需要重新選庫,然後會卡半天(大概幾十秒或者個把分鐘)

如果直接執行查詢,也是卡半天,然後告訴你需要重新連接配接

13.gbase用戶端也比較差

  在測試連接配接, 連接配接資料庫 ,編輯表切換庫, 展開全部表等情況下,明顯比其他庫慢很多,不過這個主要是用戶端問題

 除 編輯表 外,均可通過換其他用戶端解決,就算編輯表 也會比官方用戶端快很多(慢還容易卡死),這點,頗為無語

   這個軟體是dbeaver,配置稍有麻煩,不過用起來好用多了  

資料庫界的IE:大清滅亡辣