Oracle 11g には varchar2 列を持つテーブルがあります。この列が文字列として定義される独自のプログラミング言語を使用します。この列には最大で 2000 文字 (4000 バイト) を格納できます。現在の要件は、列に 2000 文字を超える (実際には無制限の文字数) を格納する必要があるというものです。DBA は、メンテナンス上の理由から BLOB または LONG データ型を好みません。
私が考えることができる解決策は、元のテーブルからこの列を削除し、この列に別のテーブルを用意してから、各文字を行に格納して、無制限の文字を取得することです。このテーブルは、クエリ用に元のテーブルと結合されます。
この問題に対するより良い解決策はありますか?
更新: 独自のプログラミング言語では、string 型および blob 型の変数を定義できます。CLOB のオプションはありません。回答の内容は理解できますが、DBA を担当することはできません。BLOB や LONG からの逸脱が開発者にとって悪夢であることは理解していますが、それでも仕方がありません。
更新 2: 必要な最大文字数が 8000 文字の場合、さらに 3 つの列を追加して、それぞれ 2000 文字の 4 つの列を作成して 8000 文字を取得できますか。したがって、最初の列がいっぱいになると、値は次の列にスピルオーバーされます。この設計には悪い副作用がありますか? 提案してください。