Datenbank- und SQL-Werkzeuge

PostgreSQL Array-Parsermit Intervallprüfung

Einen rohen Array- oder Intervallwert einfügen und seine Struktur prüfen, ohne eine Datenbankabfrage auszuführen.

PostgreSQL Array-Parser

Roher PostgreSQL-Wert

JSON-Bericht

Werte werden in diesem Browser verarbeitet; kein Upload, keine Datenbankverbindung und keine Netzwerkanfrage.

Eingabeoptionen

Den rohen Wert ohne äußere SQL-Anführungszeichen oder Casts eingeben. Array-Werte außer NULL bleiben Text; Intervallfelder bleiben getrennt.

65.536 Zeichen · 10.000 Elemente · 6 Dimensionen · Sekunden mit höchstens 6 Nachkommastellen

Dimensionen: 2 · Elemente: 6 · NULL: 1

Ein PostgreSQL Array-Parser hilft, wenn ein Treiber oder ein Export nur eine Zeichenfolge mit geschweiften Klammern liefert. Einfaches Trennen am Komma scheitert, sobald ein Element selbst ein Komma oder maskierte Anführungszeichen enthält.

Das Beispiel unterscheidet NULL, den Text "NULL" und eine leere Zeichenfolge. Bei Intervallen sollte zuerst das Ausgabeformat der Quelle feststehen: Davon hängt ab, für welche Felder ein führendes Minuszeichen gilt.

Warum dieser PostgreSQL Array-Parser?

Die ursprünglichen Indizes behalten

Der PostgreSQL Array-Parser zeigt verschachtelte Werte sowie Länge, Unter- und Obergrenze jeder Dimension. Beginnt ein Array bei null oder einem negativen Index, bleibt diese Information in den Metadaten erhalten, auch wenn JSON selbst keine solchen Array-Grenzen speichert.

Zwei Reihen mit je drei Array-Zellen bleiben gruppiert; fehlender Wert und zitierter Text sind getrennt dargestellt

Kalender und Uhrzeit getrennt behandeln

Ein Monat hat keine feste Anzahl Sekunden. Das PostgreSQL Intervall bleibt deshalb in Monate, Tage und Mikrosekunden aufgeteilt. Unterschiedliche Vorzeichen werden bewahrt, statt sie durch eine angenommene Kalenderrechnung zu vereinheitlichen.

Ein Intervall wird in einen Monatskalender, ein Tagesfeld und eine präzise Uhr aufgeteilt

Vor dem Export auf die Bedeutung achten

01

Zuerst den passenden Parser wählen

Unter den Editoren zwischen Array und Intervall wechseln. Ein Wechsel behält den Text bei und ändert nur die Regeln. Das Beispiel zeigt vor dem Ersetzen eine Vorschau samt Zeichenzahl für den gewählten Modus.

02

Grenzen und Vorzeichen lesen

Die erste Dimension des Beispiels beginnt bei Index null. Im JSON stehen dimensions und nullCount. Bei sql_standard kann ein einziges führendes Minus auch für nachfolgende Tages- und Zeitfelder gelten; daher das Quellformat ausdrücklich wählen.

03

Den Aktualisierungszeitpunkt steuern

Automatisches Parsen wartet nach der letzten Änderung 350 ms. Ausgeschaltet stehen die Schaltfläche und Ctrl/Cmd+Enter bereit. Änderungen sperren Exporte sofort. Lange Berichte erscheinen in Abschnitten von 100 Zeilen; kopiert und gespeichert wird stets der vollständige Bericht.

Werte und Struktur nachvollziehen

Keine Typen anhand des Textes erraten

Wer ein PostgreSQL Array parsen möchte, kann Werte wie 001 oder sehr große Ganzzahlen als Zeichenfolgen erhalten. Mehrdimensionale Arrays müssen rechteckig sein. Unterschiedlich lange Zeilen führen zu einem Fehler, nicht zu ergänzten NULL-Werten oder einer flachen Liste.

Anführungszeichen und Escape-Zeichen auswerten

Ein Array-Literal darf geschützte Kommas, Anführungszeichen, Backslashes und Leerraum enthalten. Nur unzitiertes, nicht maskiertes NULL wird zu JSON null. "NULL", ein maskiertes NULL und eine leere Zeichenfolge bleiben Text und sind im Ergebnis unterscheidbar.

Vier Ausgabeformate mit exakten Feldern

postgres, postgres_verbose, sql_standard und iso_8601 werden ausdrücklich ausgewählt. Kalenderfelder müssen ganzzahlig sein, Sekunden dürfen sechs Nachkommastellen haben. Exakte Ganzzahlarithmetik liefert Monate, Tage und Mikrosekunden als Dezimalzeichenfolgen.

Unterstützte Eingaben und Grenzen

Nur den inneren Wert einfügen
Erlaubt sind {...} mit optionalen Grenzen oder ein Intervallwert. SQL-Anweisungen, ARRAY-Ausdrücke, äußere einfache Anführungszeichen, E-Strings, Casts und Feldqualifikatoren werden abgewiesen. Verbindungen, Dateiimporte und URL-Abfragen sind nicht vorgesehen.
Strukturprüfung ohne Elementtyp
Standard ist das Komma; für box-artige Arrays kann ein Semikolon gewählt werden. Grenzen müssen gültig sein und zur Form passen. Leere verschachtelte Arrays werden zu einem leeren Array ohne Dimensionen. OIDs, eigene Trennzeichen und array_nulls=off werden nicht ausgewertet.
Bewusst begrenzte Intervallgrammatik
Verwendet werden ausgabeähnliche Formen des gewählten Stils. Bruchteile von Monaten, Tagen, Stunden oder Minuten, Unendlich, die alternative ISO-Schreibweise und einheitenlose Zahlen außer null sind ausgeschlossen. Mehr als sechs Nachkommastellen bei Sekunden werden nicht gerundet. Eine Umrechnung in Gesamtsekunden oder Temporal erfolgt nicht.
Obergrenzen ohne abgeschnittene Ergebnisse
Zulässig sind 65.536 JavaScript-Zeichen, 10.000 Array-Elemente und sechs Dimensionen. Monate und Tage müssen in vorzeichenbehaftete 32-Bit-Ganzzahlen passen, Mikrosekunden in 64 Bit. Jeder Fehler sperrt den Export; es wird kein Teilergebnis als vollständig ausgegeben.

Fragen zum PostgreSQL Array-Parser

Warum meldet PostgreSQL malformed array literal?

Oft fehlt eine schließende Klammer oder ein Anführungszeichen, ein Trennzeichen steht am Ende oder der Text enthält noch die äußere SQL-Anweisung. Die Fehlermeldung nennt Zeile und Spalte. Nur den inneren Array-Wert einfügen und die markierte Stelle auf Anführungszeichen und Backslashes prüfen.

Wie behandelt PostgreSQL NULL in einem Array?

Unzitiertes und nicht maskiertes NULL wird unabhängig von der Großschreibung zu JSON null. "NULL" ist Text, "" eine leere Zeichenfolge. nullCount zählt fehlende Elemente. Ein einzelnes SQL NULL ist hier kein Array-Literal; ein leeres Array wird als {} geschrieben.

Warum schlägt das Einfügen eines mehrdimensionalen Arrays mit malformed array literal fehl?

Alle Teilarrays müssen in jeder Dimension dieselbe Länge haben. {{a,b},{c}} enthält zwei beziehungsweise ein Element und wird abgewiesen. Fehlende Zellen werden nicht ergänzt. Die Quelldaten korrigieren und anschließend prüfen, ob ausdrücklich angegebene Grenzen ebenfalls zur Form passen.

Wie werden doppelte Anführungszeichen in Array-Werten für PostgreSQL COPY maskiert?

Die äußere COPY- oder CSV-Kodierung ist eine andere Ebene als die Array-Syntax. Hier wird nur die innere Ebene verarbeitet. In einem zitierten Element steht vor einem doppelten Anführungszeichen oder Backslash jeweils ein Backslash. Die äußere Kodierung muss vor dem Einfügen entfernt werden.

Warum liefert die Umrechnung eines PostgreSQL-Intervalls in Sekunden unerwartete Werte?

Monate haben unterschiedliche Längen; ein Kalendertag kann bei einer Zeitumstellung auch von 24 Stunden abweichen. Eine pauschale Umrechnung kann daher ein anderes Ergebnis liefern als die tatsächliche verstrichene Zeit. Dieser Bericht lässt die drei Felder getrennt. Für verstrichene Sekunden werden konkrete Zeitpunkte benötigt.

Wie lässt sich 1 day 01:30:00 als 25:30:00 darstellen?

Eine andere Darstellung lässt sich außerhalb dieses Werkzeugs mit SQL erzeugen, sie verschiebt jedoch Tage in das Stundenfeld. Hier bleibt 1 day 01:30:00 bei days="1" und microseconds="5400000000". Dagegen ergibt 25:30:00 die Felder days="0" und microseconds="91800000000".

Noch eine Frage?

Den nächsten Literalwert prüfen

Der PostgreSQL Array-Parser macht Grenzen und Werte sichtbar. Für einen Zeitabstand das Intervallformat wählen und vor dem JSON-Export die drei Felder vergleichen.

Ein Literal pro Durchlauf; keine automatische Reparatur.