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.
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
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?
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.
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
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?
Amstelchen Geschrieben 10. Mai 2007 Geschrieben 10. Mai 2007 verwende entweder ''' (also drei single quotes) oder arbeite mit ESCAPE. s'Amstel
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
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...
m4niac Geschrieben 10. Mai 2007 Autor Geschrieben 10. Mai 2007 habs mit den drei single quotes gelöst. Vielen Dank euch!
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden