私の理解では、Long データ型は実際の文字列 (chars) を格納できますが、Long raw データ型は文字列 (chars) のバイナリ値を格納します。そうですか?テーブルに long 型の列を 1 つだけ含めることはできますか?
1 に答える
データ型はドキュメントで説明されています。LONG
ここで説明されています(または11gR2バージョン):
LONG 列には、最大 2 ギガバイト -1 または 231-1 バイトを含む可変長文字列が格納されます。LONG 列には、VARCHAR2 列の多くの特性があります。LONG 列を使用して、長いテキスト文字列を格納できます。
そしてLONG RAW
ここにあります:
RAW および LONG RAW データ型には、Oracle Databaseによって解釈されない(つまり、異なるシステム間でデータを移動するときに明示的に変換されない)データが格納されます。これらのデータ型は、バイナリ データまたはバイト文字列用です。たとえば、LONG RAW を使用して、用途によって解釈が異なるグラフィック、サウンド、ドキュメント、またはバイナリ データの配列を格納できます。
したがって、RAW
orLONG RAW
には文字のバイナリ表現を含めることができますが、文字セット変換などの対象にはならないため、おそらくそれほど有用ではありません。an には、他のバイナリ データ (テキストを表すと想定されていないもの) を含めることができます。
同じLONG
セクションから:
テーブルには、LONG 列を 1 つだけ含めることができます。
ただし、(またはテキスト、その他すべての場合)LONG
を支持して非推奨になっているため、新しい作業に使用しないでください。少なくとも、既に持っているものを置き換えることを検討する必要があります。再び同じセクションから:LOB
CLOB
NCLOB
BLOB
LONG
LONG 列を含むテーブルを作成しないでください。代わりに LOB 列 (CLOB、NCLOB、BLOB) を使用してください。LONG 列は、下位互換性のためにのみサポートされています。
また、既存の LONG 列を LOB 列に変換することもお勧めします。
からへの移行に関するこのドキュメントLONG
LOB
は興味深いかもしれません。