Zum Inhalt springen

[PLSQL] - Bestimmte Zeichen in einem Datensatz ersetzen?!


iceQ7

Empfohlene Beiträge

Hallo zusammen,

zuerst möchte ich nur erwähnen, dass ich völliger Neueinsteiger in Sachen PL/SQL bin und mich gerade mit einfachen SQL-Statements befasse und daher nur beschränkt auskenne.

Folgendes Problem:

Wir haben im Unternehmen zwei Oracle-Datenbanken, einmal eine Test-Datenbank (TEST) und eine Produktiv-Datenbank (PROD). In gewissen Zeitabständen wird die PROD-Db auf die TEST-Db kopiert.

Alles schön und gut soweit, jedoch haben wir einige Einträge in Tabellen, welche massiv Ärger machen. Dazu wurde ich beauftragt, das per "Update"-Funktion zu beheben.

Generell habe ich keinerlei Probleme mit simplen Update-Befehlen, jedoch ist das für mich nun ein wenig kniffliger.

Beispiel:

E-MailLink

------------------

abc=PRODdef

ghi=PRODjkl

mno=PRODpqr

stu=PRODvwx

Wie bereits erkannt, ist in den Datensätzen der Spalte "E-MailLink" die Zeichenfolge PROD integriert. Das führt auf unserem TEST-System zu massiven Problemen.

Wie muss jetzt der Update-Befehl (ich schätze Replace wird hierfür benötigt?) lauten, um NUR PROD durch TEST zu ersetzen?

Beispiel:

E-MailLink

------------------

abc=TESTdef

ghi=TESTjkl

mno=TESTpqr

stu=TESTvwx

Um jede hilfreiche Antwort wäre ich sehr dankbar! :)

Freundliche Grüße

iceQ7

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 Wochen später...

Erst einmal vielen Dank an dr.dimitri für die schnelle Hilfe!

Ich kann hier nur mit PL/SQL arbeiten, da wir keine anderen Werkzeuge zur Verfügung haben...

Neues Problem für mich:

Wir haben dämlicherweise jede Menge Dubletten in einer bestimmten Tabelle.

Nun sollen aber alle Dubletten dieser Tabelle bis auf einen Datensatz gelöscht werden.

Beispiel:


noteslink    |  lastname

------------------------

abc=PRODdef  |	meier

abc=PRODdef  |	meier

abc=PRODdef  |  meier

abc=PRODdef  |	meier

abc=PRODdef  |	meier

Es ist völlig egal, welcher der 5 Datensätze übrig bleibt, hauptsache einer. Kann man sozusagen eine Spalte mit fortlaufenden Zahlen "temporär" hinzufügen? Somit wärs einfacher Datensätze zu löschen...

Hat sonst einer eine brauchbare Idee oder ein brauchbares SQL-Statement für mich?

Vielen Dank

Grüße

iceQ7

Link zu diesem Kommentar
Auf anderen Seiten teilen

....

Wir haben dämlicherweise jede Menge Dubletten in einer bestimmten Tabelle.

Nun sollen aber alle Dubletten dieser Tabelle bis auf einen Datensatz gelöscht werden.

...

Hallo,

Doppelte Datesätze kannst du mit folgender Methode selektieren (Das Attribut "Name" soll hier geprüft werden) :



SELECT name

  FROM Test a

 WHERE ROWID <> (SELECT MAX (ROWID)

                   FROM Test b

                  WHERE b.name = a.name);


Das Löschen sollte anschliessend kein Problem darstellen...

Grüsse

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...