Kada radite sa bazama podataka, uobičajen zadatak je manipulacija i analiza podataka kako bi se stekli korisni uvidi. Često to uključuje rad sa nizovima, posebno njihovo cijepanje na osnovu određenih graničnika. U Oracle SQL-u postoje različiti načini da se to postigne kroz različite funkcije i proceduralne kodove. U ovom članku ćemo pokriti sveobuhvatno rješenje za podjelu niza pomoću Oracle SQL-a. Razgovarat ćemo o konceptu, rješenju i rastaviti kod korak po korak radi boljeg razumijevanja.
Razdvajanje stringova u Oracle SQL-u
U Oracle SQL-u, podjela stringova se može izvršiti ili korištenjem PL/SQL jezika ili putem SQL upita učitanih ugrađenim funkcijama ili posebnim operatorima. Ali najčešće korištena metoda je korištenje inherentnih funkcionalnosti REGEXP_SUBSTR funkcija, što je skraćenica za podnizove regularnog izraza. Pruža intuitivan i efikasan način rada sa žicama. Pored toga, takođe omogućava upotrebu regularnih izraza za specificiranje specifičnijih obrazaca koje treba tražiti u stringovima.
Rješenje: korištenje funkcije REGEXP_SUBSTR
IZJAVITE
str VARCHAR2(100):= 'Oracle,SQL,String,Split';
reslt VARCHAR2(100);
BEGIN
ZA i IN 1..LENGTH(str)-DUŽINA(ZAMJENA(str,',',”))+1
LOOP
reslt := REGEXP_SUBSTR(str, '[^,]+', 1, i);
dbms_output.put_line(reslt);
END LOOP;
END;
Objašnjenje koda
Prvo, deklariramo dvije varijable: jednu za držanje ulaznog niza i drugu za hvatanje svakog podijeljenog segmenta niza. Nakon toga, počinje petlja koja se ponavlja kroz svaki dio niza. Ideja je da se string podeli na svakom zarezu i zatim odštampa svaki segment.
REGEXP_SUBSTR se poziva unutar petlje kako bi odgovarao uzorku u svakom segmentu, počevši od prve pozicije svakog segmenta i podudarajući se s jednom pojavom u isto vrijeme. Konkretno, '[^,]+' je regularni izraz koji odgovara jednom ili više pojavljivanja bilo kojeg znaka osim zareza. Svaki podudarni segment se zatim ispisuje pomoću dbms_output.put_line komandu.
Druge korisne string funkcije u Oracle SQL-u
Dodatno REGEXP_SUBSTR, Oracle SQL nudi nekoliko drugih moćnih funkcija za manipulaciju stringovima:
- SUBSTR: Vraća dio niza, počevši od određene pozicije.
- ZAMJENA: Zamjenjuje sva pojavljivanja navedenog niza.
- PREVEDI: Prevodi pojedinačne znakove u nizu u druge znakove.
- INSTR: Vraća lokaciju podniza u nizu.
Ovladavanje ovim funkcijama može uvelike povećati vašu efikasnost kada se bavite string operacijama u Oracle SQL-u. Oni ne samo da pružaju jednostavna rješenja već vam također omogućavaju da iskoristite inherentne mogućnosti Oracle SQL jezika za manipulaciju i analizu podataka.
