m4niac Geschrieben 9. Mai 2007 Teilen 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 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
ipu Geschrieben 10. Mai 2007 Teilen 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 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
m4niac Geschrieben 10. Mai 2007 Autor Teilen 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 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
m4niac Geschrieben 10. Mai 2007 Autor Teilen 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 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Amstelchen Geschrieben 10. Mai 2007 Teilen Geschrieben 10. Mai 2007 du musst in dem fall mit stringfunktionen (z.b. CONCAT, SUBSTR, INSTR) arbeiten. Oracle String Functions s'Amstel Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
m4niac Geschrieben 10. Mai 2007 Autor Teilen 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 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
hdmonty Geschrieben 10. Mai 2007 Teilen Geschrieben 10. Mai 2007 Nimm mal statt " --> ' Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
m4niac Geschrieben 10. Mai 2007 Autor Teilen Geschrieben 10. Mai 2007 nützt leider auch nix Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Amstelchen Geschrieben 10. Mai 2007 Teilen Geschrieben 10. Mai 2007 verwende entweder ''' (also drei single quotes) oder arbeite mit ESCAPE. s'Amstel Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
hdmonty Geschrieben 10. Mai 2007 Teilen 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 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
m4niac Geschrieben 10. Mai 2007 Autor Teilen 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 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
m4niac Geschrieben 10. Mai 2007 Autor Teilen Geschrieben 10. Mai 2007 habs mit den drei single quotes gelöst. Vielen Dank euch! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
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.