Heim > Datenbank > MySQL-Tutorial > Wie teilt man durch Kommas getrennte Werte zuverlässig in Oracle-Tabellenspalten auf?

Wie teilt man durch Kommas getrennte Werte zuverlässig in Oracle-Tabellenspalten auf?

DDD
Freigeben: 2025-01-22 09:22:08
Original
622 Leute haben es durchsucht

How to Reliably Split Comma-Delimited Values into Oracle Table Columns?

Effizientes Parsen von durch Kommas getrennten Werten in Oracle-Tabellen

Der Umgang mit großen Datensätzen mit durch Kommas getrennten Werten (CSV) erfordert häufig die Aufteilung dieser Werte in einzelne Spalten innerhalb einer Oracle-Tabelle, um die Datenanalyse und -bearbeitung zu optimieren. Während reguläre Ausdrücke über die Funktion REGEXP_SUBSTR eine Lösung bieten, kann ein üblicher Ansatz mit dem Ausdruck [^,] unzuverlässig sein.

Dies gilt insbesondere beim Umgang mit CSV-Daten, die Null- oder leere Werte enthalten. Um eine genaue Extraktion von Elementen sicherzustellen, unabhängig von Nullen oder leeren Zeichenfolgen, ist ein robusterer regulärer Ausdruck erforderlich. Der folgende Ausdruck wird empfohlen:

(.*?)(,|$)
Nach dem Login kopieren

Dieser Ausdruck verwendet Erfassungsgruppen, um das gewünschte Element, einschließlich aller führenden oder nachgestellten Kommas, genau zu identifizieren. Durch Angabe des Capture-Gruppenindex (1) in REGEXP_SUBSTR können Sie den Wert des Elements zuverlässig abrufen und dabei sowohl ausgefüllte als auch Nullwerte korrekt verarbeiten.

Betrachten Sie diese illustrative Abfrage:

SELECT
  ROW_NUM,
  REGEXP_SUBSTR(VAL, '(.*?)(,|$)', 1, 1, NULL, 1) AS VAL1,
  REGEXP_SUBSTR(VAL, '(.*?)(,|$)', 1, 2, NULL, 1) AS VAL2
FROM (
  SELECT
    ROWNUM AS ROW_NUM,
    '1.25, 3.87, 2' AS VAL
  FROM dual
  UNION ALL
  SELECT
    ROWNUM,
    '5, 4, 3.3'
  FROM dual
)
Nach dem Login kopieren

Diese Abfrage demonstriert die Aufteilung der durch Kommas getrennten Werte der Spalte „VAL“ in zwei neue Spalten, „VAL1“ und „VAL2“, wobei die Datenintegrität auch bei Null- oder leeren Einträgen gewahrt bleibt. Die Ausgabe zeigt deutlich die getrennten Werte. Beachten Sie die Verwendung von ROWNUM und UNION ALL zum Erstellen von Beispieldaten, einem Standardansatz als im ursprünglichen Beispiel.

Das obige ist der detaillierte Inhalt vonWie teilt man durch Kommas getrennte Werte zuverlässig in Oracle-Tabellenspalten auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage