Programiranje

Oracle CHR funkcija

Ena izmed predstavitev, ki sem jo užival na Rocky Mountain Oracle Users Group (RMOUG) Training Days 2010, je bila predstavitev Stephena Jacksona "Uporaba SQL za generiranje SQL-a." Uporabil sem nekaj tehnik, o katerih je razpravljal v svoji predstavitvi, da bi SQL ustvaril SQL, toda nekaj, česar si nisem mislil, je uporaba funkcije CHR, da bi bili skripti bolj berljivi. Čeprav se ta objava osredotoča na uporabo Oraclove izvedbe funkcije nizov CHR, druge baze podatkov podpirajo tudi funkcijo CHR (ali CHAR).

Primer koristnosti CHR je ustvarjanje rezultatov, ki vključujejo znake, ki so pomembni v sami poizvedbi. Primerna uporaba CHR omogoča razvijalcu SQL, da se izogne ​​potrebi pobega teh znakov s pomembnostjo skladnje poizvedbe. Če želite na primer natisniti priimke zaposlenih v Oraclovi shemi vzorcev človeških virov z enojnimi narekovaji, ki obkrožajo priimke, lahko napišete tako poizvedbo:

izberite '' '' || priimek || '' '' od zaposlenih; 

Štirje enojni narekovaji uspešno uidejo narekovaju pred priimkom in za njim. Na žalost se lahko enostavno izgubimo v narekovajih, zlasti pri bolj zapletenih poizvedbah. Ker decimalna koda ASCII 39 ustvari en narekovaj, ko se posreduje CHR, je izraz CHR (39) lahko uporabite namesto tega, kot je prikazano naprej:

izberite CHR (39) || priimek || CHR (39) od zaposlenih; 

Zame je to bolj berljivo. Podobno je s funkcijo CHR mogoče predstaviti še težje znake. Na primer, Stephen je v svoji predstavitvi poudaril, da je mogoče s CHR (10) natisniti novo vrstico na izhodu.

Ena izmed zanimivih idej, o kateri je Stephen razpravljal, je bila uporaba preprostega skripta za prikaz različnih predstavitev znakov, ki so na voljo prek funkcije CHR. Na omrežju ASCII Chart ali asciitable.com se lahko vedno sklicujete na vir, kot je Tech, vendar je zanimivo preprosto prikazati predstavitve prek kode:

- displayCHR.sql - - Prikaže znake, povezane z osnovno in razširjeno kodo ASCII. - SET glavo off SET velikost strani 0 SET velikost vrstice 120 SET trimspool na SET povratne informacije izključeno SET preverjanje izključeno SET serverutput pri velikosti 5000 BEGIN FOR i IN 32..255 zanka Dbms_output.put_line (i || '' || chr (i)) ; KONČNA zanka; KONEC; / 

Zgornji delček kode, ko se izvede v SQL * Plus, bo prikazal veliko število znakov, ki so na voljo v osnovnem in razširjenem naboru znakov ASCII. Ukaz spool lahko uporabimo za preslikavo izhoda v datoteko. V svojem računalniku z operacijskim sistemom Windows sem si lahko celo ustvaril te simbole v vmesni izhodni datoteki z osnovno aplikacijo Notepad.

Zaključek

Kot je Stephen poudaril v svoji predstavitvi, lahko funkcija CHR naredi skripte SQL * Plus bolj berljive in vzdrževalne.

To zgodbo, "Oracle CHR Function", je prvotno objavil JavaWorld.

$config[zx-auto] not found$config[zx-overlay] not found