Discussione:
Sostituire stringa di testo senza la funzione "replace"
(troppo vecchio per rispondere)
David
2005-06-08 08:01:18 UTC
Permalink
Ciao a tutti,
ho un AS400 170 V4R3, e devo fare un'istruzione UPDATE che sostituisca
una stringa con un'altra. Il problema è che non esiste la funzione
"replace" in questa versione del db2, e non saprei come fare.
Qualcuno di voi ha già affrontato e risolto il problema?

Grazie mille
--
David
Marco Colombo
2005-06-08 08:32:55 UTC
Permalink
Utilizza il codice operativo XLATE

Fattore 1 Operaz. Fattore 2 Risultato
'A':'B' XLATE C D

In questo modo sostituisci il carattere "A" contenuto nel campo C con
il carattere "B" muovendo il risultato nel campoi D.
David
2005-06-08 12:39:17 UTC
Permalink
Post by Marco Colombo
Utilizza il codice operativo XLATE
Fattore 1 Operaz. Fattore 2 Risultato
'A':'B' XLATE C D
In questo modo sostituisci il carattere "A" contenuto nel campo C con
il carattere "B" muovendo il risultato nel campoi D.
Ciao Marco,
non avevo specificato che devo fare il tutto utilizzando solo istruzioni
sql... Comunque ho combinato con l'istruzione seguente:

UPDATE Libreria/File
SET Campo = CONCAT(
CONCAT(SUBSTRING(Campo, 1, POSSTR(Campo, 'StringaCercata') - 1),
'StringaNuova'),
SUBSTRING(Campo, POSSTR(Campo, StringaCercata') + 2,
13 - (POSSTR(Campo, 'StringaCercata') + 2)))
WHERE CondizioneDiFiltro

Presupposti:
- "Campo" ha lunghezza fissa 13 caratteri
- "StringaCercata" ha lunghezza fissa 2 caratteri
--
David
Loading...