mysql和Oracle 字串長度限制

2021-10-01 21:14:11 字數 754 閱讀 8216

場景: 本來準備做乙個 資料來源測試自動化場景,就是將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. 亦或者新增型別讓使用者選擇建立.

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

MySQL字串和編碼

1 utf 8和utf8有區別,在mysql query中使用utf 8可能會導致phpmyadmin顯示亂碼 2 utf8 general ci和utf8 unicode ci有區別,前者效率更高,但後者比較規則更完備,一般使用前者 3 在php中utf 8中文字元長度為3個字元,gbk長度為2個...

MySQL字串和編碼

1 utf 8和utf8有區別,在mysql query中使用utf 8可能會導致phpmyadmin顯示亂碼 2 utf8 general ci和utf8 unicode ci有區別,前者效率更高,但後者比較規則更完備,一般使用前者 3 在php中utf 8中文字元長度為3個字元,gbk長度為2個...

Oracle擷取字串和查詢字串

oracle 擷取字元 substr 檢索字元位置 instr case when then else end語句使用 收藏 常用函式 substr和instr 1.substr string,start position,length 求子字串,返回字串 解釋 string 元字串 start p...