djoka_l Beograd
Član broj: 56075 Poruke: 3570
Jabber: djoka_l
|
Pa, moraćeš sama da napišeš funkciju.
TRANSLATE radi skoro to što ti treba, ali ne može da uradi prebacivanje ćiriličnih slova lj, nj i dž u latinična (zato što ne ume da prebaci jedno slovo u dva slova).
Recimo:
SELECT TRANSLATE('ABBA', 'AB', '12) FROM DUAL
daće rezultat
1221
Smisao ovo komande je da se od ulaznog stringa (ABBA) svaka pojava slova A zameni znakom 1, a svaka pojava slova B zameni znakom 2.
Dakle, treba da zameniš ćirilična slova latiničnim, uz problem koji moraš drugačije da rešiš sa slovima koje se moraju pretvoriti u dva slova u latiničnom tekstu).
Slova koja nisu spomenuta u onom nizu 'AB' neće se zameniti nego će se prepisati. Ako je zamenski niz kraći od niza slova koja menjaš, onda će se ona slova koja nemaju svoj par u zamenskom nizu izbaciti iz teksta. Tako,
TRANSLATE('ACA','AB','12') daje 1C1 (slovo C je prepisano jer nije dato pravilo da se ono menja, dok
TRANSLATE('ACA','ABC','12') daje 11 (slovo A je zamenjeno sa 1, a C nema definisano pravilo zamene, a navedeno je u listi slova koja se menjaju).
REPLACE radi zamenu jednog stringa drugim stringom, na primer;
REPLACE('1ubica', '1', 'Lj') daje rezultat Ljubica
Pa sad, kombinacijom TRANSLATE i REPLACE napravi funkciju za konverziju.
|