Wie kann ich verhindern, dass ich "raw variabler Länge zu lang" Fehler in der SQL-Developer?
Ich bin eine Aktualisierung ein BLOB mit großen Berg der text und ich bekomme diese Fehlermeldung:
SQL Error: ORA-06502: PL/SQL: numeric or value error: raw variable length too long
Gibt es eine Möglichkeit, um es?
Text ist 2,670 Zeichen umgewandelt, die via utl_i18n.string_to_raw
, wie beschrieben in der Wie Bearbeite ich BLOBs (mit JSON) in einem Oracle SQL-Developer?, und ist alles auf einer Zeile in der Abfrage.
Update: Der BLOB in Frage, die bereits text enthält, 2,686 Zeichen lang, das ist länger als der text, den ich versuche zu legen.
- möglich, Duplikat der Wie Bearbeite ich BLOBs (mit JSON) in einem Oracle SQL-Developer?
- Ich aktualisiert meine Antwort in dem anderen thread um eine etwas komplizierter Ansatz, der flexibler ist, dass die Verwendung der
utl_i18n.string_to_raw
Funktion.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einen
RAW
ist limitiert auf 2000 bytes. Wenn Ihre Daten mehr als das, werden Sie brauchen, um es zu speichern in einerCLOB
konvertieren und dann dieCLOB
zu einemBLOB
die ist leider ein bisschen komplizierter, dass diestring_to_raw
Funktion. So etwas wie dies funktionieren wird, vorausgesetzt, dass Sie zuordnen können, wird die gesamte Zeichenfolge um einCLOB
variable, die sollte funktionieren, solange der string weniger als 32676 bytes Länge. Wenn es mehr als, dass Sie schreiben müssen, um dieCLOB
in Stücke schneiden und dann konvertieren, um einBLOB
.rpad
? Ich brauche, umrpad
's Länge, die der Länge der Zeichenfolge, ich bin einfügen. Gibt es einen Weg, um mit um dies zu tun, nicht mitrpad
?RPAD
überhaupt. Ich war nur, es auch in meinem Beispiel zum generieren eines 3200 Buchstabenkombination, weil ich zu faul bin, zu geben eine Zeichenfolge, die lange und es wäre ein Schmerz zu formatieren, wie eine Zeichenfolge in eine SO post.Ich denke, was das Problem ist, dass die Daten, die Sie einfügen um die Spalte zu groß für den Datentyp der Spalte. Bitte überprüfen Sie den Wert, den Sie versuchen, fügen Sie in die Spalte, und aktualisieren Sie dann die Spalte Datentyp.
utl_i18n.string_to_raw
's maximum beschränkt, wenn es eine gibt.