Sunteți pe pagina 1din 4

Lecia 2(oracle) Funcii asupra irurilor de caractere irurile de caractere pot conine orice combinaie de litere, numere, spaii,

i alte simboluri, precum semne de punctuaie, sau caractere speciale. n Oracle exist dou tipuri de date pentru memorarea irurilor de caractere: - CHAR pentru memorarea irurilor de caractere de lungime fix - VARCHAR2 pentru memorarea irurilor de caractere avnd lungime variabil. LOWER(sir) convertete caracterele alfanumerice din ir n litere mari. UPPER(sir) convertete caracterele alfanumerice din ir n litere mici. INITCAP(sir) convertete la ma!uscul prima liter din fiecare cuvnt al irului. "uvintele sunt iruri de litere separate prin orice caracter diferit de liter. #iterele din interiorul cuvntului care erau scrise cu ma!uscule vor fi transformate n litere mici. Exemplu Rezultatul afiat SELECT LOWER('abc123ABC') abc123abc FROM UAL! SELECT UPPER('abc123ABC') ABC123ABC FROM UAL! SELECT INITCAP('aBc "#$%&'i') Abc #$%*'i FROM "(a)! Explicaie irul conine 3 cuvinte aBc "#$ i &'i CONCAT(sir1+ sir2) concatenea$ dou iruri de caractere Exemplu Rezultatul afiat SELECT CONCAT('abc'+'"#$') abc"#$ FROM "(a)! Explicaie comanda poate fi transcris folosind operatorul de concatenare astfel: SELECT 'abc',,'"#$' FROM "(a)!

SUBSTR(sir+-./+0r) extrage din sir cel mult 0r caractere ncepnd din po$iia -./. Observaii - dac din po$iia -./ pn la sfritul irului sunt mai puin de 0r caractere, se vor extrage toate caracterele de la po$iia -./ pn la sfritul irului. - parametrul -./ poate fi i o valoare negativ, ceea ce nseamn c po$iia de unde se va ncepe extragerea caracterelor din ir se va determina numrnd caracterele din ir de la dreapta spre stnga %ve$i ultimele & exemple de mai !os' - dac 0r nu este specificat, se va returna subirul ncepnd cu caracterul de pe po$iia -./ din ir pn la sfritul irului. Exemplu Rezultatul afiat s#)#c1 s(bs1r('abc"#$'+3+2) c" $r.2 "(a) s#)#c1 s(bs1r('abc"#$'+3+3) c"#$ $r.2 "(a) Explicaie. "(iar dac din po$iia & pn la sfritul irului nu mai sunt ) caractere se returnea$ caracterele rmase

Exemplu s#)#c1 s(bs1r('abc"#$'+3) $r.2 "(a) s#)#c1 s(bs1r('abc"#$'+3+3) $r.2 "(a) s#)#c1 s(bs1r('abc"#$'+5 6+2) $r.2 "(a) s#)#c1 s(bs1r('abc"#$'+5 6+3) $r.2 "(a) s#)#c1 s(bs1r('abc"#$'+5 17+4) $r.2 "(a)

Rezultatul afiat c"#$ Explicaie. *celai re$ultat ca mai sus dac nu se specific numrul de caractere ce se extrag nu se va afia nimic deoarece nu exist po$iia 3 n ir, acesta avnd doar 4 caractere. c" Explicaie. +e extrag dou caractere ncepnd cu al patrulea caracter din dreapta. c"#$ nu se va afia nimic deoarece irul conine mai puin de ,caractere

INSTR(sir+s(bsir+-./+8) returnea$ po$iia de nceput a celei de a 8.a apariii a subirului s(bsir n irul sir, cutarea fcndu.se ncepnd cu po$iia -./ . /ac parametrii -./ i 8 lipsesc, atunci se va returna po$iia primei apariii a subirului s(bsir n ntregul ir sir. 0o$iia de unde ncepe cutarea poate fi preci$at i relativ la sfritul irului, ca i n ca$ul funciei s(bs1r, dac parametrul -./ are o valoare negativ.

Exemplu s#)#c1 i0s1r('abc"abc"abc'+'c"') $r.2 "(a) s#)#c1 i0s1r('abc"'+'#$') $r.2 "(a) s#)#c1 i0s1r('abc"'+'bc#') $r.2 "(a) s#)#c1 i0s1r('ababababababab'+'ab'+6 +2) $r.2 "(a) s#)#c1 i0s1r('abababababab'+'ab'+5 6+1) $r.2 "(a)

Rezultatul afiat 3 7 7 3 Explicaie. +e ncepe cutarea din po$iia a patra, adic n $ona subliniat cu o linie, i se afiea$ po$iia de start a celei de a doua apariii, %subirul subliniat cu linie dubl' 9

LEN*TH(sir) returnea$ numrul de caractere din irul sir. Exemplu Rezultatul afiat s#)#c1 )#0&1'('abc"') 6 $r.2 "(a) LPA (sir1+0r+sir2) completea$ irul sir1 la stnga cu caracterele din irul sir2 pn ce irul obinut va avea lungimea 0r.

/ac lungimea irului sir1 este mai mare dect 0r, atunci funcia va reali$a trunc(ierea irului sir1, tergndu.se caracterele de la sfritul irului. Exemplu Rezultatul afiat s#)#c1 )-a"('abc"'+3+'%') abc $r.2 "(a) s#)#c1 )-a"('abc"'+17+'%:') %:%:%:abc" $r.2 "(a) s#)#c1 )-a"('abc'+17+'%:') %:%:%:%abc $r.2 "(a) s#)#c1 )-a"('abc'+4+';</=') ;<abc $r.2 "(a) RPA (sir+0r+s(bsir) similar cu funcia LPA , completarea fcndu.se la dreapta. Exemplu Rezultatul afiat s#)#c1 r-a"('abc"'+3+'%') abc $r.2 "(a) s#)#c1 r-a"('abc"'+17+'%:') abc"%:%:%: $r.2 "(a) s#)#c1 r-a"('abc'+17+'%:') abc%:%:%:% $r.2 "(a) s#)#c1 r-a"('abc'+4+';</=') abc;< $r.2 "(a)

TRIM(LEA IN* c' FROM sir) TRIM(TRAILIN* c' FROM sir) TRIM(BOTH c' FROM sir) TRIM(sir) TRIM(c' FROM sir) funcia TRIM terge caracterele c' de la nceputul, sfritul sau din ambele pri ale irului sir. - n ultimele dou formate ale funciei este sub neleas opiunea BOTH. - dac c' nu este specificat se vor elimina spaiile inutile de la nceputul, sfritul sau din ambele pri ale irului sir. Exemplu Rezultatul afiat s#)#c1 ;a;aa 1ri2()#a"i0& 'a' $r.2 'aa;a;aa') $r.2 "(a) s#)#c1 aa;a; 1ri2(1rai)i0& 'a' $r.2 'aa;a;aa') $r.2 "(a) s#)#c1 ;a; 1ri2(b.1' 'a' $r.2 'aa;a;aa') $r.2 "(a) s#)#c1 ;a; 1ri2('a' $r.2 'aa;a;aa')

$r.2 "(a) s#)#c1 '%',,1ri2(' '),,'%' $r.2 "(a)

abc

%abc%

REPLACE(sir+s(bsir+sir0.() . nlocuiete toate apariiile subirului s(bsir din irul sir cu irul sir0.(. /ac nu este specificat noul ir, toate apariiile subirului s(bsir se vor elimina. Exemplu Rezultatul afiat s#)#c1 ;<raca";<ra r#-)ac#('abraca"abra'+'ab'+';< ') $r.2 "(a) s#)#c1 ;</raca";</ra r#-)ac#('abraca"abra'+'ab'+';< /') $r.2 "(a) s#)#c1 brc"br r#-)ac#('abraca"abra'+'a') $r.2 "(a)