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

Продолжим разбор функций PL/SQL. Символьные функции далее:

SET SERVEROUTPUT ON

BEGIN

	-- Function RPAD() 1 --
	DBMS_OUTPUT.put_line('14*->'||RPAD('This is Cool', 15, '!'));

	-- Function RPAD() 2 --
	DBMS_OUTPUT.put_line('15*->'||RPAD('This is Cool', 19, 'MA'));

	-- Function RTRIM() 1 --
	DBMS_OUTPUT.put_line('16*->'||RTRIM('The White House has a many tree!       '));

	-- Function RTRIM() 2 --
	DBMS_OUTPUT.put_line('17*->'||RTRIM('The White House has a many tree!xxxxxx', 'x'));

	-- Function RTRIM() 3 --
	DBMS_OUTPUT.put_line('18*->'||RTRIM('The White House has a many tree!xyxyxyxyxy', 'xy'));

	-- Function RTRIM() 4 --
	DBMS_OUTPUT.put_line('19*->'||RTRIM('The White House has a many tree!xyxyxxxxxy', 'xy'));

	-- Function SUBSTR() 1 --
	DBMS_OUTPUT.put_line('20*->'||SUBSTR('Braun Fox',1,5));
	
	-- Function SUBSTR() 2 --
	DBMS_OUTPUT.put_line('21*->'||SUBSTR('Braun Fox',-3,3));
	
	-- Function SUBSTR() 3 --
	DBMS_OUTPUT.put_line('22*->'||SUBSTR('Braun Fox',3));

	-- Function TRANSLATE() 1 --
	DBMS_OUTPUT.put_line('23*->'||TRANSLATE('KrotPups', 'Pups', 'Boss'));

	-- Function TRANSLATE() 2 --
	DBMS_OUTPUT.put_line('24*->'||TRANSLATE('KrotPups', 'KrotPups', 'Kolobok'));

	-- Function UPPER() --
	DBMS_OUTPUT.put_line('25*->'||UPPER('THE quick bROwn Fox jumped oVer THE LaZy dOG ... '));

END;
/

SQL> SET SERVEROUTPUT ON
SQL> 
SQL> BEGIN
  2  
  3   -- Function RPAD() 1 --
  4   DBMS_OUTPUT.put_line('14*->'||RPAD('This is Cool', 15, '!'));
  5  
  6   -- Function RPAD() 2 --
  7   DBMS_OUTPUT.put_line('15*->'||RPAD('This is Cool', 19, 'MA'));
  8  
  9   -- Function RTRIM() 1 --
 10   DBMS_OUTPUT.put_line('16*->'||RTRIM('The White House has a many tree!       '));
 11  
 12   -- Function RTRIM() 2 --
 13   DBMS_OUTPUT.put_line('17*->'||RTRIM('The White House has a many tree!xxxxxx', 'x'));
 14  
 15   -- Function RTRIM() 3 --
 16   DBMS_OUTPUT.put_line('18*->'||RTRIM('The White House has a many tree!xyxyxyxyxy', 'xy'));
 17  
 18   -- Function RTRIM() 4 --
 19   DBMS_OUTPUT.put_line('19*->'||RTRIM('The White House has a many tree!xyxyxxxxxy', 'xy'));
 20  
 21   -- Function SUBSTR() 1 --
 22   DBMS_OUTPUT.put_line('20*->'||SUBSTR('Braun Fox',1,5));
 23  
 24   -- Function SUBSTR() 2 --
 25   DBMS_OUTPUT.put_line('21*->'||SUBSTR('Braun Fox',-3,3));
 26  
 27   -- Function SUBSTR() 3 --
 28   DBMS_OUTPUT.put_line('22*->'||SUBSTR('Braun Fox',3));
 29  
 30   -- Function TRANSLATE() 1 --
 31   DBMS_OUTPUT.put_line('23*->'||TRANSLATE('KrotPups', 'Pups', 'Boss'));
 32  
 33   -- Function TRANSLATE() 2 --
 34   DBMS_OUTPUT.put_line('24*->'||TRANSLATE('KrotPups', 'KrotPups', 'Kolobok'));
 35  
 36   -- Function UPPER() --
 37   DBMS_OUTPUT.put_line('25*->'||UPPER('THE quick bROwn Fox jumped oVer THE LaZy dOG ... '));
 38  
 39  END;
 40  /
14*->This is Cool!!!                                                            
15*->This is CoolMAMAMAM                                                        
16*->The White House has a many tree!                                           
17*->The White House has a many tree!                                           
18*->The White House has a many tree!                                           
19*->The White House has a many tree!                                           
20*->Braun                                                                      
21*->Fox                                                                        
22*->aun Fox                                                                    
23*->KrotBoss                                                                   
24*->Kolobok                                                                    
25*->THE QUICK BROWN FOX JUMPED OVER THE LAZY DOG ...                           

Процедура PL/SQL успешно завершена.
RPAD(строка 1, х, строка 2)
Вот еще интересная функция! :) Возвращает "строка 1", дополненную справа до размера х символами "строка 2". Если размер "строка 2" меньше х, то при необходимости она дублируется. Если размер "строка 2" больше х то берутся только первые х ее символов. Если "строка 2" не указана, то ее заменяют символы пробела. Пример, строка 5*, 6*. Обратите внимание, что х указывается как размер строки символов, отображаемой на экране, а не как реальный размер. Пример 14*, 15*.
RTRIM(строка 1, строка 2)
Возвращает "строка 1", в которой удалены крайние правые символы, идентичные символам "строка 2". Значением по умолчанию для "строка 2", является знак пробела. "строка 1" просматривается с левого края, и при встрече первого символа не совпадающего с "строка 2", возвращается результат. Пример строка 16*, 17*, 18*, 19*.
SUBSTR(строка 1, a, [,b])
Вот с этой функцией, я наиболее часто работал, очень удобная штучка! Возвращает часть "строка 1", начинающуюся с символа с номером a, и имеющую длину b символов. Если a = 0, это равносильно тому, что a = 1 (начало строки) если b положительно возвращаются символы слева направо. Если b отрицательно то, начиная с конца строки и считаются справа налево! Если b отсутствует, то по умолчанию возвращаются все символы, до конца строки. Если b меньше 1, то возвращается значение NULL. Если в качестве a и b, указано число с плавающей точкой, его дробная часть отбрасывается! Пример строка 20*, 21*, 22*.
TRANSLATE(строка_символов, заменяемая_трока, вносимая_строка)
Возвращает "строка_символов", в которой все вхождения каждого символа "заменяемая_трока" замещаются соответствующим символом "вносимая_строка". Функция TRANSLATE, является расширением функции REPLACE. Если "заменяемая_трока" длиннее чем "вносимая_строка", все ее лишние символы удаляются поскольку для них нет соответствующих символов во "вносимая_строка". "вносимая_строка" не может быть пустой. Oracle интерпретирует пустую строку как значение NULL, а если любой аргумент функции TRANSLATE является NULL, то результат тоже будет NULL. Пример строка 23*, 24*.
UPPER(строка)
Возвращает "строка", в которой все символы прописные. Символы не являющиеся буквами не изменяются. Пример, строка 4*. Пример строка 25*.

Вот, с символьными функциями возвращающими символьные значения пока все. Далее продолжим, следующую группу функций PL/SQL. Пробуйте!


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