2012-10-04 10 views
5

私はLongデータ型は実際の文字列(chars)を格納できますが、Long生データ型は文字列(chars)のバイナリ値を格納します。そうですか?テーブルに長い型の列が1つしかありませんか?Oracleの長い生データ型と長い生データ型の違いは何ですか?

+1

Oracle LONGデータ型は、下位互換性のためにのみ使用できます。 BLOB/CLOBデータ型をよく調べる。 – Rene

答えて

10

データ型については、ドキュメントに記載されています。 LONG is explained here(又は11gR2 version):

LONG列は 2ギガバイト-1、又は231-1バイトまでを含む可変長文字列を格納します。 LONG列は、VARCHAR2列の特性の多くを持っています。 LONG列を使用して、長いテキスト文字列 を格納することができます。

そしてLONG RAW is here

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

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

テーブルつのみLONG列を含めることができます同じLONG部から

。あなたが新しい仕事のためにそれらを使用すべきではない、と少なくともいずれか、すでにあなたを交換考慮しなければならないので、しかし、LONGは、LOBCLOBまたはNCLOBテキストのため、他のすべてのためのBLOB)の賛成で廃止されました

持ってる。同じセクションから再度LONG

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

既存のLONG列をLOB 列に変換することをお薦めします。

このdocumentation on migrating from LONG to LOBが対象です。

関連する問題