Lab_04_Oracle %28PL_SQL%29 / Додатково_Теорія_03_Вбудовані_функції
.pdf3. Функція rowidtochar(Rowid) перетворює значення Rowid-стовпця в символьний еквівалент
SQL> select rowidtochar('abcd') from dual;
ROWIDTOCHAR('ABCD'
--------------------------------
0000ABCD.0000.0000
SQL> select rowidtochar('abcdab') from dual;
ROWIDTOCHAR('ABCDA
---------------------------------
00ABCDAB.0000.0000
4. Функція to_char(number [, format]) перетворює числове значення в еквівалентне символьне подання. Можна використовувати формати:
9 – значення з певною кількістю цифр і з пробілами замість нулів, що стоять попереду;
$ – значення із знаком долара, що стоїть попереду;
B – відображає цілу частина результату у вигляді пробілів, якщо вона дорівнює нулю;
PR – виводить негативне значення в кутових дужках;
RN – повертає число записане римськими цифрами у верхньому регістрі. Значення повинне знаходитися між 1 і 3999;
L – повертає позначення національної грошової одиниці.
SQL> select to_char(34567,'99999') from dual;
TO_CHA
-------------
34567
SQL> select to_char(34567,'999,999') from dual;
TO_CHAR(
---------------
34,567
SQL> select to_char(34567,'99.999') from dual;
TO_CHAR
-------------
#######
SQL> select to_char(34567,'99,999.99') from dual;
TO_CHAR(34
------------------
34,567.00
SQL> select to_char(34567,'$99,999.99') from dual;
TO_CHAR(345
-------------------
$34,567.00
SQL> select to_char(sal,'$99,999.99') from emp;
TO_CHAR(SAL
--------------------
$800.00 $1,600.00 $1,250.00 $2,975.00 $1,250.00 $2,850.00 $2,450.00 $3,000.00 $5,000.00 $1,500.00 $1,100.00
$950.00
$3,000.00 $1,300.00
14 rows selected.
SQL> select to_char(-1234567,'99999999PR') from dual;
TO_CHAR(-1
-----------------
<1234567>
SQL> select to_char(-1234567,'L99999999PR') from dual;
TO_CHAR(-1234567,'L9
------------------------------
<$1234567>
SQL> select to_char(-1234567,'RN') from dual;
TO_CHAR(-123456
-------------------------
###############
SQL> select to_char(3998,'RN') from dual;
TO_CHAR(3998,'R
-------------------------
MMMCMXCVIII
SQL> select to_char(3999,'RN') from dual;
TO_CHAR(3999,'R
-------------------------
MMMCMXCIX
SQL> select to_char(2001,'Rn') from dual;
TO_CHAR(2001,'R
------------------------
MMI
5. Функція to_char(date,format) перетворює тип дати в символьний формат. Використовується кілька моделей форматів. Остаточна маска формату не повинна перевищувати 22 символи.
SQL> select to_char(sysdate,'yyyy,mm,ddd,mm,mon,sssss') from dual;
TO_CHAR(SYSDATE,'YYYY,MM,DDD,MM,MON,SSSSS')
----------------------------------------------------------------------------
2000,12,350,12,dec,48762
SQL> select to_char(sysdate,'yyyy,ddd,dd,d,hh24,mm,mon,rm,w,ww,sssss') from dual;
TO_CHAR(SYSDATE,'YYYY,DDD,DD,D,HH24,MM,MON,RM,W,WW,SSSSS')
-------------------------------------------------------------------------------------------------------
2000,350,15,6,13,12,dec,xii ,3,50,48998
SQL> select to_date('20010223', 'yyyymmdd') from dual;
TO_DATE('
----------------
23-FEB-01
SQL> select add_months(sysdate,2.10) from dual;
ADD_MONTH
-------------------
15-FEB-01
SQL> select add_months(sysdate,0.85) from dual;
ADD_MONTH
--------------------
15-DEC-00
SQL> select add_months(sysdate,75) from dual;
ADD_MONTH
---------------------
15-MAR-07
SQL> select last_day(add_months(sysdate,0.85)) from dual;
LAST_DAY(
-----------------
31-DEC-00
SQL> select months_between ('17-nov-81',sysdate) from dual;
MONTHS_BETWEEN('17-NOV-81',SYSDATE)
------------------------------------------------------------
971.03648
SQL> select months_between (sysdate,'17-nov-81') from dual;
MONTHS_BETWEEN(SYSDATE,'17-NOV-81')
------------------------------------------------------------
-971.0364
SQL> select new_time(sysdate,'bdt','cst') from dual;
NEW_TIME(
-------------------
16-DEC-00
SQL> select new_time(sysdate,'adt','est') from dual;
NEW_TIME(
------------------
15-DEC-00
SQL> select round (sysdate,'hh') from dual;
ROUND(SYS
------------------
15-DEC-00
SQL> select trunc (sysdate,'hh') from dual;
TRUNC(SYS
-----------------
15-DEC-00
Числові функції
6. Функція abs( Number) повертає абсолютне значення числа.
SQL> select abs( &k - &p) from dual;
Enter value for k: 45
Enter value for p: 55
old |
1: select abs( &k - &p) from dual |
new |
1: select abs( 45 - 55) from dual |
ABS(45-55) |
|
--------------- |
|
|
10 |
SQL> define k
symbol k is UNDEFINED
SQL> select ceil (&k) from dual;
Enter value for k: 45.55
old |
1: select ceil (&k) from dual |
new |
1: select ceil (45.55) from dual |
CEIL(45.55) |
|
--------------- |
|
|
46 |
SQL> select ceil (&k) from dual;
Enter value for k: 45.45
old |
1: select ceil (&k) from dual |
new |
1: select ceil (45.45) from dual |
CEIL(45.45) |
|
---------------- |
|
|
46 |
7. Функція cos(Number) повертає косинус кута заданий у радіанах. Для обчислення кута в градусах треба вхідне значення помножити на 0.01745
SQL> select cos(45*0.01745) from dual; COS(45*0.01745)
-------------------
.70721154
SQL> select cos (0.01745) from dual;
COS(0.01745)
------------------
.99984775
8. Функція гіперболічного синуса cosh (Number).
SQL> select cosh (0) from dual;
COSH(0)
--------------
1
SQL> select cosh(0.5) from dual;
COSH(0.5)
--------------
1.127626
9. Функція EXP повертає е зведене в ступінь.
SQL> select exp(&k) from dual;
Enter value for k: 7
old |
1: select exp(&k) from dual |
new |
1: select exp(7) from dual |
EXP(7)
-------------
1096.6332
1* select exp(&k) from dual SQL> /
Enter value for k: 290
old |
1: select exp(&k) from dual |
new |
1: select exp(290) from dual |
EXP(290)
-------------
8.82E+125
10. Функція floor(Number) повертає найбільше цілочислене зна-чення, що менше або дорівнює вхідному числу
SQL> select floor(&k) from dual;
Enter value for k: -121.01
old |
1: select floor(&k) from dual |
new |
1: select floor(-121.01) from dual |
FLOOR(-121.01)
---------------------
-122
11. Функція ln(Number) – значення натурального логарифма.
SQL> select ln(123456789) from dual;
LN(123456789)
-------------------
18.631402
12. Функція log (основа, Number).
SQL> select log (2,32567) from dual;
LOG(2,32567)
------------------
14.991123
SQL> select log (2,12345678912345679) from dual;
LOG(2,12345678912345679)
------------------------------------
53.454856
13. Функція mod (M, N ) повертає залишок цілочисленого ділення M на
N.
SQL> select mod (123456789,7) 2 from dual;
MOD(123456789,7)
--------------------------
1
SQL> select mod (13,17) from dual;
MOD(13,17)
----------------
13
14. Функція power(&k,&p) – повертає результат зведення числа в ступінь.
SQL> select power(&k,&p) from dual;
Enter value for k: 2
Enter value for p: 8
old |
1: select power(&k,&p) from dual |
new |
1: select power(2,8) from dual |
POWER(2,8) |
|
---------------- |
|
|
256 |
SQL> /
Enter value for k: 2
Enter value for p: 32
old |
1: select power(&k,&p) from dual |
new |
1: select power(2,32) from dual |
POWER(2,32)
-------------------
4.295E+09
15. Функція round (&k,&p) повертає округлене значення до найближчого числа.
SQL> select round (&k,&p) from dual;
Enter value for k: 567.123
Enter value for p: 1
old |
1: select round (&k,&p) from dual |
new |
1: select round (567.123,1) from dual |
ROUND(567.123,1)
------------------------
567.1
SQL> /
Enter value for k: 567.123
Enter value for p: -1
old |
1: select round (&k,&p) from dual |
new |
1: select round (567.123,-1) from dual |
ROUND(567.123,-1)