亜音速2.2 varchar2 maxlengthの問題
-
26-10-2019 - |
質問
Varchar2(4000)Oracle 10gの列に4000文字を保存することに問題があります。たった2000文字を節約できます。
TIHSエラーが発生します
保存できません:general_ノートは4000の最大長を超えます
これは、亜音速定義テーブルシェマです。tablecolumncolvargeneralnote = new
TablesChema.TableColumn(スキーマ); colvargeneralnote.columnname = "general_note"; colvargeneralnote.datatype = dbtype.string; colvargeneralnote.maxlength = 4000; colvargeneralnote.autoincrement = false; colvargeneralnote.isnullable = true; colvargeneralnote.isprimarykey = false; colvargeneralnote.isforeignKey = false; colvargeneralnote.isreadonly = false; colvargeneralnote.defaultsetting = @""; colvargeneralnote.foreignKeyTableName = ""; schema.columns.add(colvargeneralnote);
2000文字を超える文字列をVarchar2(4000)列に保存することはできません
その問題についてはアドバイスしてください
ありがとう - アデム
解決
マルチバイトデータを挿入していることを意味します。フィールド定義を変更してみてください:varchar2(4000 char)
また、DBおよびCharestoretのnls_length_semanticsとは何か。
他のヒント
次のように、フィールド定義をVarchar2(4000 char)とDB設定に変更しましたnls_length_semantics byte nls_nchar_characterset al16utf16
また、キャラクターが2000年から4000の間にカウントされると、文字がORA-01460を取得したときに、実装または不合理な変換要求エラーを取得し、文字が4000を超えると節約できません。
Ademに感謝します