鄭重聲明:如果有可能,盡量避免使用 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 是以如果使用其他使用者調用系統的方法可能會出現問題
此外,某些查詢可能會出問題,比如,有大文本字段的,但僅限于某些版本,有的版本可以,迷一樣的庫
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:大清滅亡辣