Arbeiten mit sehr großen text Daten-und CLOB-Spalte
Laut Dokumentation CLOB-und NCLOB-Datentyp Spalten, können Sie speichern bis zu 8 Terabyte von Zeichendaten.
Habe ich text, der enthält 100 000 Zeichen, wie kann ich die Abfrage wie diese:
UPDATE my_table SET clob_column = 'text, which contains 100 000 characters'
WHERE id = 1
?
Ob in text -, Zeichen-Zählung ist bis zu 32767, es ist möglich, verwenden Sie PL/SQL anonymen block:
DECLARE
myvar VARCHAR2(15000);
BEGIN
myvar := 'text, which contains 100 000 characters';
UPDATE my_table SET clob_column = myvar
WHERE id = 1;
....
END;
Was ist die Lösung, wo der text ist sehr umfangreich und enthält zum Beispiel 100 000 Zeichen ?
update
Ich versuche mit dbms_lob.append
:
create table t1 (c clob);
declare
c1 clob;
c2 clob;
begin
c1 := 'abc';
c2 := 'text, which contains 100 000 characters';
dbms_lob.append(c1, c2);
insert into t1 values (c1);
end;
Obwohl, habe auch Fehler: string literal too long
.
Bin ich etwas falsch ?
Woher diese Daten kommen? Eingabe 100 Zeichen wäre eine schlechte Wahl, also gerade SQL oder anonyme PL/SQL-block ist keine gute Idee. Wenn die Daten auf Dateien, die Sie verwenden können
Vielen Dank für die Antwort, ich bin gerade brauchen, um große Geschäft text in eine clob-Spalte
UTL_FILE
direkt. Wenn die Daten stammen aus einer Anwendung, die Sie verwenden können, welche Sprache es geschrieben ist, um die Interaktion mit dem clob-Objekte direkt.Vielen Dank für die Antwort, ich bin gerade brauchen, um große Geschäft text in eine clob-Spalte
InformationsquelleAutor OTAR | 2013-12-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie die
dbms_lob
Paket, das Verfahren zum hinzufügen einer Zeichenkette, um die clob istdbms_lob.append
.DBMS_LOB Dokumentation
dbms_lob.append
, aber habe auch Fehler:string literal too long
. Bitte siehe update in Frage.Varchar ist begrenzt auf 32k Zeichen. Ihre
c2
variable nicht halten kann 100k Zeichen. Sie müssen die Funktion aufrufenappend
mehrere Male, jedes mal, indem Sie bei den meisten 32k Zeichen.Ein technischer Hinweis. Wenn Sie weglassen die Zuordnung c1 := 'abc', und wenn Sie ändern Sie die Deklaration mit c1 clob := EMPTY_CLOB() Sie erhalten die UNGÜLTIGE LOB-LOCATOR-Fehler. Der clob hat immer zugeordnet werden, die mit einem nicht leeren Wert.
InformationsquelleAutor Alen Oblak
Fand ich diese Frage, während Googeln, wie zum Anhängen von Daten an ein CLOB. Für mein spezielles problem, ich bin mit einem legacy-PL/SQL-system, wo ich keinen nutzen aus der
dbms_lob
Paket, so dass ich dachte, ich würde teilen meine Antwort für das wohl anderer in meiner situation.Lösung: Verwenden Sie den Oracle
CONCAT function in a
WÄHLEN Siequery, the
CONCATfunction works for the
CLOB-Daten geben. Beispiel (mit @AlenOblak Beispiel):Hoffe, das hilft.
InformationsquelleAutor entpnerd
Habe ich beheben, in diesem Fall mit Daten-Import-Funktion in Oracle SQL Developer:
InformationsquelleAutor rustohero