Zum Inhalt springen

sql abfrage fehler


stigi

Empfohlene Beiträge

hoi ich hab folgende abfrage

UPDATE REGEL20, TEXTE SET REGEL20.PA_INFO = '%s'WHERE ((StrComp(REGEL20.PA_INFO,TEXTE.TEX_AUSGABE,0)<>0 And REGEL20.PA_INFO_TEXTNR=TEXTE.TEX_NUMMER And TEXTE.TEX_SPRACHE='deu'));" %(string3))

leider is die so noch nicht ganz komplett

da fehlt noch eine AND anweisung und das sollte meines erachtens dann so aussehen:

UPDATE REGEL20, TEXTE SET REGEL20.PA_INFO = '%s'WHERE ((StrComp(REGEL20.PA_INFO,TEXTE.TEX_AUSGABE,0)<>0 And REGEL20.PA_INFO_TEXTNR=TEXTE.TEX_NUMMER And TEXTE.TEX_SPRACHE='deu') AND '%s' NOT LIKE '%temp%');" %(string3,string3))

leider bekomm ich dann diesen fehler:

Bad format specifier at Position 190 (%temp%');)

was is daran jetzt falsch ?

Link zu diesem Kommentar
Auf anderen Seiten teilen

ich dachte mit dem LIKE und '%irgendwas%' kann ich die wörter bekommen die *irgendwas* drin stehen haben ?! also die % als platzhalter ?!

Der Platzhalter '%' steht im Standard-SQL meines Wissens für genau 1 Zeichen. Der Platzhalter '*' kann für mehr als 1 Zeichen verwendet werden. Falls jemand andere Infos darüber hat, lass ich mich gerne belehren.

Grüße von ipu

Link zu diesem Kommentar
Auf anderen Seiten teilen

ja %s steht für einen statischen string der hinten dran auch angehängt ist %(string3) falls du das gesehen hast und mit %temp% will ich diesen string auf die zeichenfolge *temp* untersuchen. and was meinst du mit "was willst du mit dem AND bezwecken" ?

edit: habs schon hinbekommen - wenn auch über 2 ecken, aber funktioniert

Link zu diesem Kommentar
Auf anderen Seiten teilen

leider bekomm ich dann diesen fehler:

Bad format specifier at Position 190 (%temp%');)

was is daran jetzt falsch ?

Du benutzt zum Einfügen der Strings eine Formatfunktion. Mit dieser Formatfunktion weren Platzhalter in deinem String ersetzt. Diese Platzhalter sind im Formatstring mit %x angegeben (wobei x für einen "format specifier" steht).

Die Formatfunktion kennt einige dieser Specifier (z.B. %s für Strings), was sie aber nicht kennt ist ein "format specifier" %temp oder % ohne was. Das sagt dir diese Fehlermeldung.

% kann man als Literal angeben, wenn man %% schreibt AFAIK, oder probier es mal, indem du %temp% auch per Format übergibst. Also so ung:


... AND '%s' NOT LIKE '%s');" %(string3,string3,%temp%))

EDIT:

Ist somit eigentlich kein SQL-Fehler und hat bei Datenbanken nichts zu suchen :D

Link zu diesem Kommentar
Auf anderen Seiten teilen

ja %s steht für einen statischen string der hinten dran auch angehängt ist %(string3) falls du das gesehen hast und mit %temp% will ich diesen string auf die zeichenfolge *temp* untersuchen. and was meinst du mit "was willst du mit dem AND bezwecken" ?

Sorry, mein Fehler. Ich hatte das %(string3)... zwar gesehen, aber für mich war die Anweisung nach dem ; fertig. :rolleyes: Ich kannte das in der Form nicht aus SQL-Anweisungen

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...