質問

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に感謝します

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top