Tabelle aus SQL-Statement filtern

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von commander, 08.06.2009.

  1. #1 commander, 08.06.2009
    commander

    commander Grünschnabel

    Dabei seit:
    08.06.2009
    Beiträge:
    6
    Zustimmungen:
    0
    hallo zusammen
    ich möchte aus einem übergebenen sql-statement (parameter eines shell scripts) die angegebene tabelle herausfiltern, da ich diese für einen weiteren befehlabsatz benötige.

    der sql-befehl kann unterschiedlich aufgebaut sein:
    - Select a from b
    - Select * from c
    - Select * from y where ...

    So kenne ich nur die Position der Tabelle nach "from ". Wie schneide ich den ersten Teil weg? Nach dem ich diesen entfernt hätte, könnte ich mit sed
    echo $sql | sed -e "s/tab.*//g" > tab
    den hinteren teil wegschneiden.
    Hat jemand eine idee?
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 bytepool, 08.06.2009
    bytepool

    bytepool Code Monkey

    Dabei seit:
    12.07.2003
    Beiträge:
    791
    Zustimmungen:
    0
    Ort:
    /home/sweden/göteborg
    Hi,

    Code:
    echo ${sql#*from}
    
    sollte den Trick eigentlich tun.

    mfg,
    bytepool
     
  4. #3 commander, 08.06.2009
    Zuletzt bearbeitet: 08.06.2009
    commander

    commander Grünschnabel

    Dabei seit:
    08.06.2009
    Beiträge:
    6
    Zustimmungen:
    0
    ja, klappt. problem gelöst.
    besten dank dafür bytepool!
    .
    .
    .
    EDIT (autom. Beitragszusammenführung) :
    .

    habe noch eine weitere frage:
    ich möchte ein apostroph ' durch ein \' in einem befehl (variable) ersetzen.
    dies wird wieder für eine weitere befehlsabsetzung benötigt.
    hat jemand eine idee?
     
  5. #4 bytepool, 08.06.2009
    bytepool

    bytepool Code Monkey

    Dabei seit:
    12.07.2003
    Beiträge:
    791
    Zustimmungen:
    0
    Ort:
    /home/sweden/göteborg
    Hi,

    so in etwa?

    Code:
    $ sql="select 'foo' from 'bar';"
    $ echo $sql | sed "s$'$\\\'$"g
    select \'foo\' from \'bar\';
    
    mfg,
    bytepool
     
  6. #5 commander, 08.06.2009
    commander

    commander Grünschnabel

    Dabei seit:
    08.06.2009
    Beiträge:
    6
    Zustimmungen:
    0
    genau, super sache!
    danke dir nochmals!
     
  7. #6 bytepool, 08.06.2009
    bytepool

    bytepool Code Monkey

    Dabei seit:
    12.07.2003
    Beiträge:
    791
    Zustimmungen:
    0
    Ort:
    /home/sweden/göteborg
    Gern geschehen. :)
     
  8. #7 commander, 09.06.2009
    commander

    commander Grünschnabel

    Dabei seit:
    08.06.2009
    Beiträge:
    6
    Zustimmungen:
    0
    ich habe nochmals eine frage betreffend eines sql-statements.
    bin an einem prog dran, das von einem rechner aus ein shell skript mit parameter aufruft, den befehl via ssh übermittelt und auf einem weiteren rechner ausführt und das ergebnis zurückliefert.

    prog "pc" "'Select * from test' -d database" -> funktioniert soweit

    prog "pc" "'Select * from test Where name="pc1"' -d database"

    wenn ich hingegen eine where-bedinung aufführe, dessen vergleich anführungszeichen benötigt (="pc1") funktioniert das prog nicht mehr.
    aus den debug-informationen sehe ich, dass die einzelnen wörter bei der übermittlung folgendermassen auseinander genommen werden:
    "Select"
    "*"
    ...
    "name=pc1"

    dadurch kann die sql-abfrage nicht ausgeführt werden, weil die "" nicht mehr stehen.

    hat jemand von euch eine idee wie ich die "" trotzdem beibehalten kann?
    ( \" und \" funkt. nicht)
     
  9. #8 SkydiverBS, 09.06.2009
    SkydiverBS

    SkydiverBS Tripel-As

    Dabei seit:
    15.01.2005
    Beiträge:
    207
    Zustimmungen:
    0
    Ort:
    Freising
    Servus!

    Hast du es mal mit einfachen Anführungszeichen (') versucht?

    Gruß,
    Philip
     
  10. #9 commander, 09.06.2009
    commander

    commander Grünschnabel

    Dabei seit:
    08.06.2009
    Beiträge:
    6
    Zustimmungen:
    0
    danke für die antwort SkydiverBS.
    ja, habe ich bereits. das problem: so meldet das sql-statement einen fehler, auch wenn ich die abfrage lokal ausführe.
     
  11. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  12. #10 bytepool, 10.06.2009
    bytepool

    bytepool Code Monkey

    Dabei seit:
    12.07.2003
    Beiträge:
    791
    Zustimmungen:
    0
    Ort:
    /home/sweden/göteborg
    Hi,

    ich denke dass du in diesem Fall etwas konkreter werden musst, und mal mit ein wenig Beispielcode rausruecken musst. Auch deine Beschreibung ist extrem abstrakt, so ist das eher ein Raetselraten. ;)
    Ich denke insbesondere das ssh statement waere wichtig, aber auch ein wenig Kontext kann nicht schaden.

    mfg,
    bytepool
     
  13. #11 commander, 11.06.2009
    commander

    commander Grünschnabel

    Dabei seit:
    08.06.2009
    Beiträge:
    6
    Zustimmungen:
    0
    ok, stimmt. trotzdem danke.
    anderer ansatz:
    auf dem zweiten server läuft eine sqlite datenbank.
    über ssh erstelle ich eine verbindung und möchte anschliessend infos aus der db abfragen.

    soweit so gut.
    - rufe sqlite auf
    - attache die db
    - mache eine select-abfrage #-> infos werden ausgegeben

    eine automatisation besteht darin, den attach- und select- in eine db zu schreiben und diese sqlite zu übergeben.
    prompt> sqlite <dbinfo #-> infos werden ausgegeben

    nun frage ich mich, ob die möglichkeit besteht die infos mittels einer befehlszeile zu erhalten.
    prombt> sqlite , .databases #-> funkt, main wird angezeigt.
    prompt> sqlite , ".echo on" , .databases # -> funkt. nicht mehr

    wünschenswerter befehl:
    prompt> slite , "attach db" "select * from tab" #-> funkt natürlich auch nicht

    hat jemand eine idee/lösung?
     
Thema:

Tabelle aus SQL-Statement filtern

Die Seite wird geladen...

Tabelle aus SQL-Statement filtern - Ähnliche Themen

  1. Mit bash Skript bestimmte Werte aus Tabelle lesen

    Mit bash Skript bestimmte Werte aus Tabelle lesen: Hallo! Ich beschäftige mich erst seit Kurzem mit bash und bin deshalb noch nicht so fit darin. Und nun habe ich schon ein kleines Problem und...
  2. Artikel: Diagramme in Linux - Vier Tabellenkalkulationen im Vergleich

    Artikel: Diagramme in Linux - Vier Tabellenkalkulationen im Vergleich: Tabellenkalkulationen sind aus der Arbeitswelt kaum noch wegzudenken. Eine ihrer Stärken ist die schnelle Visualisierung tabellarischer Daten in...
  3. Unix-Filetabelle

    Unix-Filetabelle: Hallo, ich verstehe das noch nicht so ganz wie das in Unix so abläuft mit der Open file Table, System File Table und Inode Table. Im Inode...
  4. Tabelle erst ab bestimmter Spalte anzeigen

    Tabelle erst ab bestimmter Spalte anzeigen: Hallo, ich habe eine Datei, in der eine Tabelle enthalten ist. Die einzelnen Spalten sind durch Leerzeichen getrennt. Per grep habe ich schon...
  5. Einzelne Spalte aus MySQL Tabelle exportieren

    Einzelne Spalte aus MySQL Tabelle exportieren: Hallo. Ich möchte gern eine einzelne Spalte (Email) aus einer bestehenden MySQL Datenbank Tabelle (Profiles) exportieren. Ich habe die...