m4niac Geschrieben 9. Mai 2007 Geschrieben 9. Mai 2007 Hallo, habe in einer Oracle Tabelle eine Spalte namens "Text", in der sich SQL-Befehle befinden. Wie kann ich nun per SQL diese Abfragen in der Spalte abändern? Bsp.(Abfrage momentan): WHERE (modell like 'Modell1' or modell like 'Modell2') und ich will da noch ein "or modell like 'Modell3' anhängen. Wie mach ich das? Mit UPDATE bekomm ichs nicht hin Hoffe ich habs einigermaßen verständlich erklärt. Zitieren
ipu Geschrieben 10. Mai 2007 Geschrieben 10. Mai 2007 hi, etwa so: update [tabelle] set text=text || '[weiterere sql-befehle]' where text=[bedingung]; mit dem verkettungsoperator || bleibt der ursprüngliche wert in dem feld erhalten und der rest wird angefügt. grüße von ipu Zitieren
m4niac Geschrieben 10. Mai 2007 Autor Geschrieben 10. Mai 2007 Danke! das ist das was ich suche. Jetzt gibt es noch ein Problem. Der Text ist nach dem oben von mir angegebenen Auszug noch nicht am Ende. Also ich kann den neuen Text nicht einfach hinten anhängen sondern muss ihn dazwischen einfügen. Kann ich mit der SET Text Sache auch an eine bestimmte Stelle angeben wo es hin soll? Zitieren
m4niac Geschrieben 10. Mai 2007 Autor Geschrieben 10. Mai 2007 Also die Struktur der Abfrage im Feld "Text" ist: SELECT.....FROM....WHERE (modell like 'Modell1' or modell like 'Modell2') AND Status = .....AND.... und ich will eben noch ein "or modell like 'Modell3'" anhängen. Zitieren
Amstelchen Geschrieben 10. Mai 2007 Geschrieben 10. Mai 2007 du musst in dem fall mit stringfunktionen (z.b. CONCAT, SUBSTR, INSTR) arbeiten. Oracle String Functions s'Amstel Zitieren
m4niac Geschrieben 10. Mai 2007 Autor Geschrieben 10. Mai 2007 ja danke. habs im Moment so gelöst: SET TEXT = SUBSTR(TEXT, 1, 263) || "or modell like 'Modell3')" Doch da krieg ich komischerweise nen Fehler "Ungültiger Spaltenname" mit Hinweis auf das "or". Anscheinend erkennt der den String als SQL-Syntax und meckert deshalb rum. Oder hab ich sonst noch nen Syntaxfehler drin? Zitieren
Amstelchen Geschrieben 10. Mai 2007 Geschrieben 10. Mai 2007 verwende entweder ''' (also drei single quotes) oder arbeite mit ESCAPE. s'Amstel Zitieren
hdmonty Geschrieben 10. Mai 2007 Geschrieben 10. Mai 2007 update tabellexyz set spaltea = concat(SUBSTR(spaltea, 1, 10) , ' und noch m''e''hr' ) where ... das geht auf jeden fall !! ich habe es getestet auf einer mysql-DB Zitieren
m4niac Geschrieben 10. Mai 2007 Autor Geschrieben 10. Mai 2007 habs hinbekommen, musste den String noch weiter zerlegen und da in dem Text Zeichen wie ' vorkommen muss man da bissel aufpassen... Zitieren
m4niac Geschrieben 10. Mai 2007 Autor Geschrieben 10. Mai 2007 habs mit den drei single quotes gelöst. Vielen Dank euch! Zitieren
Empfohlene Beiträge
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.