По-моему настало время немного отвлечься. Пока вы там перевариваете курсоры и все что к ним прилагается я вам пока расскажу о встроенных функциях 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 успешно завершена.
Все это относится к СИМВОЛЬНЫМ ФУНКЦИЯМ, ВОЗВРАЩАЮЩИМ СИМВОЛЬНЫЕ ЗНАЧЕНИЯ.
Далее, продолжим.