SQL-Parser im Eigenbau ...

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

  • SQL-Parser im Eigenbau ...

    Hi Leute,

    ich stehe vor folgendem Problem:

    Ich habe eine ziemlich große Liste von SQL-Statements. Hier soll analysiert werden, auf welche Tabellen, Felder, etc. am häufigsten zugegriffen wird.
    Nun benötige ich einen Parser, der mir aus den Statements diese Infos extrahiert ohne, dass ich jeden String manuell anschauen muss.

    Nun hab ich zwei Möglichkeiten:

    1. Es gibt schon ein solches Tool. Ich habe bei meiner Internetrecherche nur Tools gefunden, die mir einen String überprüfen oder "pretty printen". Ich bräuchte jedoch am besten einen Output, in dem mir die Datenbankobjekt tabellarisch, als XML oder sonstwie dargestellt werden um das analysieren zu können. Kennt jemand zufällig sowas?

    2. Ich bau mir sowas selbst. Da wäre es nett, wenn schon ein Algorithmus oder eine RegExp existiert, und ich mir das nicht selbst zusammenbasteln muss. Gibt es zufällig schon sowas?
    [color=red]Geht nicht[/color] ist keine Fehlermeldung

  • #2
    1. Ich kenne nichts fertiges. Aber wenn ich nach "SQL Parser" oder "php SQL Parser" googel, sind einige Treffer doch sehr vielversprechend.

    2. Du wirst dich ja auf einen bestimmten SQL-Dialekt beschränken. Solltest du zumindest, denn der SQL-Standard ist riesig! Wenn dein Dialekt zufällig MySQL ist, dann kannst du dir im Manual die Pseudo-BNF zusammensuchen. Vielleicht findest du sie auch fertig im Netz. Wie auch immer, aus der (E)BNF kannst du dir von flex und bison einen Parser und Tokenizer konstruieren lassen. Oder du schreibst ihn selbst - geht wahrscheinlich schneller, als flex/bison zu verstehen.

    Kommentar


    • #3
      Ja ... diese viel versprechenden Links von Google habe ich mir alle (nach bestem Wissen und Gewissen) angeschaut, aber leider haben sie mir alle nicht wietergeholfen.

      Jedenfalls danke für Tipp mit der BNF. Ich habe mir jetzt mal auch die BNF von SQL92 gezogen und schaue mal, ob ich damit relativ flott schnell einen Parser zum laufen bekomme.
      Zuletzt geändert von Big Chief; 02.02.2006, 15:51.
      [color=red]Geht nicht[/color] ist keine Fehlermeldung

      Kommentar

      Lädt...
      X