2009-07-24 4 views
15

Hat Oracle einen äquivalenten Spaltentyp zum Typ TEXT von MySQL?Oracle Äquivalent des TEXT-Typs von MySQL

Wenn nicht, wie werden normalerweise größere Textblöcke gespeichert? BLOB, varchar(32767)? Auf Oracle 10 wird über PHP zugegriffen, wenn es darauf ankommt. Historischer Kontext ist mehr als willkommen.

Antwort

12

Oracle verfügt über BLOB, CLOB und NCLOB zum Speichern von Datentypen für Binär-, Zeichen- und Unicode-Zeichen. Sie können auch den LOB-Speicherbereich angeben, die ein DBA zur Feinabstimmung ermöglicht die Speicherung bei Bedarf (dh die LOB-Daten auf verschiedenen Datenträgern setzen)

Diese Seite gibt ein bisschen mehr Info: http://www.dba-oracle.com/t_blob.htm

+3

Die offizielle Dokumentation: http://download.oracle.com/docs/cd/B19306_01/server.102/b14220/datatype.htm#i3237 –

6

Ich denke, dass Sie wahrscheinlich den CLOB Datentyp möchten.

2

The Character Large Object (CLOB) ist wahrscheinlich das, wonach Sie suchen. Wenn Sie jedoch wissen, dass der gesamte Text in einen VARCHAR2 passt, legen Sie ihn definitiv dort hin. Ein clob kann nicht in einer group by-Klausel verwendet werden und ist in den meisten Fällen viel langsamer zu verwenden als ein varchar2. Wenn Sie wissen, dass Sie die Grenze von 4000 Byte überschreiten, verwenden Sie den CLOB (der bis zu 4 GB verarbeiten kann).

0

Oracle SQL hat eine Grenze von 4000 Zeichen für eine VARCHAR2-Spalte (Oracle PL/SQL hat eine höhere Grenze von 32.767 Zeichen). Wie von den anderen angegeben, eignet sich CLOB zum Speichern großer Textmengen.

1

Sie müssen CLOB verwenden. Es steht für Character Large Object.

Ein CLOB wird zum Speichern von Unicode-zeichenbasierten Daten verwendet, z. B. große Dokumente in einem beliebigen Zeichensatz.

Es kann bis zu 2.147.483.647 Zeichen lang sein.