5

私の理解では、Long データ型は実際の文字列 (chars) を格納できますが、Long raw データ型は文字列 (chars) のバイナリ値を格納します。そうですか?テーブルに long 型の列を 1 つだけ含めることはできますか?

4

1 に答える 1

11

データ型はドキュメントで説明されています。LONGここで説明されています(または11gR2バージョン):

LONG 列には、最大 2 ギガバイト -1 または 231-1 バイトを含む可変長文字列が格納されます。LONG 列には、VARCHAR2 列の多くの特性があります。LONG 列を使用して、長いテキスト文字列を格納できます。

そしてLONG RAWここにあります

RAW および LONG RAW データ型には、Oracle Databaseによって解釈されない(つまり、異なるシステム間でデータを移動するときに明示的に変換されない)データが格納されます。これらのデータ型は、バイナリ データまたはバイト文字列用です。たとえば、LONG RAW を使用して、用途によって解釈が異なるグラフィック、サウンド、ドキュメント、またはバイナリ データの配列を格納できます。

したがって、RAWorLONG RAWには文字のバイナリ表現を含めることができますが、文字セット変換などの対象にはならないため、おそらくそれほど有用ではありません。an には、他のバイナリ データ (テキストを表すと想定されていないもの) を含めることができます。

同じLONGセクションから:

テーブルには、LONG 列を 1 つだけ含めることができます。

ただし、(またはテキスト、その他すべての場合)LONGを支持して非推奨になっているため、新しい作業に使用しないでください。少なくとも、既に持っているものを置き換えることを検討する必要があります。再び同じセクションから:LOBCLOBNCLOBBLOBLONG

LONG 列を含むテーブルを作成しないでください。代わりに LOB 列 (CLOB、NCLOB、BLOB) を使用してください。LONG 列は、下位互換性のためにのみサポートされています。

また、既存の LONG 列を LOB 列に変換することもお勧めします。

からへの移行に関するこのドキュメントLONGLOBは興味深いかもしれません。

于 2012-10-04T08:33:47.633 に答える