SQl-String parsen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • SQl-String parsen

    Hallo,

    ich möchte gerne ein SQL-Dump auslesen und parsen.
    Bei einer "Insert"-Anweisung möchte ich gern die durch Kommata getrennten Werte in einzelnen Variablen aufgetrennt haben.
    Jetzt können aber natürlich die Kommata auch innerhalb des Wertes vorkommen.

    Kann man das trotzdem mit regulären Ausdrücken lösen?

    Bzw. eigentlich gibt es ja schon eine Funktion, die in der Lage ist einen solchen String korrekt in seine Werte zu zerlegen. func_args macht genau das - nur leider kann man das eben nicht auf einen eigenen String anwenden.

    Wie kann ich das Gleiche mit einem String schaffen?

  • #2
    Re: SQl-String parsen

    Kann man das trotzdem mit regulären Ausdrücken lösen?
    pauschal: ja.

    func_args macht genau das - nur leider kann man das eben nicht auf einen eigenen String anwenden.
    kenn ich nit, diese funktion! falls du die meinst, an die ich denke, ist klar, daß es mittels dieser nicht wirklich geht, die erwartet ja als parameter komma-getrennte werte, und nicht einen string, der ein paar kommata enthält, afaik.

    Wie kann ich das Gleiche mit einem String schaffen?
    regexp ^^

    schreib den dump wieder in die db, und hol dir dann die felder ...
    Die Zeit hat ihre Kinder längst gefressen

    Kommentar


    • #3
      Re: Re: SQl-String parsen

      Original geschrieben von derHund
      kenn ich nit, diese funktion!
      Ich meine func_get_args und func_num_args. Das das nicht geht, ist mir ja klar - ich habe das nur als Beispiel gebraucht, damit klar wird, was ich möchte.
      schreib den dump wieder in die db, und hol dir dann die felder ...
      Haha, das will ich ja. Dazu muss ich aber wissen wo in einer.sql- Datei ein SQl-Befehl anfängt und wo er aufhört.
      Ich lese das File zeilenweise aus und muss nun ermitetln, ob der SQL-Befehl abgeschlossen ist, oder ob die nächste Zeile der Datei auch noch dazugehört.
      Dazu wird bei der Create-Anweisung gezählt, wieviele Datenfelder es gibt und nun will ich im String zählen, ob diese Anzahl erreicht ist oder ob ich die nächste Zeile noch mit hinzunehmen muss.
      Und da dachte ich nun an reguläre Ausdrücke - allerdings ist mir leider nicht klar, wie ich da die folgenden Bedingungen unterbringen kann.

      Aus dem String ("text",1,CONCAT("12","test 1,2,3")," Hallo, \"Gerhard\"\'. ");
      müssen die Einzelwerte:

      text1
      1
      CONCAT("12","test 1,2,3")
      Hallo, \"Gerhard\"\'.

      ermittelt werden. Und da stehe ich im Moment auf dem Schlauch.

      Kommentar

      Lädt...
      X