Шаг 67 - PL/SQL - встроенные функции, часть 3

Итак, продолжаем разбирать встроенные функции! Немного занудно конечно! Но, что поделать, зато полезно! Вообще можете использовать это как справочник! Когда надо почитали! :)

SET SERVEROUTPUT ON

BEGIN

	-- Function  ASCII() --
	DBMS_OUTPUT.put_line('26*-> '||TO_CHAR(ASCII('A'))||' '||TO_CHAR(ASCII(' '))||' '||TO_CHAR(ASCII('F')));

	-- Function  INSTR() --
	DBMS_OUTPUT.put_line('27*-> '||TO_CHAR(INSTR('Miller is very ill!', 'il', 1, 2)));

	-- Function  INSTR() --
	DBMS_OUTPUT.put_line('28*-> '||TO_CHAR(INSTR('Miller is very ill!', 'il', -1, 2)));

	-- Function  INSTR() --
	DBMS_OUTPUT.put_line('29*-> '||TO_CHAR(INSTR('Miller is very ill!', 'il', 8)));

	-- Function  INSTR() --
	DBMS_OUTPUT.put_line('30*-> '||TO_CHAR(INSTR('Miller is very ill!', 'il', 18)));

	-- Function  LENGTH() --
	DBMS_OUTPUT.put_line('31*-> '||TO_CHAR(LENGTH('Hello World!!!')));

	-- Function  LENGTH() --
	DBMS_OUTPUT.put_line('32*-> '||TO_CHAR(LENGTH('Miller is very ill!')));

	DBMS_OUTPUT.put_line('Part2 Number function.');

	-- Function  ABS() --
	DBMS_OUTPUT.put_line('33*-> '||TO_CHAR(ABS(-5))||' '||TO_CHAR(ABS(5)));

	-- Function  ACOS() ASIN() --
	DBMS_OUTPUT.put_line('34*-> '||TO_CHAR(ACOS(0.5))||' '||TO_CHAR(ASIN(0.7)));

END;
/

После запуска, смотрим результат:

SQL> SET SERVEROUTPUT ON
SQL>
SQL> BEGIN
  2  
  3   -- Function  ASCII() --
  4   DBMS_OUTPUT.put_line('26*-> '||TO_CHAR(ASCII('A'))||' '||TO_CHAR(ASCII(' '))||' '||TO_CHAR(ASCII('F')));
  5  
  6   -- Function  INSTR() --
  7   DBMS_OUTPUT.put_line('27*-> '||TO_CHAR(INSTR('Miller is very ill!', 'il', 1, 2)));
  8  
  9   -- Function  INSTR() --
 10   DBMS_OUTPUT.put_line('28*-> '||TO_CHAR(INSTR('Miller is very ill!', 'il', -1, 2)));
 11  
 12   -- Function  INSTR() --
 13   DBMS_OUTPUT.put_line('29*-> '||TO_CHAR(INSTR('Miller is very ill!', 'il', 8)));
 14  
 15   -- Function  INSTR() --
 16   DBMS_OUTPUT.put_line('30*-> '||TO_CHAR(INSTR('Miller is very ill!', 'il', 18)));
 17  
 18   -- Function  LENGTH() --
 19   DBMS_OUTPUT.put_line('31*-> '||TO_CHAR(LENGTH('Hello World!!!')));
 20  
 21   -- Function  LENGTH() --
 22   DBMS_OUTPUT.put_line('32*-> '||TO_CHAR(LENGTH('Miller is very ill!')));
 23  
 24   DBMS_OUTPUT.put_line('Part2 Number function.');
 25  
 26   -- Function  ABS() --
 27   DBMS_OUTPUT.put_line('33*-> '||TO_CHAR(ABS(-5))||' '||TO_CHAR(ABS(5)));
 28  
 29   -- Function  ACOS() ASIN() --
 30   DBMS_OUTPUT.put_line('34*-> '||TO_CHAR(ACOS(0.5))||' '||TO_CHAR(ASIN(0.7)));
 31  
 32  END;
 33  /
26*-> 65 32 70
27*-> 16
28*-> 2
29*-> 16
30*-> 0
31*-> 14
32*-> 19
Part2 Number function.
33*-> 5 5
34*-> 1,04719755119659774615421446109316762805 ,7753974966107530637403533527149871135488

Процедура PL/SQL успешно завершена.

Итак, поехали:

ASCII(строка)
Возвращает десятичное представление первого байта "строка", согласно применяемому набору символов. Пример 26*.
INSTR(строка 1, строка 2, [,a[,b]])
А, вот эта функция, просто так не разберешься! :) Но, полезная когда поймешь, как она действует. Итак! Возвращает местоположение "строка 2", в "строка 1". "строка 1" просматривается слева, начиная с позиции a. Если a отрицательно, то "строка 1", просматривается справа. Возвращается позиция указывающая местоположение b-го вхождения. Значением по умолчанию, как для a так и для b является 1, что дает в результате позицию, первого вхождения, "строка 2", в "строка 1". Если при заданных a и b, "строка 2" не найдена, возвращается 0. Пример 27*, 28*, 29*, 30*.
LENGTH(строка)
Очень полезная функция! :) Возвращает размер "строка" в символах. Значения типа CHAR дополняются пробелами. по этому если "строка" имеет тип CHAR, в размере указываются и конечные пробелы. Если "строка", является NULL - значением, то и возвращается NULL! Пример 31*, 32*.

С символьными функциями пока все! Переходим к числовым. Они, может и редко будут вами применяться, но знать их не помешает! К слову, эти функции в качестве аргументов используют и возвращают значения типа NUMBER!

ABS(x)
Возвращает абсолютное значение для х. Пример 33*.
ACOS(х) ASIN(х)
Возвращает арккосинус и арксинус для х соответственно. Обратите внимание на количество значащих после запятой! Пример 34*.

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Летучий Сергей - 16.11.2003