Wie Bearbeite ich BLOBs (mit JSON) in einem Oracle SQL-Developer?
Wie Bearbeite ich BLOBs (mit JSON-text) in einem Oracle SQL-Developer?
Kann ich öffnen und anzeigen, aber brauche ich einen externen editor zu Bearbeiten? Jede Hilfe auf was zu verwenden, selbst wenn es nur ein Editor ist, und wie Sie gehen über es würde sehr geschätzt werden in der Antwort.
EDIT: BLOBs in Frage enthalten JSON-text.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie eine Abfrage ausführen, die in SQL Developer 3.1 (und wahrscheinlich auch frühere Versionen), gibt eine BLOB, können Sie auch einen Doppelklick auf dem jeweiligen BLOB, der Sie interessiert, wo werden Sie aufgefordert, entweder zu versuchen, das senden der Daten zu einem externen editor oder versuchen, die built-in-SQL-Developer display-Steuerung versuchen, die Daten zu interpretieren, als ein Bild oder als text. Ihre JSON-Daten wahrscheinlich korrekt angezeigt, wenn Sie wählen Sie die option "text".
Wenn Sie möchten, um die Daten zu ändern, jedoch sind Sie gehen zu müssen, um die Ausgabe eines
UPDATE
um tatsächlich die Daten. SQL Developer nicht über die Funktionalität, um direkt Bearbeiten Sie die LOB-Daten. Zum Beispielaktualisiert die angegebene Zeile mit der neuen JSON-Daten verschlüsselt mit dem Datenbank-Zeichensatz. Wenn Sie die Daten speichern möchten, die in einigen anderen Zeichensatz,
string_to_raw
nimmt einen optionalen zweiten parameter, der angibt, den Zeichensatz. Also, wenn Sie wollen, speichern Sie die Daten unter Verwendung des UTF-8-Zeichensatz, solltest du so etwas tunNatürlich, da JSON-Daten ist Text, Sie wären weit besser dran, die Speicherung der Daten in einem CLOB -, die entworfen, zu speichern, character large objects. Dann SQL-Entwickler (und andere tools) könnte nur der text angezeigt, anstatt dass Sie wählen Sie das Ergebnis und nehmen Sie dann weitere Aktionen in text konvertieren. Und Sie würden nicht haben, die Daten zu konvertieren, um
RAW
zur Aktualisierung der Daten in der Datenbank.Wenn die Daten zu lang für
string_to_raw
zu handhaben (welche, hängt vom Zeichensatz und der Daten, sondern wird jederzeit auftreten, dieRAW
Daten überschreitet 2000 Byte), können Sie speichern die Daten in einerCLOB
und dann konvertieren, die in eineBLOB
, die Sie verwenden, um die Tabelle zu aktualisieren. Das ist ein bisschen komplexer, aber es ist flexibler. In diesem Beispiel habe ich die Polsterung der JSON-Daten zu 3200 Zeichen, die mit einem '*'-- offensichtlich ist die test-Daten ist nicht mehr gültiges JSON, aber das ist nicht wichtig für die Zwecke dieser Frage.UPDATE
mit dieser text-Datei? Verbinden Sie mich hier und ich werde wissen, wie Sie es alle tun!UPDATE
- Anweisung.raw variable length too long
Fehler. Vielen Dank so viel für diese Lösung jedoch.rpad
für (überhaupt)?RPAD
überhaupt. Ich war gerade Sie es zum erstellen einer 3200 Zeichenkette, da war ich zu faul, um geben Sie einen gültigen 3200 Zeichen langen Brocken von JSON.RAW
ist 2000 bytes, nicht 4000. Aktualisiert meine Antwort zu reflektieren.dbms_lob.freeTemporary
am Ende des Skripts nur für eine gute code-hygiene.Wenn Sie schauen, um zu ändern, einzelne blobs die zimmerreserviereung, ohne das schreiben von SQL, die Sie tun können diese in Oracle SQL Developer:
(BLOB)
. Ein Bearbeiten-button (Bleistift für ein Symbol) erscheinen auf der rechten Seite der Zelle. Klicken Sie auf es.Download
rechts Gespeicherten Daten. Speichern Sie es irgendwo.Load
rechts Lokalen Daten. Suchen Sie die Datei, wo Sie es gespeichert haben, nach dem Bearbeiten. Klicken Sie aufOK
im Bearbeiten-dialog Wert jetzt.Commit Changes
- Taste, wenn Sie mit Ihren änderungen zufrieden sind, oder dieRollback Changes
- Taste, wenn Sie habe Ihre Meinung geändert.Viel einfacher, denke ich, als die ganze
dbms_lob.convertToBlob
wenn dies nur eine kurze einmalige Sache.