Névjegyzék

Laboratóriumi munka. Dolgozzon karakterláncfunkciókkal. A szimbolikus, karakterláncfunkciók és funkciók használata a dátummal az SQL-ben

Ebben a részben arról szól, hogy olyan szöveges információkkal dolgozik, amelyek a PL / SQL lekérdezésekben és programkódokban használhatók.

CONCAT (STRR, STR2) funkció

Ez a funkció elvégzi a Strl és STR2 koncertinstránt. Ha az egyik argumentum NULL, akkor az üres karakterláncként érzékelhető. Ha mindkét argumentum NULL, akkor a funkció null. Példa:

Válassza a CONCAT ("PAP \\" egy kutyát ") x1,
Concatictctest ", null) x2,
Concat (, "teszt") x3,
Concat (, null) x4
Kettős.

A kutya volt kutyája

A Concatenation esetében az Oracle Strings egy speciális "||" speciális konvatiáns operátort támogat, amely hasonlóan működik a CONCAT funkciókhoz, például:

Válassza a CONCAT ("PAP \\" egy kutya ") x1," pop "||" kutya "x2
Kettős.

A koncentrációs operátor "||", ami egyenértékű a CONCAT funkciónak, és az aritmetikai műveletekben használt "+" operátor nem szabad összetéveszthető. Az Oracle-ban ezek különböző szereplők, de a típusok automatikus tisztázása rovására, a foglalkoztatott hibák lehetségesek, például:

Válassza az "5" + "3" x1 lehetőséget
Kettős.

Ebben az esetben a 8 numerikus értéket visszaküldjük, és nem az "53" szövegsor. Ez annak köszönhető, hogy a "+" aritmetikai művelet megtalálásával az Oracle automatikusan megpróbálja elérni az argumentumokat a szám típusához.

Alsó funkció (STR)

Az alsó funkció átalakítja az összes string karaktereket a kisbetűsbe. Példa:

Válasszon alacsonyabb ("szöveges adatok") x
Kettős.

FunkcióFelső (str)

A felső funkció átalakítja az összes string karakter nagybetűs. Példa:

Válassza ki a felső ("szöveges adatok") x
Kettős.

Initcap (STR) funkció

Visszaadja a Str karakterláncát, amelyben az összes szó első betűje tőké alakul. A funkció kényelmes a teljes név formázásához, amikor az építési jelentések. Példa:

Válassza ki az initcapcivants Pets Sidorovych ") x) x
Kettős.

FunkciókLtrim (str [, set])ésRTRIM (STR [, SET])

Az Ltrim funkció törli az összes karaktert a vonal kezdetétől az első karakterhez, amely nem a beállított karakterek sorában van. Alapértelmezés szerint a készlet egyetlen helyből áll, és nem feltétlenül jelezhető. Az RTRIM funkció hasonló az LTRIM-hez, de eltávolítja a vonal végétől kezdődő karaktereket. Tekintsünk néhány példát:

Válassza ki az LTRIM ("TEXT DATA") X1 lehetőséget,
Ltrim ("_ # szöveges adatok", "#_") x2,
Ltrim ("1234567890 szöveges adatok", "1234567890) x3
Kettős.

Cserélje ki a funkciót (str, search_str, [, csere_str]))

A Cserélő funkció keresése a STR STRING STRING-ben, és a bejegyzés beírása helyettesíti a csere_str. Alapértelmezés szerint a csere_str egy üres karakterlánc, így a csere funkció két argumentummal történő hívása az összes talált bejegyzés eltávolításához vezet. A szubsztrálás megtalálása a nyilvántartás tekintetében történik. Példa:

Válassza ki a Csere ("Popa kutyája", "kutya", "macska") x1,
Cserélje ki ("Popa gonosz kutya volt", "dühös") x2,
Cserélje ki ("Popa volt egy kutya", "kutya", "macska") x3
Kettős.

A macska macskája volt

A kutya volt kutyája

A kutya volt kutyája

Fordítás funkció (str, in_mask, to_mask)

A Fordítás jellemzője elemzi a Str karakterláncot, és felváltja az összes karaktert a from_mask sorban a To_Mask megfelelő karaktereire. A helyes működés érdekében a from_mask és a to_mask sor funkciónak azonos hosszúságúnak kell lennie, vagy a_maszk-karakterláncnak hosszabbnak kell lennie, mint a to_mask. Ha FROM_MASK hosszabb to_mask, és a feldolgozás a string string, a megfelelő jeleket az egyik FROM_MASK karakterek észlel, és ugyanakkor nem rendelkeznek megfelelőségi to_mask, akkor az ilyen karaktereket törli a húr Str. Ha átmegy a_mask-ról vagy a to_mask-ról, nullnak egyenlő, akkor a funkció visszaadja a null értékét. Az összehasonlítás a nyilvántartás tekintetében történik.

Válassza a Fordítás lehetőséget ("Teszt 12345", "E2 \\" E! ") X1,
Fordítás ("Teszt 12345", "E234", "E") x2
Kettős.

Ez a funkció kényelmes megoldani számos gyakorlati feladatot, amelyek a kódoló szimbólumokhoz kapcsolódnak, vagy a tiltott karakterek keresésével. Például szükség van a jelszó elemzésére és megtudni, hogy legalább egy számjegyet tartalmaz-e. Ennek az ellenőrzésnek a végrehajtása a Fordítással rendelkezik:

Ha fordítás (passwd, "0123456789", "*") \u003d passwd
Add_err0r ("hiba - a jelszónak legalább egy számjegyet kell tartalmaznia!");
Vissza 1;
Vége, ha;

Egy másik példa: A számnak a számának számának előkészítése van. Szükség van a tizedesjegyek elválasztóinak cseréjére "," és "." a "." És távolítsa el a tereket. A művelet végrehajtása Fordítással rendelkezik:

Válassza a Fordítás lehetőséget ("123 455.23", ",", "..") x1,
Fordítás ("- 123 455,23", ".", "..") x2
Kettős.

SUBTRE funkció (STR, M [, N])

Az SUBTR funkció a string string str fragmentumát adja vissza, kezdve az N szimbólumok szimbólumával. Nem adhatja meg a hosszát - ebben az esetben az M szimbólumból származó vonalat visszaküldik, és a string végéig. A karakterek számozása 1-ből származik. Ha M \u003d 0-t ad meg, a másolás még mindig az első karakterből indul. A negatív érték m feladata az a tény, hogy a karakterek a sor végétől számítanak, és nem az elejétől. A karakterlánc hossza abszolút értékét meghaladó értékek beállítása az a tény, hogy a függvény nulla.

SELECT SUBSTR ("POPA volt egy kutya", 13) x1,
A SUPTR ("POPA egy kutya", -6) x2,
SUBTRE ("ETO tesztszöveg", 5, 8) x3,
Substr ("Popa kutya", 150) x4
Kettős.

szöveg

Instr (str, search_str [, n [, m]] funkció)

Az Instr funkció az első szimbólum M-RO fragmentum helyzetét adja vissza, amely egybeesik a Search_STR karakterlánccal. Az összehasonlítás az N-TH Symbol String karakterláncból történik, összehasonlítva a nyilvántartást figyelembe veszik. Az alapértelmezett n \u003d m \u003d 1, azaz a keresés a vonal kezdetétől történik, és visszaadja az első talált töredék helyzetét. Sikertelen keresés esetén a funkció visszatér 0.

Válassza az Instr ("Ya pop volt egy kutya", "kutya") x1,
Instr ("Ya pop volt egy kutya", "macska) x2,
Instr ("Ez a szöveg, amely bemutatja a szövegkeresést", "szöveg", 1, 2) x3,
Instr ('11111000000001, "1", 7) x4
Kettős.

Ezekkel a funkciókkal, valamint az összes többi Oracle-val, a null érték feldolgozásához kapcsolódó tipikus hibák gyakran megengedettek. Ha str \u003d , akkor a funkció , és nem nulla! Ezt figyelembe kell venni különböző körülmények építésénél. Például a PL / SQL program töredéke nem veszi figyelembe ezt a funkciót:

Ha az instr (txt_var,"*") = 0 Azután.
...
Vége.Ha.;

Ebben az esetben helyes lenne írni ezt:

Ha NVL (instr (txt_var, "*"), 0) \u003d 0
...
Vége, ha;

Hossz (STR) és hosszúságú (str) funkciók

Hosszúság (STR) A karakterek string hosszát adja meg. Egy üres karakterlánc és null értékek esetében a funkció nullát ad vissza, így ajánlott az NVL használatát használni ezzel a funkcióval.

Válassza a Hossz ("Popa kutyája") x1,
Hossz ("") x2,
Hossza (null) x3,
Nvl (hossza (""), 0) x4
Kettős.

A hosszúságú függvény hasonló a hosszfunkcióhoz, de a karakterlánc hosszát bájtukban adja vissza.

ASCII (STR) funkció

Visszaadja az ASCII kódja az első húr szimbólum string használata esetén az ASCII kódolás és az első bájt a több byte jel használatakor bájtos karaktereket. Példa:

Válassza az ASCII ("TEST") X1 lehetőséget a kettőstől

CHR (N) funkció

Visszaadja a szimbólumot a kódjában.

Válassza a CHR (64) x1 lehetőséget
Kettős.

A vonalakkal való munka egyszerűsítése érdekében számos beépített funkció létezik, amelyek nagymértékben megkönnyítik a műveleteket, mint például a karakterláncok konvertálása más típusú adatokra, keresése a karakterláncban, meghatározza a karakterlánc hosszát, stb. Figyelembe vesszük a leggyakoribb funkciókat a sorok kezelésére.

1) A hosszúságú karakterlánc (string) hosszmeghatározási funkciója visszaadja a karakterláncban szereplő karakterek számát, beleértve a végtereket is.

A DUAL-tól a Hossz ('String') válassza ki a 7 értéket.

2) A felső szimbólum regisztrálja a konverziós funkciókat (string), alacsonyabb (string), initcap (string). A karakterek átalakítása a felső regiszterhez a felső () funkciót használja.

Válassza a Felső ('String') lehetőséget a kettős visszaadási karakterláncból.

Ha a karakterláncokat a kisbetűkre kell átalakítani, az alsó () függvényt használják.

Válasszon alacsonyabb ('string') a kettős visszaadási karakterláncból.

Az InitCap funkció a szó első karakterét a felső regiszterre konvertálja, és az alul lévő összes többi karakter, feltéve, hogy a szimbólum szimbóluma a szavak között.

Válassza az InitCap ('String1 String2') lehetőséget a DUAL-tól a String String1 String2-t.

3) A kezdeti és végtengelyterületek (string), a rtrim (string), a trim (string) körülmetélése. Ennek megfelelően az első funkció csökkenti az összes kezdeti sztring hiányosságokat, a második pedig véget ér, és a harmadik minden kezdeti és vége.

Válassza ki az LTRIM ('STR1') a DUAL-tól, visszaadja az STR1 karakterláncot,
Válassza ki az RTRIM ('STR2') a DUAL-tól, visszaadja a Str2 karakterláncot,
A Dual-tól a TRIM ('STR3') kiválasztása visszaadja az STR3 karakterláncot.

4) A másik vonal cseréjének cseréjének függvénye (Source_Stroke, cserélhető_stroit, cseréje_stroit). A nagyobb tisztaság érdekében fontolja meg egy példát, egyes szövegmezőben az asztal tárolja a számot. Ráadásul a szeparátor szimbólum az egész és a frakcionált rész között egyes mezők ".", És nekünk további adatfeldolgozásra van szükség, hogy "" legyen "minden területen. Ehhez használja a Cserélő funkciót az alábbiak szerint. Cserélje ki (Field1, '.', ',') És minden karakter "." A mezőt a "" "mezővel helyettesíti.

Válassza ki a Csere ('My_STRING', '_', '@') a Dual-tól a karakterláncból [E-mail védett]

5) Adatkonverziós funkciók más adattípusokhoz. To_char (szám) egy számot szövegbe konvertál. To_number átalakítja a szöveget a számhoz. To_date (string, format_dates) konvertál egy karakterláncot egy adott formátumban.

Válassza a To_Char (123) a Dual-tól, visszaadja a 123-as vonalat,
Válassza a To_Number ('12345') lehetőséget a Dual-tól a 12345 számot,
Válassza a to_date ('01, 2010 ',' dd.mon.yyyy ') lehetőséget a Dual-tól a 01.jan.2010 dátumát.

6) A függvény meghatározása a bejegyzést a részsztring a INSTR string (source_stroke, alsztringjeként, Simal szám). A megadott funkció lehetővé teszi, hogy meghatározza az eredeti vonal karakterszámát, amelyből a kívánt aljzat megkezdődik (ha van ilyen). Ellenkező esetben 0 kerül visszaadásra. Például meg kell határoznunk az összes pozíciót a táblázatban, amelynek nevében a "menedzser" szubsztrálás megtalálható. Ehhez a következő üzemeltető meglehetősen alkalmas.

SELECT * from Table1 WHERE INSTR (Post, 'menedzser', 1)\u003e 0.

Azaz, a SELECT jelenik csak azokat a rekordokat a Table1 asztalnál, ahol a kívánt alsztringjeként „menedzser” lesz a találat. És a keresés az első szimbólumból készül. Ha a keresést másik pozícióban kell elvégezni, a keresés megkezdésének megkezdésének karakterszáma a harmadik paraméterben jelenik meg.

Válassza az Instr ('Small string', 'string', 1) lehetőséget a kettős visszatérésből 7-re,
Válassza az Instr ('Small string', 'string', 1), a kettős értéket, visszaadja a 0 értéket.

7) A kiválasztási funkció az eredeti LINE SUBTRE SUBTRING (SOURCE_STRAKE, NUMBER_NACHABLE_SIMVOL szám, a_simvol száma). Fontolja meg, hogy egy ilyen példát a felhasználói asztal tárolja a címet a település nevének formájában, az utcán, a házszámban. Sőt, tudjuk, hogy vannak olyan szigorúan csak 20 karaktert a település nevét (ha a település neve kevesebb, mint 20 karakter, a többi tele van terek), a nevét az utca 30 karakter, a házszám 3 szimbólum. Ezután át kell adnunk az összes címet az asztalról a másikra, és ugyanakkor mind a 3 címnek különböző területeken kell lennie. A címkomponens kiemeléséhez alkalmazza az SUPTR () funkciót.

Válassza ki az SUBTRT (TABLE_1.ADDREST, 1, 20) CITY, SUBTRT (TABLE_1.ADDREST, 21, 30) utca, Substr (table_1.Address, 52, 3) Town in Table_1

Természetesen a beszúró üzemeltetőt kell használni az adatok átviteléhez, de az Ügyfélszolgálat munkájának megértéséhez a figyelembe vett példa meglehetősen alkalmas.
Selectr ('my_string', 4, 3) a kettős lesz vissza a string str.

A fent tárgyalt funkciók felhasználhatók a bemeneti paraméterekben. Tehát, ha meg kell jelölnünk az összes karaktert, néhány megadott, akkor a megbízható funkció átadhatja a kívánt szimbólum számát az Instr funkcióból. Például, ha át kell adnod az összes karaktert az asztal mezőből, amelyek ",", akkor használhatod az ilyen kialakítást
Válassza ki az SUBTR (MY_STRING, INSTR (MY_STRING, ',', 1), Hossz (my_string) - instr (my_string) - instr (my_string, ',', 1) +1) kettős.
A kezdeti szimbólum meghatározásához az Instr () függvényt hívjuk fel, amely visszaadja az aljzat első bejegyzésének szimbólumának számát ",". Ezután meghatározzuk a karakterek számát a vonal végéig, mint a karakterlánc hossza és az első bejegyzés szubsztring számának különbsége.

8) A szimbólumkód meghatározásához az ASCII (string) funkciót használják, amely visszaadja a karakterlánc szimbólum kódját. például

Válassza ki az ASCII (W) a kettős értéket visszaadja a 87 értéket.

9) Fordított funkció A szimbólumkód konvertálásához a CHR szimbólumba (szám).

Válassza a Chr (87) Dual-tól válassza a W. szimbólumot

Az Oracle-ban való munkavégzés funkciói.

Az Oracle DBMS számos funkcióval rendelkezik a számokkal való munkavégzéshez. Ezek közé tartozik a hatalom (), kerek kerek (), stb.

1) Az ABS funkció az érv abszolút értékét adja vissza.
Válassza ki az ABS (-3) a kettős értéket visszaadja a 3 értéket.

2) A Ceil (szám) függvény visszaadja a legkisebb egész számot, nagyobb vagy egyenlő a továbbított paraméterrel.
Válassza ki a Ceil (4.5) a kettős visszatérő értéket 5.

3) A padló (szám) függvény visszaadja a legnagyobb egész számot, kisebb vagy egyenlő a továbbított paraméterrel.
A Dual (3,8) kiválasztása a 3 értéket visszaadja.

4) A mod funkció (Number_1, Number_2) visszaadja az első paraméter megosztását a másodikra.
Válassza a MOD (5, 3) lehetőséget a Dual-tól, visszaadja az értéket 2. Megjegyzés. Ha a második paraméter 0, akkor a funkció az első paramétert adja vissza.

5) Kerek kerekítési funkció (NUMBER_1, NUMBER_2). Az első továbbított paramétert a második paraméterben továbbított kisülések számához fordítja. Ha a második paraméter nincs megadva, akkor 0-nál kisebb, vagyis a kerekítés az egész értékre történik. Példák
Válassza ki a kereket (101.34) a kettős visszaadási értéket 101,
Válassza ki a kereket (100.1268, 2) a kettős lesz $ 100.13
Válassza ki a kereket (1234000.3254, -2) a kettőstől 1234000-re,
Válassza ki a kereket (-100.122, 2) a kettőstől visszaadja a -100.12 értéket.

6) Trunc érték nadrág (NUMBER_1, NUMBER_2). Visszaadja az első paraméter csonkolt értékét a második paraméterben meghatározott tizedesbérletek számához. Példák
Válassza ki a TRUCH (150.58) a kettős értéket a 150 érték értéke
Válassza ki a Trunch (235.4587, 2) a kettős lesz visszatér 235,45-re
Válassza a Trunch (101.23, -1) lehetőséget a kettős visszatérési értéktől 100

7) Az Oracle DBMS számos trigonometrikus funkcióval rendelkezik (szám), COS (szám), Tan (szám) és a fordított ACOS (szám), ASIN (szám), ACOS (szám). Visszaadják az értéket a trigonometrikus funkció megfelelő nevéhez. A közvetlen funkciókhoz a paraméter a radiánok szögének értéke, és a fordított - a függvény értéke. Példák
Válassza ki a COS (0,5) a Dual-tól, visszaadja a 0,877582561890373 értéket
Válassza ki a bűnt (0,5) a kettős lesz visszaadja a 0,479425538604203 értéket
Válassza ki a Tan (0,5) a kettős visszaadástól a 0,546302489843791 értéket
Válassza ki az ACOS (0,5) a Dual-tól az 1.0471975511966 értéket visszaadja
Válassza az Asin (0.5) a kettős lesz vissza 0.523598775598299
Válassza ki az ANTAN (0,5) a kettős visszaadástól a 0,46364760900080806 értéket

8) Hiperbolikus funkciók. Sinh (szám),
Cosh (szám), tanh (szám). SINH () hiperbolikus szinusz továbbított paraméter Cosh () hiperbolikus koszinusza továbbított paraméter TANH () hiperbolikus tangense továbbított paramétert. Példák
Válassza ki a Cosh (0,5) a Dual-tól, visszaadja az értéket 1.12762596520638
Válassza ki a Sinh (0,5) a kettős lesz visszaadja az értéket 0,521095305493747 Válassza ki a TANH (0,5) a kettős visszaadástól a 0,46211715726001 értéktől

9) Angol működési teljesítmény (NUMBER_1, NUMBER_2). Példák
Válassza ki a tápellátást (10, 2) a kettős visszatérési értéktől 100
Válassza a Teljesítmény (100, -2) a Dual-tól 0,0001-re

10) Logaritmikus funkciók. Az LN (szám) visszaadja a továbbított paraméter természetes logaritmumát, a napló (Number_1, Number_2) visszaadja a második továbbított paraméter logaritmusát az első paraméter által továbbított alap alapján. Ezenkívül az első paraméternek nagyobbnak kell lennie, mint nulla, és nem egyenlő 1. példa
Válassza ki az LN-t (5) a Dual-tól, visszaadja az értéket 1.6094379124341
Válassza ki a naplót (10, 3) a Dual-tól visszaadja a 0,477121254719662 értéket

11) SQRT Square Root Extraction funkció (szám). Példa
Válassza ki az SQRT (4) a kettős értéket, majd a 2 értéket adja vissza.

12) Exp (szám) Exp (szám) funkció. Példa
Válassza ki az exp (2) kettőt a 7.38905609893065 értékre.

Jellemzők az Oracle dátumokkal való munkavégzéséhez

A gyakorlatban gyakran szükséges az adatok dátumok formájában történő elemzése, hogy bizonyos műveleteket készítsen rájuk, módosítsa a formátumot. Mindezen műveletek már beépített funkciók formájában valósulnak meg. Tekintsük a legalapvetőbbakat.

1) Add_months visszaadja az első paraméterben megadott időponttól elválasztott dátumot a második paraméterben megadott hónapokban. Példák
Válassza az Add_Months ("01 -jan-2010 ", 2) a kettős lesz visszaadja a "01 .03.2010" dátumot
Válassza az Add_months ('01 -jan-2010 ', -3) lehetőséget a kettős visszaadásból A '01 .10.2009 dátum
Válassza a Hozzáadás_months ('30 -jan-2010 ', 1) a Dual-tól a "28 .02.2010 "dátumot visszaadja.

2) Az aktuális dátum és idő meghatározásához a sysdate funkció érvényes. Ennek a funkciónak a hatálya sokkal szélesebb, mint az első pillantásra. Először is, az adatbeviteli adatbázisban irányul. Sok táblázatban külön mezőket osztanak ki az utolsó változás dátumának megmentéséhez. Nagyon kényelmes a jelentések néhány bemeneti paramétereinek ellenőrzésére is, különösen akkor, ha nem lehet több, mint az aktuális dátum. A dátum mellett ez a funkció több időt vesz igénybe másodpercig. Példa
Válasszon sysdate-t a Dual Retty dátumból '22 .05.2010 14:51:20 '

3) Ha meg kell határoznia a hónap utolsó napját, a Last_day funkció (dátum) meglehetősen alkalmas erre. Használható a hónapban fennmaradó napok számának meghatározására.
Válassza a Last_day (Sysdate) - Sysdate-t a kettős.
Az üzemeltető végrehajtásának eredményeképpen megjelenik a hónap vége előtti napok száma a hónap vége előtt. Példa
Válassza a Last_day ('15 -feb-2010 ') lehetőséget a kettősségből, visszaadja a "28 .02.2010 "dátumot.

4) Funkció annak meghatározásához, hogy a hónapok száma hónapok között_Between (Date_1, Date_2). Példák
Válassza ki a hónapokat_abeween ("01 -jul-2009 ", '01 -jan-2010 ') a kettős visszatérési értéktől -6
Válassza ki a hónapokat_Between ("01 -jul-2009 ", '10 -jan 2010 ') a kettős lesz visszaadja a -6.29032258064516 értéket.
Jegyzet. Ha a hónapok napjai egybeesnek, akkor a függvény egy egész számot ad vissza, különben az eredmény frakcionálódik, és a hónap napjainak száma 31.

5) A next_day funkció (dátum, day_deli) lehetővé teszi, hogy meghatározza a következő dátum napjától továbbítják az első paraméter, amely megfelel a nap a héten továbbítják a második paraméter. Példa
SELECT NEXT_DAY ('01 -JUL 2009 „” H ») jelent a kettős visszatér a dátum '06 .07.2009«, azaz a következő hétfőn július 1. után, 2009 eljött 6 számot.

6) A forduló dátumának kerekítése (dátum, formátum). A második paraméter nem szükséges, ha nem adja meg, akkor a "DD" -ra van szükség, vagyis a kerekítés a közeljövőig. Példák
A kettős kerek (sysdate) kiválasztása a '23 .05.2010 'dátumot visszaadja.
Válasszon kereket (sysdate, hónap) a kettős lesz visszaadja a "01 .06.2010 "dátumot, kerekítve a hónap legközelebbi napjára.

7) A dátum csonkítása. Trunc funkció (dátum, formátum). Továbbá, amint azt fentebb említettük, lehet, hogy nincs második paraméter. Ebben az esetben a csonkítás a közeljövőig történik. Példák
Válassza ki a Trunch (Sysdate) a Dual-tól visszaadja a "22 .05.2010 "dátumot
Válassza a TRICK (SYSDATE, 'WW') lehetőséget a kettősségből, visszaadja a "01 .05.2010 "dátumot
Válassza ki a TRICK (SYSDATE, 'NAP') a DUAL-tól a "16.05.2010" dátumot.

Adatkonverziós funkciók az Oracle-ben

Ez a rész az adatátalakítás különböző formátumokká történő megfontolására szolgál. A gyakorlatban a helyzet meglehetősen gyakori, ha szükségesnek kell tekinteni a karakterláncok számát, és fordítva. Annak ellenére, hogy a lehetőségek kis száma képességeik, elegendő megoldani a nagyon összetett alkalmazott feladatokat.

1) to_char (adatok, formátum). Első pillantásra a szintaxis elég egyszerű, de a második paraméter miatt nagyon pontosan leírhatja az adatok átalakítását. Tehát a karakterláncban konvertálhatja mind a dátumot, mind a numerikus értéket. Tekintsük a dátumot a karakterláncra való átalakításának lehetőségét. A leggyakoribb formátumok értékeit a táblázat tartalmazza, a műszaki dokumentációban több teljes információ található.

Formátum-értékek táblázata egy szám átalakításához egy karakterláncba.

Válassza a To_Char (sysdate, 'd-hav-yy') lehetőséget a kettősségtől, visszaadja a "7-május -10" karakterláncot
Válassza ki a to_char (sysdate, 'ddd-mm-yyyy) a kettősségből, visszaadja a "142-05-2010" vonalat
Válassza a To_Char (sysdate, a Q-D-yyy ') lehetőséget a kettősségből, visszaadja a "2-7-05-010" vonalat
Válassza a To_Char (1050, '9.99EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE-tól a "1.050e + 03" vonalat visszaadja
Válassza a To_Char (1400, '9999V999') lehetőséget a kettős lesz visszaadja az "1400000" sort
Válassza a To_Char (48, 'RM') a Dual-tól, visszaadja az "XLVIII" sort

2) A TO_DATE (karakterlánc, formátum) sorváltozási funkciója. A lehetséges formátumokat már figyelembe vették, ezért néhány példát adok a funkció használatára. Példák
Válassza a to_date ('0101.2010', 'dd.mm.yyyy') lehetőséget a kettősségből, visszaadja a "01.01.2010 "dátumot
Válassza ki a to_date ('01 .jan.2010 ',' dd.mon.yyyy ') a kettős visszaadástól A '01 .01.2009 dátum
Válassza a To_Date ('15 -01-10 ',' DD-MM-YY ') lehetőséget a kettős visszaadásból a '15 .01.2010' dátumtól.

3) A sor konverziós funkciója a numerikus értékhez a to_number (string, formátum). A leggyakoribb formátumok szerepelnek a táblázatban, ezért fontolja meg a funkció használatát a példákon. Példák
Válassza a To_Number ('100') lehetőséget a kettősből, visszaadja a 100-as számot
Válassza a to_number ('0010.01', '9999D99) lehetőséget a kettős visszatérési számtól 10.01
Válassza a to_number ("500.000", "999G999") lehetőséget a kettősségből, visszaadja az 500000-es számot.

Bevezetés

oracle Register String Aritmetikai

A modern információs technológia főbb elképzelései a fogalmakon alapulnak, amelyeket az adatokat adatbázisokban kell megszervezni a változó valós világ megfelelő megjelenítéséhez és a felhasználók információs igényeinek kielégítésére.

Relevancia:A számítógép nem más, mint az információs konverziós eszköz. Ha az információ nem túl sok, a feldolgozás fő ideje az átalakítási algoritmust. Ha ugyanakkor nagy mennyiségű adatmal kell dolgoznia - a feldolgozási hatékonyság közvetlenül az adatok megszerzésének, szűrésének hatékonyságától kezdve, stb. A fejlesztési folyamat egyszerűsítése, Különböző DBMS-eket hoztak létre. Saját adattárolási formátumuk van, az algoritmusaik keresésére és kivonására, de az alapvető lekérdezési nyelvet a legtöbbjükből egy. És ez a nyelv SQL.

Célkitűzések:

1. Elméleti és gyakorlati ismeretek megszerzése az Oracle SQL funkciók szerint;

2. Az elmélet alkalmazása a gyakorlatban.

Feladatok: Ez a kurzus az Oracle SQL funkciók tanulmányozására, valamint a velük való munkavégzés fő technikáira vonatkozik. Ebben a cikkben tanulmányozzuk azokat a funkciókat, amelyek az egyes sorokhoz visszatérő egyszerű egyvonalas bemeneti paraméterekkel dolgoznak.

Oracle SQL funkciók

A funkció hasonló az üzemeltetőhöz, hogy manipulálja az adatelemeket és visszaadja az eredményt. A funkciók eltérnek az olyan formátum üzemeltetőitől, amelyekben az argumentumokkal vannak megadva. Ez a formátum lehetővé teszi a funkciókat, hogy nulla, egy, két vagy több érv számot működjenek:

funkció (argumentum, argumentum, ...)

A funkciók felhasználhatók az adatokkal, az adattípusok átalakításával, a kimeneti formátumokban stb. Az SQL funkciók két fő típus:

1. Egysoros (vagy skalár) funkciók;

2. Csoport (vagy aggregátum) funkciók.

Ezek a funkciók különböznek az általuk működő sorok számában. Az egysoros függvény az egyes táblázatokhoz tartozó egyetlen értéket adja vissza, míg a csoportfunkció visszatér az egyetlen sorszám egyetlen csoportjának egyetlen értékét.

Egysoros funkciók . Egysoros funkciók jelennek meg a kiválasztásban, ahol és megrendeléssel válassza ki a parancsokat. Argumentumként a felhasználó által meghatározott konstansokat, a változók értékeit, az adatbázis táblázat vagy kifejezés oszlopának nevét, az üzemeltetők és funkciók felhasználásával alkotják.

Funkciók listája

Az összes egysoros funkció általában több csoportra oszlik, ilyen argumentumok és visszaküldött értékek típusával. Kioszt:

· Numerikus funkciók;

· Szimbolikus funkciók;

· A dátumokkal való munkavégzés jellemzői;

· Konverziós funkciók.

Szimbolikus funkciók

A szimbolikus funkciók a string értékeken működnek. A vonalakkal való munka egyszerűsítése érdekében számos beépített funkció van, amelyek nagyban megkönnyítik a különböző műveleteket.

Szimbólum-regiszter konverziós funkciók

A hosszúságú karakterlánc (string) hosszmeghatározó funkciója visszaadja a karakterláncban szereplő karakterek számát, beleértve a végtereket is.

Kiválaszt Hossz ( húr) Tól től. Dupla. Visszatérési érték 7.

A felső karakterek (string), az alsó (string), az initcap (string) paramétereinek átalakítására szolgáló funkciók. A karakterek átalakítása a felső regiszterhez a felső () funkciót használja.

Kiválaszt Felső ( húr) Tól től. Dupla.ropsp Húr.

Ha a karakterláncokat a kisbetűkre kell átalakítani, az alsó () függvényt használják.

Kiválaszt Alsó ( Húr) Tól től. Dupla. Ropsp Húr.

Az InitCap funkció a szó első karakterét a felső regiszterre konvertálja, és az alul lévő összes többi karakter, feltéve, hogy a szimbólum szimbóluma a szavak között.

Kiválaszt Initcap (string1 string2) Kettős Visszaadja a vonalat Zsinór1 String2..

A kezdeti és végtengelyterületek (string), rtim (string), trim (string) körülmetélése. Ennek megfelelően az első funkció csökkenti az összes kezdeti sztring hiányosságokat, a második pedig véget ér, és a harmadik minden kezdeti és vége.

Kiválaszt Az LTRIM (`STR1") a DUAL-tól visszaadja az STR1 karakterláncot,

Kiválaszt RTRIM (`STR2") a kettőstől visszaadja a Str2 stringet,

Kiválaszt Trim (`st3") a kettősségből visszaadja a Strcon karakterláncot.

A másik vonalcserélő részének cseréjének függvénye (forráshír, amelyet a szubsztrálás helyettesítése helyettesít). A nagyobb tisztaság érdekében fontolja meg a példát:

Egyes szöveges mezőben, a táblázat tárolja a számot, és az elválasztó jelet az egész és tört része egyes területeken „» és nekünk a további adatfeldolgozás szükség van arra, hogy minden területen, hogy«,”.

Ehhez használja a Cserélő funkciót az alábbiak szerint: Cserélje ki (Field1, ",", ",") és minden karakter "." A mezőt a "" "mezővel helyettesíti.

Kiválaszt Cserélje ki (`my_string", "_", "@") kettős lesz visszaadja a karakterláncot [E-mail védett]

Adatkonvertálás feladatokat más adattípusok: TO_CHAR (szám) alakít egy számot szöveget, to_number (string) átalakíthatja a szöveget a számot, TO_DATE (line, dátum formátum) átalakítja a húr egy meghatározott formátumban.

Kiválaszt To_char (123) a kettőstől visszaadja a 123 stringet,

Kiválaszt To_number (`12345") a kettős lesz visszaadja az 12345 számot,

Az aljzat bejegyzésének meghatározásának funkciója az Instring karakterláncban (forráshír, szubsztrálás, karakterszám). Ez a funkció lehetővé teszi, hogy meghatározza a karakterszámot az eredeti vonalon, amelyből a kívánt aljzat megkezdődik (ha van ilyen). Ellenkező esetben 0, például meg kell határoznunk az összes pozíciót a táblázatban, amelynek nevében a "menedzser" szubsztring. Ehhez a következő operátor meglehetősen alkalmas:

Kiválaszt*Tól től.Asztal 1 Hol.Instr (Post, `Manager, 1)\u003e 0.

Azaz, a SELECT jelenik csak azokat a rekordokat a Table1 asztal, ahol a kívánt alsztringjeként „menedzser” lesz a találat. És a keresés az első szimbólumból készül. Ha a keresést másik pozícióban kell elvégezni, a keresés megkezdésének megkezdésének karakterszáma a harmadik paraméterben jelenik meg.

Kiválaszt Instr (`small string,` string, 1) a kettős értéket visszaadja a 7 értéket,

Kiválaszt Instr (`small string,` string, 1) a kettős értéket visszaadja a 0 értéket.

A kiválasztási funkció az eredeti Line Substr Substring (Source String, a kezdeti karakterszám, a karakterek száma). Fontolja meg, hogy egy ilyen példát a felhasználói asztal tárolja a címet a település nevének formájában, az utcán, a házszámban. Sőt, tudjuk, hogy vannak olyan szigorúan csak 20 karaktert a település neve (ha a település neve kevesebb, mint 20 karakter, a többi tele van terek), a nevét az utca 30 karakter, a házszám 3 szimbólum. Ezután át kell adnunk az összes címet az asztalunkról a másikra, míg mind a 3 címnek különböző területeken kell lennie. A címkomponens kiemeléséhez alkalmazza az SUPTR () funkciót.

KiválasztSubstr (table_1.Address, 1.20) City, Substr (table_1.Address, 21,30) utca, substr (table_1.Address, 52, 3) város Tól től. Asztal 1;

Természetesen meg kell használni a betétet kezelő továbbítani az adatokat, de a szóban forgó példában igen alkalmas működésének megértéséhez SUBST funkciót.

Kiválaszt Substr (`my_string, 4, 3) a kettős lesz vissza a string str.

A fent tárgyalt funkciók felhasználhatók a bemeneti paraméterekben. Tehát, ha meg kell jelölnünk az összes karaktert, néhány megadott, akkor a megbízható funkció átadhatja a kívánt szimbólum számát az Instr funkcióból. Például, ha át kell adnia az összes karaktert az asztal mezőből, amely szerint ",", akkor használhat ilyen designt:

Kiválaszt Substr (my_string, instr (my_string, `,", 1), hossza (my_string) - instr (my_string, `,", 1) +1) kettős.

A kezdeti szimbólum meghatározásához az Instr () funkciót hívjuk fel, amely visszaadja az aljzat első bejegyzésének szimbólumának számát. Ezután meghatározzuk a karakterek számát a vonal végéig, mint a karakterlánc hossza és az első bejegyzés szubsztring számának különbsége.

A szimbólumkód meghatározásához az ASCII (string) funkciót használják, amely visszaadja a karakterlánc szimbólumának 1. kódját. Például:

Kiválaszt Az ASCII (W) kettős lesz visszaadja a 87 értéket.

A szimbólumkód visszaállítása a CHR szimbólumba.

KiválasztCHR (87) a kettőstől visszaadja a W. szimbólumot

Szimbolikus karakterlánc manipulációs funkciók

Az Oracle kiterjedt funkciókat kínál a karakterláncadatok manipulálásához:

CHR (N) - visszaadja az ASCII kód \u200b\u200bszimbólumát a decimális n;

ASCII (ek) - visszaadja az első vonal szimbólumának tizedes ASCII kódját;

Instr (S2. S1.Pos [, n] - az S1 sztring pozícióját visszaadja az S2 karakterláncban nagyobb vagy egyenlő a pozícióval. N - Az előfordulások száma;

Hosszúság (ok) - visszaadja a vonal hosszát;

Alacsonyabb (ok) - helyettesíti az összes karakterláncot a tőke karakterekre;

InitCap (ek) - meghatározza az egyes szavak első szimbólumát a karakterláncban a címre, és az egyes szavak fennmaradó szimbólumai - a tőke - tőke;

SUBTR (S, POS, [, LEN]) - kiemeli a Len hosszú vonalat az S karakterláncban, a POS pozícióból;

Felső (ek) - nagybetűket konvertálnak a sorban a nagybetűkkel;

LPAD (S, N [, A]) - Visszaadja az S sztringet, kiegészítve a bal szimbólumokat az N karakterek számához. Az alapértelmezett szimbólum egy tér;

RPAD (S, N [, A]) - Visszaadja az S karakterláncot, kiegészítve a jobb oldali szimbólumokat a karakterek N. szimbóluma - az alapértelmezett töltőanyag - hely;

LTrim (s) - Visszaadja a csonka bal vonal S. szimbólumok hagyni, amíg az eltávolított szimbólum szerepel a húr - az S1 sablon (alapértelmezett - tér);

RTrim (s,) - Visszaadja egy csonkolt sor S. szimbólumok hagyni, amíg az eltávolított szimbólum tartalmazza a húr - az S1 sablon (alapértelmezett - tér);

Fordítás (S, S1, S2) - Visszaadja az S karakterláncot, amelyben az S1 karakterlánc összes bejegyzése S2 karakterláncmal van helyettesítve. Ha s1<> S2, akkor szimbólumok, amelyek nem tartoznak a megfelelőségből;

Cserélje ki (S, S1, S2]) - Visszaadja az S karakterláncot, amelyhez az S1 sztring összes bejegyzése az S2-szubsztitúción helyettesíti. Ha az S2 nincs megadva, akkor az összes S1 szubsztrátot eltávolítják a kapott karakterláncból;

Nvl (x, y) - ha X NULL, akkor visszatér Y-re vagy egy karakterláncra, vagy egy számot vagy egy számot az Y forrás típusától függően;

Soundex (ek) - visszaadja a vonal fonetikai ábrázolását;

Laboratóriumi munka. Munka karakterláncokkal

String funkciók az Oracle SQL lekérdezésekben, felső (), Concat (), Substr ().

A feladat:

Minden egyes alkalmazott számára azonosítót kell létrehoznia, aki úgy néz ki, mint a 3 első karakternév szimbóluma két első vezetéknév szimbólum. Az azonosító összes karakterét a nagybetűkkel kell bemutatni.

Írjon egy kérést, amely visszatér a HR.employes asztali információkról a munkavállaló nevétől és vezetéknevétől, valamint egy munkavállalói azonosítót a meghatározott feltételeknek megfelelően. A lekérdezés eredményét az 1. ábrán bemutatottnak kell tekinteni. 3.1-1.

Döntés:

A megfelelő kérés kódja lehet:

Kiválaszt FIRST_NAME AS "NAME", LAST_NAME AS "SHOURNAME" néven, felső (CONTRE (LAST_NAME, 1, 3), SUPTR (LAST_NAME, 1,2))) "Azonosító" Tól től. Hr.employes.

A szimbolikus funkció egy vagy több karakterértéket kap paraméterként, és visszaadja a karaktert és a numerikus értéket. Ha a karakter funkció egy karakterértéket ad vissza, akkor mindig a varchar2 típusú (változó hosszúság) - kivéve a felső és az alsó funkciókat. Ezek a funkciók előre meghatározott vonalat konvertálnak a felső vagy alsó regiszterhez, és visszaadják a vezetékes típus rögzített hosszának értékét, ha az argumentumokban továbbított sornak egyfajta karaktere volt.

Rövid összefoglaló karakterláncfunkciók

Amint korábban említettük, a PL / SQL széles választékát kínálja a hatékony, magas szintű karakterláncfunkcióknak a programozó számára, hogy információt szerezzen a vonalakról és módosítsa tartalmukat. A következő lista ötletet ad a képességeikről és a szintaxisukról. Az egyes funkciókról szóló teljes információért olvassa el az Oracle SQL referenciakönyvtárát.

  • ASCII (szimbólum) a megadott szimbólum numerikus kódját (számát) adja meg az adatbáziskészletben.
  • Az ASCIISTH (LINE1) bármilyen karakterkészletben egy karakterláncot kap, és átalakítja az ASCII-szimbólum-karakterláncra. Az ASCII kódolásban hiányzó összes karakter a XXXX formában jelenik meg, ahol az XXXX egy szimbólumkód az Unicode-ban.

A Unicode és a karakterek kódexéről való tájékoztatáshoz forduljon a http://unicode.org webhelyről.

  • CHR (kód)
    Visszaadja a Varchar2 típusú szimbólumot (hossz 1), amely megfelel a megadott kódnak. A függvény fordított az ASCII funkció tekintetében. Van egyfajta, kényelmes, ha a nemzeti szimbólumkészletekben dolgozik:
CHR (nchar_cs kód segítségével)

Visszaadja az NVARCHAR2 típusának szimbólumát a nemzeti karakterkészletből.

  • Összeállítva (Line1)
    Szerezzen egy szimbólumot az Unicode formátumban, és normál formában adja vissza. Például egy "A \\ 0303" abnormalizált reprezentáció meghatározza az "A" szimbólumot a Tilda emeletsel (vagyis a). Hívás levélírás ( "A \\ 0303") értékét adja vissza "\\ 00E3" - hexadecimális szimbólum A Unicode-ban.

Az Oracle9i Release 1-ben az összetett funkciót csak az SQL parancsokból lehetett hívni; A PL / SQL programokban nem lehetett használni. Az Oracle9i kiadásával kezdődően a kompozíció funkció használható pl / sql kifejezésekben is.

  • Concat (String1, Line2)
    Csatlakozik a vonalhoz2 a vonal végéig1. Hasonló eredmény érhető el az 1. kifejezéssel1 || String2. Üzemeltető || Sokkal kényelmesebb, így a CONCAT funkció viszonylag ritka.
  • Konvertálása (line1, set_simvols)
    A karakterláncot egy adott karakterkészletre beállított adatbázis-szimbólumból konvertálja. Híváskor beállíthatja a forráskészlet karakterkészletét is:

Konvertálása (string1, end_naboting, source_nab)

  • Bomlik (Line1)
    Egy sztringet kap az Unicode-ban, és visszatér egy olyan karakterláncot, amelyben az összes kompozit karakter lebomlik az elemekre. A függvény fordított a kompozícióra. Például a bomlási hívás visszaadja az "A ~" karakterláncot (lásd: Compose).

Ennek a funkciónak két fajta van:

  • Bomlik (string1 canonical)
    Canonical bomlást végez; A kapott eredmény visszaállítható a híváskészítéssel. Alapértelmezés szerint.
  • Bomlik (Line1)
    A bomlást az úgynevezett kompatibilitási módban végzik. A hívás helyreállítása lehetetlen lehet.

A bomlási funkció, mint például a kompozíció, nem hívható közvetlenül az Oracle9i kiadási PL / SQL kifejezésekben; Ezt az SQL utasításokat kell hívni. Az Oracle9i kiadás 2-el, ez a korlátozás eltávolításra került.

  • Legnagyobb (string1, line2, ...)
    Egy vagy több sort kap, és visszatér egy olyan sztringet, amely az utóbbi (vagyis a legnagyobb), amikor a bemeneti sorok növekvő sorrendje. Továbbá, nézze meg a legkevésbé a legkevésbé inverz a legkevésbé.
  • Initcap (Line1)
    Megváltoztatja a sztring argumentum szimbólumainak nyilvántartását, lefordítva a vonal minden szavának első betűjét a nagybetűkre, és a fennmaradó betűk az alacsonyabbak. A szó olyan karaktersorozatnak számít, amely a fennmaradó szimbólumoktól elválasztott karakterek, vagy olyan szimbólum, amely nem alfanumerikus (például, # vagy _). Például az initcap hívás ("ez alacsonyabb") adja az eredményt "Ez alacsonyabb".
  • Instr (String1, Line2)
    Visszaadja azt a pozíciót, amellyel a vonal2 a karakterláncban szerepel1; Ha a bejegyzés nem észlelhető, akkor a függvény visszatér 0.

A funkció számos fajtája létezik:

  • Instr (Line11, Line2, iniciply_position)
    A String2-hez a karakterláncban1 az utolsó paraméter által megadott pozícióból kezdődik. Alapértelmezés szerint a keresés az 1. pozícióból kezdődik, így az Instr (String1, String2, 1) hívás egyenértékű egy instrad hívással (string1, string2).
  • Instr (string1, line22, negatív_nachable_position)
    A kezdeti pozíció eltolódása nem az elejétől, hanem a végsorozattól1.
  • Instr (STRING1, LINE22, INITIAL_POSITION, N)
    Megtalálja a String2 N-E bejegyzését, kezdve egy adott kezdeti pozícióval.
  • Instr (string1, line22, negatív_nachable_position, n)
    Megtalálja a LINE2 N-E bejegyzését, a megadott kezdeti helyzetből a vonal végétől1.

Az Instr Funkció a karakterlánc karaktereként tartja. Az instrb, az instr2 és az instr4 fajtái a bájtok, kódegységek (kódegységek) vagy kód indexek (kódpontok) szekvenciájaként tekinthetők meg. Számos Intru a karakterláncot az Unicode teljes szimbólumainak sorrendjének tekinti. Például az "A \\ 0303" karakterlánc, amely egy lebontott egyenértékű "\\ 00E3" vagy A, egy karakternek tekinthető. Éppen ellenkezőleg, az Instr funkció "A \\ 0303" -ként két karakterből áll.

  • Legalábbis (string1, line2, ...)
    Kap egy vagy több sort, és visszaad egy olyan sztringet, amely az első (azaz a legkisebb), amikor a bemeneti sorok növekedése. Lásd még a legkevésbé a legnagyobb funkció leírását is.
  • Hossz (Line1)
    Visszaadja a karakterlánc karakterek számát. A hosszúságú, hosszúsága, hossza2 és hossza4 visszaadja az Unicode bájtok, kódegységek vagy kódindexek (kódpontok) számát. A különböző Lengthc számát adja vissza Unicode teljes szimbólumok normalizáltuk, amennyire csak lehetséges (vagyis a konverziós „A \\ 0303” a „\\ 00E3”).

A hosszminőség általában nem tér vissza nulla. Emlékezzünk vissza, hogy az Oracle úgy véli, hogy egy üres string (") NULL, így a hossz hívás (" ") valójában megegyezik a null hosszának megszerzésének kísérletével; Ennek eredménye is egyenlő a null. Az egyetlen kivétel megtalálható, ha hosszat alkalmazza a clob típusra. A CLOB típus tartalmazhat 0 bájtot, és ugyanakkor eltér a nulltól. Ebben az esetben a hosszúság visszatér 0.

  • Alacsonyabb (string1)
    Átalakítja a megadott sor összes betétét a kisbetűkkel. A függvény fordított felső. A visszatérési érték típusa megegyezik a bemeneti adatok típusával (char, varchar2, clob). Lásd még NLS_Lower.
  • Lpad (line1, final_dlin)
    Visszaadja a karakterlánc értékét1, kiegészítve a bal oldali helyeken a végső_dlinbe. A funkció a következő fajta van:
  • Lpad (line1, final_dlin, aggregátum)
    A megfelelő mennyiségű teljes vagy részleges bejegyzéshez csatlakozik ahhoz, hogy a karakterlánc teljes hossza elérte az EREDAL_DLL-t. Például egy hívás lpad ("Boldog karácsonyt!", 25, "ho!") Visszaadja az eredményt "Ho! Ho! Hmery Christmas!".
  • ? Ltrim (Line1)
    Eltávolítja a helyeket a bal oldali vonalból1. Lásd még a Trim funkciók (ISO szabvány) és a RTRIM leírásait is. A funkció a következő fajta van:
  • Ltrim (Line1, eltávolítható_nab
    Eltávolítja a karakterláncban lévő karakterláncban szereplő karaktereket, a vonal bal szélétől1.
  • Nchr (kód)
    Visszaadja az NVARCHAR2 típusú szimbólumot (1. hossza), amely megfelel a megadott kódnak. A CHR funkció az NCHAR_CS-t használó állapotban ugyanazt a funkciót alkalmazza, mint NCHR.
  • Nls_initcap (string1)
    Visszaadja a változat a string1, amely utal a Nvarchar2 vagy nchar típusú, amelyben az első betűje minden szó lefordított nagybetű, a többi betűk az alsó. A funkció visszaadja a Varchar2 típus értékét. A "Word" úgy tekinthető, hogy a maradék szimbólumoktól elválasztott karakterek szekvenciája vagy szimbóluma, amely nem alfanumerikus.

Beállíthatja az "első betű" meghatározását érintő válogatási rendet:

  • Nls_initcap (string1, "nls_sort \u003d szabály")
    Ebben a szintaxis formában, a relatív szabály egyike a megengedett nevét a rendezési szabályok felsorolt \u200b\u200bOracle Database Globalizációs Support Guide útmutatót, függelék, a „nyelvi rendezi”.

A következő példa azt mutatja, hogy az initcap funkció eltér az NLS_INITCAP-tól:

Kezdődik a dbms_output.put_line (initcap ("ijzer")); Dbms_output.put_line (NLS_INITCAP ("Izzer", "nls_sort \u003d xdutch")); Vége; Eredmény: Izzer Izzer

A holland nyelven, a karakterek sorrendje? Egy karakternek tekintik. A NLS_INITCAP funkció felismeri ezt a körülményt, amikor meghatározza a NLS_SORT szabály és helyesen alakítja a karaktert a szó „zer” ( „vas” Hollandia).

  • NLS_LOWER (string1) és NLS_LOWER (1. sora, „NLS_SORT \u003d rule_sortion”) Eredménye string1 alakítjuk az alsó regiszter szabályai szerint a megadott nyelv. Az NLS_SORT befolyásolhatja az átváltási eredményt, az NLS_INITCAP funkció leírása.
  • Nls_upper (line1) és nls_upper (sztring1 „NLS_SORT \u003d rule_r_sortion”) Eredménye string1 alakítjuk a felső regiszter szabályai szerint a megadott nyelv. Az NLS_SORT befolyásolhatja az átváltási eredményt, az NLS_INITCAP funkció leírása.
  • NLSSORT (line1) és NLSSORT (1. sora, „NLS_SORT \u003d Válogató szabály”) Visszaadja egy string bájtok, hogy lehet használni, hogy rendezze a karakterlánc értékét szabályai szerint a megadott nyelv. A karakterlánc RAW formátumban visszatér. Például két sor összehasonlítása a francia nyelv szabályai szerint a következőképpen történik: ha NLSSort (X, "NLS_SORT \u003d XFRENCH")\u003e NLSSORT (Y, "NLS_SORT \u003d XFRENCH"), akkor ... ha a második A paraméter nincs megadva, a funkció az ülésre kijelölt alapértelmezett válogatási sorrendet használja. A szabályok teljes listáját az Oracle Database Globalization Support Guide, a A. függelék, a "nyelvi fajok" szakasz tartalmazza.
  • REGEXP_COUNT, REGEXP_INSTR, REGEXP_LIKE, REGEXP_REPLACE, REGEXP_SUBSTR leírását e funkciók tervezték, hogy a reguláris kifejezések lehet tanulmányozni.
  • Cserélje ki (Line1, kívánt_stroke, csere) visszaadja a kapott karakterláncot a kívánt_stroke összes előfordulásainak cseréjéhez a csere karakterlánc karakterében. A Cserélő funkció használható az adott aljzat minden előfordulásának egy utasításban történő cseréjére.
  • Cserélje ki (line1, kívánt_stalk)
    Visszaadja a kapott karakterláncot a kívánt_stroke összes előfordulásának eltávolításának eredményeként1.
  • Rpad (Line11, final_dlin)
    Visszaadja a karakterlánc értékét1, kiegészítve a megfelelő helyeken a Final_Dlinbe. A funkció a következő fajta van:
  • Rpad (line1, final_dlin, aggregátum)
    A megfelelő mennyiségű teljes vagy részleges bejegyzéshez csatlakozik ahhoz, hogy a karakterlánc teljes hossza elérte az EREDAL_DLL-t. Rpad hívás ("Boldog karácsonyt!", 25, "ho!") Visszaadja az eredményt "Boldog Karácsonyt! Ho! Ho!".

Az RPAD funkció kiegészíti a jobb oldali karakterláncot, és az LPAD funkció párja balra van.

  • Rtrim (Line1)
    Eltávolítja a szóközöket a karakterlánc jobb széléről1. Lásd még a Trim funkciók (ISO szabvány) és az LTRIM leírásait is. A funkció a következő fajta van:
  • Rtrim (string1, deleted_nabot)
    Eltávolítja az eltávolított karakterláncban szereplő karaktereket, a vonal jobb szélétől1.
  • Soundex (Line1)
    Visszatér egy karakterláncot az érv "fonetikai ábrázolásával".
    Példa:
Soundex ("Smith") -\u003e "S530" Soundex ("Smythe") -\u003e "S530" Soundex ("Smith Smith") -\u003e "S532" Soundex ("Smith Z") -\u003e "S532" Soundex ("S532" Feuerstein ") -\u003e" F623 "Soundex (" Feuerst ") -\u003e" F623 "

A Soundex funkció használatakor több szabályt kell emlékezni:

  • A Soundex érték mindig az első bemeneti vonallal kezdődik.
  • A visszatérési értéket csak az első öt kononáns a karakterláncban generálja.
  • A digitális rész kiszámításához a Soundex csak kononánsokat használ. A vonalon lévő összes magánhangzót figyelmen kívül hagyják.
  • A Soundex funkció figyelmen kívül hagyja a szimbólum-nyilvántartást; A felső és alsó regiszter betűire ugyanazt a hangexértékeket generálják.

A Soundex funkció hasznos olyan lekérdezésekhez, amelyekben az adatbázisban szereplő érték pontos írása ismeretlen, vagy nem lehet könnyen feltétlenül.

A Soundex algoritmus az angol nyelvre összpontosít; Más nyelveken rosszul működhet (vagy egyáltalán nem működik).

  • Substr (Line1, inicipial_position, hossz)
    Visszaadja az aljzatot a String1-ről, amely az inicial_pozícióval kezdődik, és adott hosszúságú. Ha a vonal végéig tartó karakterek száma kevesebb lesz, mint a hossz, az összes karakter a kezdeti pozícióból a vonal vége előtt visszakerül. A funkció a következő fajtákat tartalmazza:
  • SUBTRE (LINE1, INITIBLE_POSITION)
    Adja meg az összes karaktert az inicial_pozícióból a vonal végéig1.
  • Substr (Line1, negatív_nachable_position, hossz)
    Az aljzat kezdeti helyzetét a vonal végétől számítjuk.
  • Substr (Line1, negatív_nachable_position)
    Visszaadja a legújabb abs (negatív_nachable_position) húrokat.

Az SUPTR funkció a karakterlánc karaktereként tartja. A SUBTRB, SUBTRB, SUBTR2 és SUBTR4 Nézze meg a karakterláncot a bájtok sorrendjeként, kódegységek (kódpontok) Unicode, illetve. Az SUBTRC típus a karakterláncot a Unicode teljes szimbólumainak sorrendjévé teszi. Például az "A \\ 0303" karakterlánc, amely egy lebontott egyenértékű "\\ 00E3" vagy A, egy karakternek tekinthető. Éppen ellenkezőleg, az SUPTR funkció "A \\ 0303" -ként két karakterből áll.

  • To_char (national_simvol_dany)
    Átalakítja az adatokat egy nemzeti szimbólumból, amely egyenértékű nézetre van szükség egy adatbázis szimbólumkészletben. Lásd még: to_nchar.

A TO_CHER funkció a dátum / idő és a számok konvertálására is használható az állandó formában.

  • To_multi_byte (Line1)
    Konvertálja az egybájtos karaktereket a többszörös ekvivalensekbe. Néhány multibyte kódolásban, és mindenekelőtt az UTF-8, több lehetőség lehet egy karakter ábrázolására. Például az UTF-8-ban a "g" betű bemutatása 1-4 bájtot tartalmazhat. Ahhoz, hogy egybájtos nézetről a Multibyte-re menjen, a TO_Multi_byte funkciót használják. Ez a funkció a to_single_byte felé fordított.
  • To_nchar (Symbols_v_Nabel__Data)
    Átalakítja adatbázisból szimbólum készlet egy egyenértékű nézetben egy nemzeti karakterkészletet. Lásd még: To_Char és fordítás ... használata.

A TO_NHAR funkció a dátum / idő és a számok átalakítására is használható a párolt formára.

  • To_single_byte (Line1)
    A MultiByte karaktereket az egybájtos ekvivalensekbe konvertálja. A funkció hátra fordul a TO_Multi_byte.
  • Fordítás (Line1, Burning_Nabot, Set_Names)
    Az 1. sorban az 1. sorban helyettesíti a kívánt karakterből származó karakter, a tárcsázás megfelelő szimbólumát. Példa:
Fordítás ("ABCD", "AB", "12") -\u003e "12CD"

Ha a kívánt_nabon több karaktert tartalmaz, mint egy kiválasztott, "extra" szimbólumok, amelyek nem felelnek meg a sorrendben, nem szerepelnek az eredményben. Példa:

Fordítás ("ABCDEFG", "ABCD", "ZYX") -\u003e "Zyxefg"

A "D" betű törlődik, mert jelen van az Artistic_Nabloral-ban, de nincs egyenértékű a készletben. A Fordítás funkció helyettesíti az egyes karaktereket, és a csere funkció teljes sor.

  • Fordítás (Char_cs szöveg) és fordítás (szöveg használata nchar_cs)
    A karakteradatok konvertálása egy adatbázis-szimbólumkészlethez (char_cs) vagy egy nemzeti karakterkészlet (nchar_cs). A kimeneti adattípus Varchar2 vagy Nvarchar2 lesz, attól függően, hogy az adatbázis karakterek vagy egy nemzeti karakterkészlet átalakítása.

A Fordítás funkció ... Az ISO szabvány szerint az egyik SQL funkció. Az Oracle9i kiadásával kezdődően egyszerűen hozzárendelheti a varchar2 változó típusú Nvarchar2 értékét, és fordítva - a rendszer implicit módon elvégzi a kívánt konverziót. Ha kifejezetten átalakítást szeretne végrehajtani, használja a To_Char és a_nchar funkciókat, hogy átalakítsa a szöveget egy adatbázis-szimbólumkészletre és egy nemzeti karakterkészletre. Az Oracle azt javasolja, hogy a megadott funkciókat a lefordítás helyett ... használjon, mert támogatják az adatbeviteli típusok szélesebb készletét.

  • TRIM (FROT LINE1)
    Visszaadja a kapott karakterláncot az összes kezdeti és végleges hiányosságok sorából eltávolított eltávolítás következtében. A funkció a következő fajtákat tartalmazza:
  • Trim (vezet ...)
    Csak kezdeti rések törlése.
  • Trim (Trailing from ...)
    Csak végtelen hiányosságok törlése.
  • Trim (mind ...)
    Az indítás és a véges terek eltávolítása (alapértelmezés szerint).
  • Trim (... eltávolítható_simális karakterlánc )1)
    Egy eltávolítható_simil előfordulásainak eltávolítása a programozó kiválasztásához.

A Trim funkció engedélyezve volt az Oracle8i-ban, hogy teljesebb kompatibilitást biztosítson az ISO SQL-vel. Ez ötvözi az Ltrim és az RTRIM funkcionalitását, de különbözik tőlük az a tény, hogy a trim, amely lehetővé teszi, hogy csak egy eltávolítható szimbólumot állítson be, míg az Ltrim és a RTRIM használatakor egy távoli karakterkészletet állíthat be.

  • UNISR (LINE1)
    Visszaadja az Unicode-hoz konvertált karakterláncot; Így a függvény fordított az ASCIISTH-re. A bemeneti sorban nem nyomtatható karakterek ábrázolásához a Record \\ xxxx, ahol az xxxx a szimbólumkód index az Unicode-ban. Példa:
Kezdődik a dbms_output.put_line (UNISR ("Euro Sign \\ 20Ac")); Vége; Euro jel €.

A funkció kényelmes hozzáférést biztosít az összes Unicode karakterhez, beleértve azokat is, amelyeket nem lehet közvetlenül belépni a billentyűzetről.

  • Felső (line1)
    Átalakítja az adott karakterlánc összes betétét a felső regiszterre. A visszatérési érték típusa megegyezik a bemeneti adatok típusával (char, varchar2, clob). A függvény hátrányos helyzetben van. Lásd még NLS_Upper.

Az ebben a részben megvitatott funkciók jellemzően a beépített PL / SQL kódot csomagolják, és az Oracle-t tartalmazzák. Néhány fogantyú numerikus, karakterértékek és dátumértékek, mások átalakítják az adatokat különböző típusú adatokra. A funkciók a beágyazott hívásokat használhatják, és egyes funkciókat úgy tervezték, hogy a null értékkel dolgozzon. Az eset és a dekódolási feltételek eltérő eredményt jeleníthetnek meg az adatértékektől függően, amely lehetővé teszi az SQL kérés összefüggésében

A funkciók két nagy csoportra oszthatók: azok, amelyek kiszámítják az értékeket az egyes sorok, és azok, amelyek végrehajtják az egyik számítást minden vonalra. Megnézzük a konverziós funkciókat, a szimbolikus adatok, a numerikus adatok és az adattípusok működésének funkcióit.

A funkció meghatározása

A funkció olyan program, amely (de adott esetben) beviteli paraméterek, elvégezheti a műveleteket, és visszaküldheti a szó szerinti értéket. A funkció csak egy hívás értéket ad vissza.

Három fontos alkotóelem egy függvényt határoz meg. Az első a bemeneti paraméterek listája. Meghatározza a nulla vagy több paramétert, amely továbbítható feldolgozásra. Ezek a paraméterek vagy argumentumok opcionálisak lehetnek (alapértelmezés szerint) és különböző adattípusok. A második komponens az ütközési eredmény adatainak típusa. Végrehajtás után az előre definiált adattípusok csak egy értékét adja vissza a funkció. A harmadik komponens körülveszi a feldolgozó részek által ellátandó funkció, és tartalmaz egy programkódot, amely együttműködik a bemeneti paraméterek, végrehajtja az alábbi számításokat, és visszatér az értéket.

A funkciót gyakran úgy írják le, mint egy fekete doboz, amely a bemeneti adatokat elvégzi, valamit tesz, és visszaadja az eredményt. Ahelyett, hogy a funkciók elemeire összpontosítana, hasznosabb lehet megérteni, hogy mely funkciók biztosítják a beépített funkciókat.

Calling funkciók lehet ágyazni, például mint F1 (X, Y, F2 (A, B), Z), ahol F2 funkciók két bemeneti paraméterek, és visszatér a harmadik a négy paraméter az F1 függvény. A funkciók bármely adattípusokkal dolgozhatnak: a leggyakrabban használt szimbolikus és numerikus adatok, valamint az adattípus-adatok. Ezek a funkcióparaméterek lehetnek oszlopok vagy kifejezések.

Például figyelembe veheti a személy korát kiszámító funkciót. A korszak csak egy paramétert, születésnapot vesz igénybe. Az eredményt az életkor függvénye visszaküldi az életkorú ember száma. A fekete doboz számításai a bemeneti paraméterként továbbított idő és születésnap közötti különbség különbséget kapnak.

A funkciók típusai

A funkciók globálisan két kategóriába sorolhatók: feldolgozási string (kisbetűs funkciók) és feldolgozási sorok beállítása (csoportosítási funkciók). Ez az elosztás nagyon fontos, hogy megértsük a különféle funkciókat, ahol különböző funkciókat használnak.

Vonalfunkciók

Többféle kisbetűs funkciók állnak rendelkezésre, beleértve a futás funkciók, működés funkciók számok, dátumok típusú átalakítás funkciók, és az általános funkciókat. Ezek a funkciók az idő alatt egy sorot kezelnek a készletből. Ha a lekérdezés kiválaszt tíz vonósok, a funkció fog működni tízszer, egy alkalommal minden sorban az esetleges alkalmazása sor oszlop értékeit a bemeneti függvény paramétereit.

A következő lekérdezés két oszlopot választ a régiók táblázatából és kifejezéséből a hosszúságú funkcióval és a régió_neve oszlop segítségével

válasszon Régió_ID, Region_Name, Hossz (Region_Name) a régiókból;

A régió_neve oszlopérték értékét a régiók táblázatának négy sorának mindegyikére számítják ki; A funkciót négyszer végezzük, a szó szerinti értéket minden alkalommal visszaküldi.

A vonalfüggvények működnek az adatelemekkel a mintavételhez és formázáshoz a kijelző előtt. A kisbetűs függvény bemeneti értékei lehetnek felhasználó által meghatározott állandó vagy szó szerinti, oszlopadatok, változók vagy kifejezések, esetleg beágyazott kisbetűs funkciók stb. A beágyazott hívásokat gyakran használják. A funkciók visszaállíthatják az adattípus értékét az adattípusok típusától a bemeneti paraméterek. A megszüntetési kérelem azt mutatja, hogy a hosszfunkció hogyan veszi meg a karakterlánc bemeneti értékét, és visszaadja a számot.

A kiválasztott részben szereplő funkciók mellett a kisbetűs funkciók a honnan és a sorrendben is használhatók.

Adatkészlet funkciók

Amint azt a névből kitalálhatja, ezek a funkciók több sort működnek. A multitro-funkció tipikus használata a numerikus oszlop mennyisége vagy átlagos értékének kiszámítása, vagy az eredmények számának számítása. Az ilyen funkciókat néha csoportosító funkcióknak nevezik, és a következő fejezetben fogjuk megnézni őket.

Funkciók használata

Az asztalok adatait különböző forrásokból lehet kitölteni: programok, kripták és így tovább. Ne támaszkodjon arra, hogy a szimbolikus adatokat előre meghatározott nyilvántartásba hozza. A regisztert megváltoztató karakterláncok két fontos feladatra vonatkoznak. Először is használhatók, hogy megváltoztassák az adatregisztert mentési vagy kimeneti információkat, vagy ahol a rugalmasabb keresés feltételei vannak. Sokkal könnyebben kereshet egy vezetékes regiszter használatával, a felső és alsó regiszter összes kombinációjának ellenőrzésének mennyiségét. Ne feledje, hogy a funkciók hívása nem változtatja meg az asztalban tárolt adatokat. A lekérdezési eredmény eredményét konvertálják.

A bemeneti paraméterek lehetnek karakterek, adattípus oszlopok, szimbolikus kifejezések vagy számok és időpontok (amelyek implicit módon stringekké alakulnak át).

Alsó funkció

Az alsó funkció felváltja a regisztrációs nyilvántartás összes szimbólumát a vonalregiszter egyenértékű szimbólumaihoz. Syntaqis funkció alacsonyabb (karakterlánc). Tekintsünk egy példát egy olyan kérésre, amely ezeket a funkciókat használja.

válasszon alacsonyabb (100 + 100), alacsonyabb ('SQL'), alacsonyabb (sysdate) kettős

Mozogunk, hogy az aktuális dátum 2015. december 17. A lekérdezés eredménye a "200", "SQL" és '17-DEC-2015 vonalak lesz. A numerikus kifejezést és a dátumot implicit módon átalakítják a karakterláncra, mielőtt az alsó funkciót hívják.

A következő példában az alsó funkciót olyan sorok keresésére használják, ahol az "U" és az 'R' betűk bármelyik regiszterben megyek egymásba

válassza a FIRST_NAME, LAST_NAME, LAST_NAME (LAST_NAME) lehetőséget az alkalmazottaktól

ahol alacsonyabb (last_name), mint a "% ur%";

Hasonló kérést írhat az alsó funkció használata nélkül. Például

válassza a FIRST_NAME lehetőséget, last_name a munkavállalóktól

ahol a last_name olyan, mint a "% ur%" vagy a last_name, mint a "% ur%"

vagy last_name, mint a "% ur%" vagy a last_name, mint a '% ur%'

Ez a kérés működik, de túlságosan nehézkes, és a számok száma vagy az üzemeltetők exponenciálisan nőnek, ahogy a sor növekszik.

Felsőfunkció

Felsőfunkció Az alsó funkció logikai ellentéte, és felváltja az összes kisbetűs karaktereket a tőkeegyenlékenységükön. Szintaxis funkció - Felső (karakterlánc). Fontolja meg a példát

válasszon * azokat az országokat, ahol a felső (country_name) tetszik, mint "% u% s%%";

Ez a lekérdezés sorait az országok, ahol táblázat tartalmazza COUNTRY_NAME betűk „u”, „s”, „a” bármely regiszterben ebben a sorrendben.

Initcap funkció

Az initcap funkció gyakran az adatok megjelenítésére szolgál. Az egyes szavak első karakterei a sorban a felső regiszterre alakulnak át, az összes többi karaktert kisbetűvel konvertálják. A szó alatt olyan karakterkészletet jelent, amelyek nem tartalmaznak szóközöket és specialitásokat. A tér, a szemhéj szimbólum, valamint speciális miszterek, mint a százalékos jel, felkiáltójel, dollárjelek osztóknak tekintendők. Az InitCap funkció egy paramétert és initcap szintaxist (karakterláncot) kap. Az alábbi példa az initcap funkció használatának példáját mutatja.

válassza ki az initcapot ("init sapka vagy init_cap vagy init_cap vagy init% sapka) kettős

A kérés eredménye lesz a vonal init sapka vagy init_cap vagy init% sapka

Futási funkciók használata

A munkák az Oracle által biztosított legerősebb jellemzőkkel rendelkeznek. Nagyon hasznos és érthetőek szinte részletes magyarázatok nélkül, és a különböző programozók gyakran használják az adatok feldolgozása során. Ezen funkciók mellékelt kihívásait gyakran használják. A CONCAT funkció helyett a társulási operátor használható. A hossz, az instr, az alsó és helyettesítő funkciók kiegészíthetik egymást, valamint rpadot, lpadot és berendezéseket.

Concat funkció

A CONCAT funkció két literit, oszlopot vagy kifejezést ötvözi, hogy egy nagy kifejezést készítsen. A CONCAT funkció két bemeneti paraméterrel rendelkezik. A szintaxis a Concat funkció (karakterlánc1, karakterlánc2) adott karakterlánc1 és karakterlánc2 lehet szó, oszlop vagy amelyek expressziója szimbólum szó. A következő példa a CONCAT funkció használatát mutatja.

a CONCAT kiválasztása ("ma:", sysdate) kettős

A második funkcióparaméter a sysdate funkció, amely visszaadja az aktuális rendszeridőt. Az érték átalakul a karakterláncra, és az első paraméter hozzá van kapcsolva. Ha a jelenlegi rendszer dátuma 2015. december 17., a lekérdezés visszaadja a "mai napot: 17-dec-2015" karakterlánc.

Fontolja meg, hogyan kell használni a funkciót három elem kombinálásához. Mivel a CONCAT funkció csak két bemeneti paramétert kaphat, csak két elemet lehet egyesíteni. Ebben az esetben a funkcióhívást a funkcióhívás funkció függvényében használhatja. Ezután a kérés megjelenik

válassza ki a CONCAT ("külső1", CONCAT ('INNER1' ',' INNER2 ') lehetőséget) a kettős;

Az első funkciónak két paramétere van: az első paraméter a szó szerinti "külső1", és a második paraméter a csatolt CONCAT funkció. A második funkció két paramétert vesz fel: szó szerinti "Inner1" és szó szerinti "Inner2". Ennek a kérésnek az eredménye lesz a "Külső1 Inner1 Inner 2" karakterlánc. A befektetett funkciók egy kicsit később fontosak.

Hossz

A hosszúság függvénye visszaadja a karakterláncot alkotó karakterek számát. A szóközöket, táblázatot és speciális karaktereket figyelembe veszik a hosszúság funkcióval. A funkciónak van egy paramétere és szintaktikai hossza (karakterlánc). Fontolja meg a kérést

válasszon * azokat az országokat, ahol hossza (country_name)\u003e 10;

A hosszúság funkciót használják arra, hogy kiválaszthassák azokat az országokat, amelyekben a hossza hossza nagyobb, mint tíz karakter.

Rpad funkciók és lpad.

Az Árpád és LPAD adják vissza a rögzített hosszúságú karakterlánc, és ha szükséges, kiegészítik a forrás érték a konkrét jelek balra vagy jobbra. A hozzáadott karakterek szó szerinti, az oszlop, az expresszió, a tér (alapértelmezett érték), a táblázatok és a speciális karakterek értéke. Az LPAD és az RPAD funkciók három bemeneti paramétert és lpad szintaxist vehetnek igénybe ( s., N.P.) és rpad ( s., N.P.) hol s. - a feldolgozáshoz szükséges karakterlánc értéke, n. - az eredmény karaktereinek száma és p. - szimbólumok hozzáadásához. Ha lpadot használ, akkor szimbólumok p. Add hozzá balra a n hosszig. Ha az rpad igaza van. Ne feledje, hogy ha a hossz s. Több mint hossza n. - akkor az eredmény lesz az első n. Az érték szimbólumai s.. Fontolja meg a 10-1. Ábrán látható lekérdezéseket

10-1 ábra - RPAD és LPAD funkciók használata

Az első lekérdezés nem változtatja meg az adatokat, és az eredmény nem nagyon olvasható a második kérelem eredményéhez képest. Az RPAD-t olyan szóközöket adunk hozzá, ahol a First_Name és a Last_Name számára szükséges, hogy az összes érték 18 karakterből állt-e, és az LPAD-t a szóközök hozzáadása a fizetés értékének elejére addig, amíg a 6 karakter hossza nem éri el.

Vágási szolgáltatás

A Trim funkció eltávolítja a karaktereket, és elindítja vagy befejezi a vonalat, hogy potenciálisan rövidebb legyen. A funkció elfogadja a szükséges paramétert és opcionális. Trim funkció szintaxis ([ .| Vezető| Mindkettő] trimstring. tól től. húr). Paraméter bemeneti karakterlánc (ok). A következő elemek listázzák a paramétereket

  • Trim (ek) hézagok a sor végén a sor végén
  • A TrimString S) eltávolítja a trimgstring szimbólumokat a karakterlánc végén
  • A TrimString S) eltávolítja a vonal elején a trimgstring karaktereket
  • Trimstring a s) vagy a trimstring-ből s) Távolítsa el az összes trimstring karaktert az elején és a sor végén

válassza ki a trimot (mind a '*' '' ****************),

trim (vezető "*" a "**** rejtett ****"),

a "**** rejtett ****" -től) a kettős;

Visszatérés "rejtett", "Hidden ****", és "**** rejtett". Kérjük, vegye figyelembe, hogy csak egy karakter megadásával minden karaktert megtisztítanak, ha ismételten megismételték.

Instr. Funkció

Az Instr funkció egy sztringet keres. Számát adja jelöli a pozíciót, ahol az N-Idge kezdődik, kezdve a keresési helyzetben kezdetéhez képest a húr. Ha az aljzat nem található a karakterláncban - visszatér 0.

Az Instr funkciónak két paramétere van kötelező és két opcióval. A szintaxis funkció instr (forrásszöveg, keresési karakterlánc ,,). A keresési indulási pozíció alapértelmezett értéke \u003d 1 vagy más szóval, a forrás karakterlánc kezdete. Az N előfordulás alapértelmezett értéke \u003d 1 vagy az első bejegyzés. Fontolja meg néhány példát

Lekérdezés 1: SELECT INSTER ('1 # 3 # 5 # 7 # 9 #', '#') kettős;

Query 2: Select instr ('1 # 3 # 5 # 7 # 7 # 9 #', '# #', 5) kettős;

Lekérdezés 3: Válassza az Instr ('1 # 3 # 5 # 7 # 9 #', '# #', 3, 4) kettős;

Az első kérés a hash-címke első bejegyzését keresi a karakterláncban, és visszaadja a 2. értéket. A második kérés egy hash-címkét keres egy karakterláncban az ötödik szimbólumból, és megtalálja az első bejegyzést 6 karakterből. A harmadik kérés a HASH-címke negyedik bejegyzését keresi a harmadik szimbólumból kezdve, és 10. helyen találja meg.

Substr funkció

A substr függvény helyettesíti egy bizonyos hosszúságú a forrás karakterlánc kiindulva egy adott helyzetben. Ha a kezdeti pozíció nagyobb, mint a forrásvonal hossza - a null értéket visszaküldi. Ha a kezdeti string hossza nem elegendő ahhoz, hogy megkapja a kívánt hosszúság értékét, egy meghatározott pozícióból kiindulva, a sor a forrás karakterből származó vonal része a vonal végéig visszatért.

A substr függvény három paramétert, az első két kötelező és SUBSTR szintaxis (Forrás String, Start Position,). A karakterek alapértelmezett értéke az extraháláshoz \u003d a forrásszöveg és a kezdési helyzet közötti különbség. Tekintsük a következő példákat

Lekérdezés 1: SELECT SUBTRE ('1 # 3 # 5 # 7 # 9 #', 5) a kettős;

Query 2: Select Substr ('1 # 3 # 5 # 7 # 9 #', 5, 3) a kettős;

Lekérdezés 3: Select Substr ('1 # 3 # 5 # 7 # 9 #', -3, 2) kettős;

Az 1. kérés visszaadja a szörnyet az 5. pozícióból. Mivel a harmadik paraméter nincs megadva, a karakterek száma megegyezik a forrásvonal hosszával, melyet a kiindulási helyzet mínusz és hat. Az első kérés visszaadja az aljzatot "5 # 7 # 9 #". Kérdés két Három szimbólumot ad vissza az ötödik szimbólumból, és a karakterlánc eredménye "5 # 7" lesz. A lekérdezés három kezdődik egy mínusz három. A negatív kezdeti pozíció azt mondja, hogy az Oracle, hogy a kezdeti pozíció a sor végétől számítódik. Így a kezdeti pozíció a mínusz hossza három és egyenlő 8. A harmadik paraméter két, és visszaadja a "# 9" értéket.

Cserélje ki a funkciót

A Cserélő funkció felváltja a kívánt elem összes bejegyzését a szubsztitúció sorához. Ha a cserélhető tétel hossza nem egyenlő az elem hosszával, amelyhez a cserét kicserélik, a kapott karakterlánc hossza eltér a forrásvonaltól. Ha a kívánt aljzat nem található, a karakterlánc változatlanul kerül vissza. Három paraméter áll rendelkezésre, az első két kötelező és hívásszintaxis helyettesítő (forrássorozat, keresési elem,). Ha egyértelműen nem adjuk meg a Cserélőelem paramétert, a keresési elem összes keresését eltávolítjuk a forrásvonalból. Más szavakkal, cserélje ki az elem egy üres karakterláncot. Ha az összes forrás karakterláncot kicseréli az üres cseréje elemével, akkor nullot ad vissza. Több kérelmet kell figyelembe venni

Lekérdezés 1: Válassza ki a cserét ('1 # 3 # 5 # 9 #', '# #', '-\u003e') kettős

Lekérdezés 2: Válassza ki a Cserélni ('1 # 3 # 5 # 9 #', '#') kettős

Lekérdezés 3: Válassza ki a kicserélést ('#', '#') kettős

Az első lekérdezésben a hash egy karaktert jelez a "-\u003e" helyett. A hash megjelenik a sorban ötször, és kicseréljük, megkapjuk az "1-\u003e 3-\u003e 5-\u003e 7-\u003e 9-\u003e" végső karakterláncot. A 2. kérelem nem jelzi a csere egyértelmű vonalát. Az alapértelmezett érték egy üres karakterlánc, és az eredmény "13579" lesz. A harmadik kérés a NULL-nak vissza fog térni.

Numerikus funkciók használata

Az Oracle-ban számos beépített funkció van a számokkal való munkához. A numerikus funkció és mások közötti lényeges különbség az, hogy ezeket a funkciókat csak a számok paraméterei fogadják, és csak csak számokat adnak vissza. Az Oracle numerikus funkciókat biztosít a trigonometrikus, exponenciális és logaritmikus kifejezésekkel és sok mással. Az egyszerű numerikus kisbetűkre összpontosítunk: kerek, trunc és mod.

Kerek funkció

A kerek funkció a szükséges pontosságtól függően a számot fordítja. A visszatérési érték kerekítve vagy nagy vagy kisebb oldalon, az utolsó számjegy értékétől függően a szükséges kisülésben. Ha az n pontosság értéke, akkor a lekerekített ábra a vessző után N pozícióban lesz, és az érték függ a pozícióban lévő számtól (n + 1). Ha a pontossági érték negatív, akkor a pontosvesszők bal oldalán lévő n kisülés után minden szám 0, és az N érték az N + 1 értéktől függ. Ha az a szám értéke, amelyen a kerekítés 5-nél nagyobb vagy egyenlő, akkor a kerekítés nagy oldalán fordul elő, különben kisebb.

A kerek funkció két bemeneti paramétert és kerek szintaxist kap (forrásszám, tizedes pontosság). A forrásszám lehet bármilyen szám. A tizedes pontossági paraméter határozza meg a kívánt pontosságot és opcionális. Ha ez a paraméter nincs megadva, az alapértelmezett érték 0, ami azt jelenti, hogy szükség van a legközelebbi egész számra.

Fontolja meg a 10-1. Táblázatot a 1601.916 számokért. A pontosság negatív értékei a pont (az egész rész) bal oldalán vannak, amikor a pozitív a pont jobb oldalán (frakcionált rész).

Ha a pontossági értékegység, az érték egy sátorig kerekít. Ha kettő, az érték kerekítve van a második sorrendben stb. A következő kérések megjelenítik ezt a funkciót.

Lekérdezés 1: Válassza ki a kereket (1601,916, 1) a kettős;

2. lekérdezés: Válasszon kereket (1601,916, 2) a kettős;

3 lekérdezés: Válasszon kereket (1601,916, -3) a kettős;

4-es lekérdezés: Válassza ki a kereket (1601,916) a kettős;

Az első kérés az egyiknek megfelelő pontossági paramétert használja, ami azt jelenti, hogy a számot a legközelebbi tizedre kerekítik. Mivel a sejt értéke egyenlő (kevesebb, mint 5), akkor a kerekítés kisebb oldalon kerekít, és a 1601,9 értéket visszaküldi. A második lekérdezés pontossága megegyezik a kétszer, így az érték a cellával van körülvéve. Mivel az ezredrész értéke 6 (amely több mint 5) van, a sejtrész értéke kerekítve van, és visszaadja az 1601,92 értéket. A harmadik kérés pontossági paraméterének értéke mínusz három. Mivel az érték negatív, ez azt jelenti, hogy a kerekítés a pont bal oldalán található harmadik pozíció értékén alapul, a második kategóriában (több száz), és 6. érték 6 óta több mint öt, majd a kerekítés és a visszatérés A 4-es kérelem a pontossági paraméter nélkül működik. Ez azt jelenti, hogy a szám kerekítve a legközelebbi egészre. Mivel a tizedik rész 9, az értéket nagy oldalon kerekítik, és 1602 értéket adnak vissza.

Numerikus funkció Trunc

A Forcuction Trunc csökkenti a szám értékét a pontossági paraméter értéke alapján. A redukció különbözik attól a tényt, hogy egy extra részcsökkentéssel egyszerűen csökkenti, és a fennmaradó számok bekövetkezése nem változik. Ha a pontossági érték negatív, akkor a bemeneti érték a vessző bal oldalán található pozícióra csökken. A Trunch Feature Syntax (forrásszám, tizedes pontosság). A forrásszámparaméter lehet bármely szám, és ez a paraméter szükséges. A tizedes pontossági paraméter meghatározza a kerekítési helyzetet, és nem szükséges, az alapértelmezett érték nulla lesz, ami az egész szám csökkentését jelenti.

Ha a tizedes pontosság értéke egyenlő, akkor a szám a tizedre csökken, ha kettő, akkor századig és így tovább. Tekintsünk több példát a funkció használatára.

Lekérdezés 1: Válassza ki a TRICK (1601,916, 1) kettős;

2. lekérdezés: Válassza ki a TRICK (1601,916, 2) kettős;

3. lekérdezés: Válassza ki a TRICK (1601,916, -3) kettős;

4. lekérdezés: Válassza ki a TRICK (1601,916) kettős;

Érdeklődés 1, pontosságot használnak egymással, ami azt jelenti, hogy az érték csökkenti a tizedre, és visszatér 1601,9-re. A második lekérdezés pontossága kettő, a kezdeti érték századra csökken, és visszatér 1601,91-re. Felhívjuk figyelmét, hogy a kapott érték eltér a visszatérési értéke Round függvény ugyanazokkal a paraméterekkel, mivel hívás esetén Round fog bekövetkezni a nagy oldalsó (6 további 5). A 3. lekérdezési számban negatív számot használ a pontossági paraméter értékévé. A vessző bal oldalán lévő három pozíció azt jelenti, hogy a csökkentés a harmadik kategóriába sorolható (több száz csökken), amint az a 10-1. Táblázatban látható, és a visszatérési érték 1000 lesz. És végül a negyedik kérésben, a A pontosság egyértelműen meghatározatlan, és a kezdeti szám frakcionálja egyértelműen meghatározatlan. Az eredmény 1601 lesz.

Mod funkció

A mod funkció visszaadja az osztály egyensúlyát. Két szám, osztható (a megosztott szám) és az osztó (a megosztott szám) paraméterként definiálódik, és a megosztási művelet kiszámítása. Ha osztható meg osztva az osztóba, akkor visszatérnek nullára, mert nincs maradék. Ha az osztó nulla, akkor a hasadási hiba nem fordul elő nulla, de visszatért a Divi. Ha az osztó több mint megosztható, a Delimi visszatért.

A mod funkció két bemeneti paraméterrel és szintaxisú mod (osztalék, osztó). Az osztalék és az osztó paraméterek lehetnek numerikus literálok, oszlopok vagy kifejezések, és pozitívak vagy negatívak lehetnek. A következő példák a funkció használatát mutatják.

Lekérdezés 1: Válassza a MOD (6, 2) lehetőséget a kettős

2. lekérdezés: Válassza a MOD (5, 3) lehetőséget a kettős

3 lekérdezés: Válassza a MOD (7, 35) lehetőséget a kettős

4. lekérdezés: Válassza a MOD (5.2, 3) lehetőséget a kettős

A lekérdezésben egy 6-os kétre oszlik, amely maradék nélkül van, és visszatér a 0. A lekérdezésben, két 5 osztva 3, az egész rész 1 lesz, és visszaküldi a maradékot. 35. Mivel az osztó több mint osztható - delimi ezek. Teljes rész 0. A négy lekérdezés frakcionált számot használ. Az egész rész lesz, és a maradék 2,2 lesz.

Bármelyik egy-egy kettőre osztható maradék nélkül, bármilyen páratlan szám, amikor a kettő elosztása visszaadja a maradékot. Ezért a mod funkciót gyakran az egyenletes és páratlan számok megkülönböztetésére használják.

Munka dátumokkal

A dátumokkal dolgozó funkciók kényelmes módot kínálnak a dátumokhoz kapcsolódó feladatok megoldására anélkül, hogy figyelembe kellene venniük a főbb éveket, hány napot egy adott hónapban. Először is, megfontoljuk, hogy az adatok típusa és dátumformázását tárolja, valamint a sysdate funkciót. Tekintsük a funkciók a Add_Months, Months_between, Last_Dat, Next_Day, kerek és trunc.

Tárolási időpontok az adatbázisban

Az adatbázis olyan számot tárol, amely képes a század, az év, a hónap és a nap kiszámításának fenntartására, valamint az idő, például az óra, perc és a második információ megőrzésére. Ha egy adat lekérdezés történik, egy bizonyos formázási (maszk) egymásra, és az alapértelmezett maszk jelenik meg a nap folyamán, az első három betű a hónap nevét és két számjegy megjelenítésére évben.

Sysdate funkció

A sysdate funkció nem használja a bemeneti paramétereket, és visszaadja az adatbázis-kiszolgálóra beállított aktuális időt és dátumot. Alapértelmezés szerint a sysdate funkció egy DD-MON-RR dátumot ad vissza, és megjeleníti a kiszolgáló dátumát. Ha a kiszolgáló egy másik időzónában van telepítve, mint az ügyfélgép, akkor a sysdate által visszaadott idő és dátum eltérhet a helyi értékektől az ügyfélgépen. Ezt a kérelmet végrehajthatja, hogy megjelenítse a rendszer dátumát a kiszolgálón.

válassza ki a sysdate-t a kettős

Aritmetikai dátumok felett

Az egyenlet a dátumokkal való munka során a legfontosabb elv kapcsolódik

Dátum1 - Dátum2 \u003d NUM1

A dátum levonható egy másik dátumból. A két dátum közötti különbség a köztük lévő napok számának minősül. Bármely szám, beleértve a frakcionált, hozzáadható vagy levonható a dátumtól. Ebben az összefüggésben a szám a napok száma. A szám és a dátum közötti összeg vagy különbség mindig a dátum. Ez az elv azt jelenti, hogy két dátuma hozzáadását, szorzást vagy megosztását lehetetlen.

Hónapok jellemzője_Között.

A hónapokban a hónapok a két kötelező beviteli paraméter közötti hónapok számát adják vissza. A hónapok szintaxisa_between funkció (dátum1, dátum2). A funkció kiszámítja a dátum1 és dátum közötti különbséget. Ha a dátum1 kisebb, mint a dátum2, akkor negatív számot ad vissza. A visszatérési érték állhat egy egész része tükrözi a hónapok száma két dátum között, és egy töredék részét tükrözi, hogy hány napig és óráig marad (a havi egyenlő 31 nap) levonása után egy egész hónapig. Az egész szám ihletett, ha a legismertebb hónapok napja a megfelelő hónap azonos vagy utolsó napja.

A következő példák a hónapok £ hónapok által használhatók

Lekérdezés 1: Válassza ki a hónapokat_Between (sysdate, sysdate-31) kettős;

Tenyésztésünk, hogy a jelenlegi dátum 2009. április 16., 2009. április 16-án, 2009. április 16-án és 2009. március 16-án. A lekérdezés két implicit módon átalakítja a szó szerinti literálokat DD-Mon-Yyyy formátumban. Mivel az idő egy része elhagyta az Oracle értékét a 00.00.00 idő értékét mindkét dátum esetében. A fucsázás visszaadja az értéket körülbelül 1,03225806. Az eredmény egész része azt jelenti, hogy egy hónapos időpontok között. Február 28-án és március 28 között pontosan egy hónap. Ezután a frakcionált résznek pontosan egy napot kell mutatnia. Az eredmény egy órát és másodpercet tartalmaz, de a mi esetünkben a dátumok időbeli összetevője megegyezik. A 0,03225806-tól 31-ig terjedő szorzás 1, mivel a Monnhs_Between által visszaadott frakcionált rész kiszámítása, lehetővé téve, hogy a hónap pontosan 31 nap. Ezért a három szám száma visszaadja a 32 értéket.

A népszerű hiba az a feltételezés, hogy a visszaküldött adattípus funkció a funkció típusától függ (a dátummal való munkavégzés funkciója vissza kell adnia a dátumot, a sorfeldolgozási funkciókat - karakterláncot). Ez csak a numerikus funkciókra igaz. A szimbolikus funkciók és a dátumok funkció visszaadhatja az adattípus értékét. Például Instr egy szimbolikus funkció, és a Monts_between funkcióját dolgozik a mai napig, de mindketten vissza a számot. Szintén gyakran tévesen oka, hogy a dátumok közötti különbség a dátum, amikor valójában a szám.

Add hozzá a funkciót_Hónapok.

A ADD_MONTHS függvény a dátum kapott hozzáadásával bizonyos számú hónappal a forrás dátumot. Ez a funkció két szükséges paraméterrel és az add_months szintaxist (kezdő dátum, Monnhs száma). A hónapok száma paraméter értéke lehet negatív, akkor a kezdeti érték csökken ezen a hónapok számát és frakció, de csak egy egész része lesz figyelembe venni. A következő három kérés mutatja az add_months funkció használatát.

Az első kérés eredménye 2009. május 7-én ugyanaz lesz a nap, mivel a nap ugyanaz marad, ha lehetséges, és a hónap egyre nő. A második kérelemben a hónapok száma a frakcionált, amelyet figyelmen kívül hagynak, azaz ez a lekérdezés egyenlő az add_months ('31 -dec-2008 ', 2). Két hónap hozzáadása a 2009. február 31-én, de ez a dátum nem létezik, így a hónap utolsó napja visszatért. Az utóbbi például egy negatív számot használunk száma havi hónap, és visszatér a dátum 07-APR-2008, amely tizenkét hónappal korábban, mint a kezdeti érték.

Következő funkció_Nap

A NEXT_DATE funkció a kezdeti dátum után a hét következő legközelebbi napját adja vissza. Ez a funkció két szükséges paraméterrel és szintaxissal rendelkezik next_day (kezdő dátum, a hét napja). Az esemény funkciója az érték, ha a hét meghatározott napja a kezdő dátum után fordul elő. A hét Dae paraméter adható mind a szám, mind a karakterlánc. Megengedett értékeket az NLS_DATE_Languaguaguagua paraméter határozza meg, és az alapértelmezett a hét napjának három első betűje bármely regiszterben (nap, mon stb.) Vagy egész számok, ahol 1 vasárnap, 2 - hétfőn és így tovább. A hét napjainak nevei több mint három szimbólum lehetnek; Például vasárnap naponta, vasárnap, vasárnap. Több kérelmet kell figyelembe venni

2009. január 1. Ez csütörtök. A következő kedden 2009. január 6-án, 2009. január 6-án lesz. A második kérelem 2009. január 7-én, majd január 1-jét követő szerdán visszatér. A harmadik kérés egy számot használ a paraméterként, és ha amerikai értékei vannak telepítve, akkor az ötödik nap csütörtökön. Következő csütörtök január 1-jén, pontosan egy hét - január 8, 2009.

Utolsó funkció_Nap

A Last_day funkció visszaadja az első nap utolsó napjának dátumát. Ez a funkció egy szükséges paramétert és szintaxist igényel Last_day (kezdő dátum). A funkció az eredeti dátum hónapját választja, majd kiszámítja a hónap utolsó napját. A következő kérés 2009. január 31-én fog visszatérni

Kerek funkció Dátumokkal dolgozni

A kerek funkció a dátumértéket a megadott dátum pontosságára fordítja. A visszatérési értéket a lekerekített tétel értékétől függően több vagy több kisebb értékre kerekítik. Ez a funkció egy kötelező paramétert igényel, és lehetővé teszi a kerek funkció egyik opcionális és szintaxisát (forrás dátum). A forrásadat-paraméter bármilyen adattípus típusú lehet. A dátum precíziós formátum paraméter meghatározza a kerekítési szintet, és az alapértelmezett érték a nap. A dátum precíziós formátum paraméter lehet egy évszázad (CC) év Yyyy negyed Q hónap m hetes w nap DD óra hh perc MI.

A század közötti kerekítés egyenértékű, hogy egy egység hozzáadásával az aktuális századhoz. A hónapig a hónapig a legnagyobb, ha a nap több mint 16, egyébként a hónap első napjáig kerekítve lesz. Ha egy-hat kerekítés után egy hónap lesz az év kezdete előtt, különben a következő év elejének időpontja lesz vissza. Fontolja meg a kérést

Tegyük fel, hogy ez a kérés 2009. április 17-én, 00: 05-kor fejeződött be. Először az aktuális dátum kerekítése a nap előtt (a pontossági paraméter egyértelműen nem váltott). Óta 00:05 A nap nem kerekítve a nagy részben. A hét első környezete, amely magában foglalja április 19-én - Ez 2009. április 15. A harmadik oszlop jön a hónapban a következő (a 17 több mint 16), és visszatér május 01 2009. A félnapos oszlop fordulóban az időpont, ameddig az év, és visszatér 1. 2009. április óta a 4. hónap.

Trunc funkció A dátumokkal dolgozik

A TRUCH funkció csökkenti a dátumot a pontossági paraméter alapján. Ez az elem egy paraméter kötelező és egy és TRUNC hívás szintaxis (Forrás Dátum,). A forrás dátuma paramétere lehet érvényes dátum. A dátum precíziós formátuma paraméter határozza meg a dátum csökkentésének szintjét, és opcionális, az alapértelmezett érték napra csökken. Ez azt jelenti, hogy az összes időtartam visszaáll - 00 óra 00 perc 00 másodperc. A hónap rövidítése a dátumot megegyezik a kezdeti dátum hónapjának első napjával. Egy évig csökkentve - visszaadja az eredeti dátum első napját. Vegyünk egy kérelmet más paraméterekkel rendelkező függvény használatával.

Ez a kérés április 17-én 00: 05-kor történik. Az első oszlop csökkenti a rendszer dátumát napig, az idő átszámolva 00:05 00:00 (a pontosság paraméter egyértelműen megadva, az alapértelmezett érték kerül felhasználásra) és az aktuális napi vissza. A második oszlop csökkenti az időpont előtt, ugyanazon a napon, a hét, ez volt az első napja a hónap (szerda), és visszaadja a szerda az aktuális hét - április 15. A harmadik oszlop csökkenti a hónapot, és visszaadja a hónap első napját - április 1-jén. A negyedik oszlop csökkenti az év dátumát, és visszaadja az év első napját.



Tetszett a cikket? Oszd meg