mysql和Oracle 字符串長度限制

場景: 本來準備做一個 數據源測試自動化場景,就是將gdb裏面的數據轉入到 Mysql, Dameng,Oracle,GDB,PostgreSQL.

問題: gdb字符串讀取出來的字符串字段長度爲65535, 65535這個長度到其他數據源就很可能有問題, 具體如下: 如果文件數據源一般沒問題, 如果是數據庫數據源就可能有很大問題:

1: mysql 的Create table 語句最大長度爲65535, 如有 新建表的sql語句過長會無法成功, 特別是字段使用varchar()類型, 會報錯1118, 建議換成text或者blob

 

2: oracle 直接創建沒有整個語句sql的長度限制,但是單個字段使用varchar 最大僅僅支持4000,超過就必須用其他類型

 

 

其他數據庫sqlite, gdb, PostgreSQL暫未發現問題, 都可創建

但是內核 GsFieldType 類型對於字符串目前僅僅只有一個描述 eStringType, 無法區分varchar和text的類型, 後面將考慮內部處理 超過限制的創建爲text, 未超的創建爲varchar. 亦或者新增類型讓用戶選擇創建.

綜上所述: 基於各數據庫的特性, 創建業務庫的時候必須根據特定數據庫特性來定義字段, 當然一般也不需要這麼大字段長度.

發佈了78 篇原創文章 · 獲贊 7 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章