Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Lab_04_Oracle %28PL_SQL%29 / Додатково_Теорія_03_Вбудовані_функції

.pdf
Скачиваний:
5
Добавлен:
11.02.2015
Размер:
643.85 Кб
Скачать

3. Функція 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)