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

По-моему настало время немного отвлечься. Пока вы там перевариваете курсоры и все что к ним прилагается я вам пока расскажу о встроенных функциях PL/SQL. Если их хорошо знать, то можно писать очень эффективный код на PL/SQL. Сделаем так, я пропишу блок, а вы будете по мере изучения смотреть нужные строки! Поехали:

SET SERVEROUTPUT ON

BEGIN

	DBMS_OUTPUT.enable;
	-- Function CHR() --
	DBMS_OUTPUT.put_line('1*->'||CHR(37)||' '||CHR(38)||' '||CHR(101)||' '||CHR(105));

	-- Function CONCAT() --
	DBMS_OUTPUT.put_line('2*->'||CONCAT('Vasiya', 'Pupkin'));

	-- Function INITCAP() --
	DBMS_OUTPUT.put_line('3*->'||INITCAP('iF yoU or mY scoRE and 7 YEARS ago ...'));

	-- Function LOWER() --
	DBMS_OUTPUT.put_line('4*->'||LOWER('iF yoU or mY scoRE and 7 YEARS ago ...'));

	-- Function LPAD() 1 --
	DBMS_OUTPUT.put_line('5*->'||LPAD('Short String', 20, 'XY'));

	-- Function LPAD() 2 --
	DBMS_OUTPUT.put_line('6*->'||LPAD('Short String', 13, 'PD'));

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

	-- Function LTRIM() 2 --
	DBMS_OUTPUT.put_line('8*->'||LTRIM('xxxxxThe White House has a many tree!', 'x'));

	-- Function LTRIM() 3 --
	DBMS_OUTPUT.put_line('9*->'||LTRIM('xyxyxyxyxyThe White House has a many tree!', 'xy'));

	-- Function LTRIM() 4 --
	DBMS_OUTPUT.put_line('10*->'||LTRIM('xyxyxxxxxyThe White House has a many tree!', 'xy'));

	-- Function REPLACE() 1 --
	DBMS_OUTPUT.put_line('11*->'||REPLACE('This and That', 'Th', 'B'));

	-- Function REPLACE() 2 --
	DBMS_OUTPUT.put_line('12*->'||REPLACE('This and That', 'Th'));

	-- Function REPLACE() 3 --
	DBMS_OUTPUT.put_line('13*->'||REPLACE('This and That', NULL));
	
END;
/

После запуска получаем:

SQL> SET SERVEROUTPUT ON
SQL>
SQL> BEGIN
  2  
  3   DBMS_OUTPUT.enable;
  4   -- Function CHR() --
  5   DBMS_OUTPUT.put_line('1*->'||CHR(37)||' '||CHR(38)||' '||CHR(101)||' '||CHR(105));
  6  
  7   -- Function CONCAT() --
  8   DBMS_OUTPUT.put_line('2*->'||CONCAT('Vasiya', 'Pupkin'));
  9  
 10   -- Function INITCAP() --
 11   DBMS_OUTPUT.put_line('3*->'||INITCAP('iF yoU or mY scoRE and 7 YEARS ago ...'));
 12  
 13   -- Function LOWER() --
 14   DBMS_OUTPUT.put_line('4*->'||LOWER('iF yoU or mY scoRE and 7 YEARS ago ...'));
 15  
 16   -- Function LPAD() 1 --
 17   DBMS_OUTPUT.put_line('5*->'||LPAD('Short String', 20, 'XY'));
 18  
 19   -- Function LPAD() 2 --
 20   DBMS_OUTPUT.put_line('6*->'||LPAD('Short String', 13, 'PD'));
 21  
 22   -- Function LTRIM() 1 --
 23   DBMS_OUTPUT.put_line('7*->'||LTRIM('     The White House has a many tree!'));
 24  
 25   -- Function LTRIM() 2 --
 26   DBMS_OUTPUT.put_line('8*->'||LTRIM('xxxxxThe White House has a many tree!', 'x'));
 27  
 28   -- Function LTRIM() 3 --
 29   DBMS_OUTPUT.put_line('9*->'||LTRIM('xyxyxyxyxyThe White House has a many tree!', 'xy'));
 30  
 31   -- Function LTRIM() 4 --
 32   DBMS_OUTPUT.put_line('10*->'||LTRIM('xyxyxxxxxyThe White House has a many tree!', 'xy'));
 33  
 34   -- Function REPLACE() 1 --
 35   DBMS_OUTPUT.put_line('11*->'||REPLACE('This and That', 'Th', 'B'));
 36  
 37   -- Function REPLACE() 2 --
 38   DBMS_OUTPUT.put_line('12*->'||REPLACE('This and That', 'Th'));
 39  
 40   -- Function REPLACE() 3 --
 41   DBMS_OUTPUT.put_line('13*->'||REPLACE('This and That', NULL));
 42  
 43  END;
 44  /
1*->% & e i                                                                     
2*->VasiyaPupkin                                                                
3*->If You Or My Score And 7 Years Ago ...                                      
4*->if you or my score and 7 years ago ...                                      
5*->XYXYXYXYShort String                                                        
6*->PShort String                                                               
7*->The White House has a many tree!                                            
8*->The White House has a many tree!                                            
9*->The White House has a many tree!                                            
10*->The White House has a many tree!                                           
11*->Bis and Bat                                                                
12*->is and at                                                                  
13*->This and That                                                              

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

Все это относится к СИМВОЛЬНЫМ ФУНКЦИЯМ, ВОЗВРАЩАЮЩИМ СИМВОЛЬНЫЕ ЗНАЧЕНИЯ.

CHR(x)
Возвращает символ, имеющий код, равный x в наборе символов БД. Пример строка 1*.
CONCAT(строка 1, строка2)
Возвращает "строка 1", конкатенированную, (сцепленную) со "строка 2". То же что и операция "||"! Пример строка 2*.
INITCAP(строка)
Возвращает "строка", в которой каждое слово начинается с прописной буквы и продолжается строчными. Слова разделяются пробелами или не буквенно-цифровыми символами. Символы не являющиеся буквами не изменяются. Пример строка 3*.
LOWER(строка)
Возвращает "строка", со строчными символами. Символы не являющиеся буквами не изменяются. Пример строка 4*.
LPAD(строка 1, х, строка 2)
Вот интересная функция! :) Возвращает "строка 1", дополненную слева до размера х символами "строка 2". Если размер "строка 2", меньше х, то при необходимости она дублируется. Если размер "строка 2" больше х, то берутся только первые х ее символов. Если "строка 2" не указана, то ее заменяют символы пробела. Пример строка 5*, 6*.
LTRIM(строка 1, строка 2)
Возвращает "строка 1", в которой удалены крайние левые символы, идентичные символам "строка 2". Значением по умолчанию для "строка 2", является знак пробела. "строка 1" просматривается с левого края, и при встрече первого символа не совпадающего с "строка 2", возвращается результат. Пример строка 7*, 8*, 9*, 10*.
REPLACE(строка_символов, строка_поиска, [строка_замены])
Возвращает "строка_символов", в которой каждое вхождение "строка_поиска", заменяется на "строка_замены". Если "строка_замены", не указана, то все вхождения "строка_поиска", удаляются из "строка_символов". Пример строка 11*, 12*, 13*.

Далее, продолжим.


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