Wie bearbeite ich BLOBs (die JSON enthalten) in Oracle SQL Developer?

8

Wie bearbeite ich BLOBs (mit JSON-Text) in Oracle SQL Developer?

Ich kann sie öffnen und ansehen, aber brauche ich einen externen Editor, um sie zu bearbeiten? Jede Hilfe auf was zu verwenden, auch wenn nur Notizblock, und wie man darüber geht, würde in der Antwort sehr geschätzt werden.

BEARBEITEN: BLOBs enthalten JSON-Text.

    
Xonatron 09.02.2012, 20:45
quelle

1 Antwort

7

Wenn Sie in SQL Developer 3.1 (und wahrscheinlich in früheren Versionen) eine Abfrage ausführen, die ein BLOB zurückgibt, können Sie auf das gewünschte BLOB doppelklicken, in dem Sie aufgefordert werden, entweder zu versuchen, die Daten zu senden zu einem externen Editor oder um zu versuchen, die integrierte SQL Developer-Anzeigesteuerung zu versuchen, die Daten als ein Bild oder als Text zu interpretieren. Ihre JSON-Daten werden wahrscheinlich korrekt angezeigt, wenn Sie die Textoption auswählen.

Wenn Sie jedoch die Daten ändern möchten, müssen Sie ein UPDATE ausgeben, um die Daten tatsächlich zu setzen. SQL Developer verfügt nicht über die Funktionalität zum direkten Bearbeiten der LOB-Daten. Zum Beispiel

%Vor%

aktualisiert die angegebene Zeile mit den neuen JSON-Daten, die mit dem Datenbankzeichensatz codiert wurden. Wenn Sie die Daten in einem anderen Zeichensatz speichern möchten, verwendet string_to_raw einen optionalen zweiten Parameter, der den Zeichensatz angibt. Wenn Sie also die Daten mit dem UTF-8-Zeichensatz speichern möchten, sollten Sie so etwas tun

%Vor%

Da JSON-Daten textbasiert sind, ist es natürlich viel besser, die Daten in einem CLOB zu speichern, in dem große Objekte gespeichert werden. Dann könnte SQL Developer (und andere Tools) nur den Text anzeigen, anstatt dass Sie das Ergebnis auswählen müssen, und dann zusätzliche Aktionen ausführen, um es in Text zu konvertieren. Und Sie müssten die Daten nicht in RAW konvertieren, um die Daten in der Datenbank zu aktualisieren.

Wenn die Daten für die Verarbeitung von string_to_raw zu lang sind (abhängig vom Zeichensatz und den Daten, aber immer dann, wenn die RAW -Daten 2000 Bytes überschreiten), können Sie die Daten in CLOB speichern und wandeln Sie das dann in ein BLOB um, das Sie verwenden, um die Tabelle zu aktualisieren. Das ist ein bisschen komplexer, aber es ist flexibler. In diesem Beispiel packe ich die JSON-Daten auf 3200 Zeichen mit einem '*' auf - offensichtlich sind die Testdaten nicht mehr gültig JSON, aber das ist nicht wichtig für diese Frage.

%Vor%     
Justin Cave 09.02.2012, 20:54
quelle