更新时间:2022-10-04 20:31:16
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
SQL> --创建一个过程块
SQL> CREATE OR REPLACE PROCEDURE hello_procedure
2 ( pv_whom VARCHAR2 ) IS
3 BEGIN
4 dbms_output.put_line( 'Hello ' || pv_whom || '.' );
5 END ;
6 /
过程已创建。 SQL> --调用这个过程
SQL> EXECUTE hello_procedure( 'Sam' );
Hello Sam. PL/SQL 过程已成功完成。 SQL> --等价的方法是在匿名块的执行块中 封闭调用
SQL> BEGIN
2 hello_procedure( 'Sam' );
3 END ;
4 /
Hello Sam. PL/SQL 过程已成功完成。 SQL> -- 函数块
SQL> CREATE OR REPLACE FUNCTION hello_function
2 ( pv_whom VARCHAR2 ) RETURN VARCHAR2 IS
3 BEGIN
4 RETURN 'Hello ' || pv_whom || '.' ;
5 END ;
6 /
函数已创建。 SQL> -- 定义一个会话级绑定变量 并且调用一个函数到该绑定变量中
SQL> VARIABLE result VARCHAR2(20) SQL> CALL hello_function( 'Samabtha' ) INTO :result;
调用完成。 SQL> -- 打印出局部变量的内容
SQL> PRINT :result RESULT -------------------------------------------------------------------------------- Hello Samabtha. SQL> SELECT :result FROM dual;
:RESULT -------------------------------------------------------------------------------- Hello Samabtha. SQL> -- 上面将查询绑定 变量;
SQL> SQL> SQL> SQL> -- 嵌套块
SQL> DECLARE
2 PROCEDURE a;
3 FUNCTION b RETURN VARCHAR2;
4 PROCEDURE a IS
5 BEGIN
6 dbms_output.put_line(b|| ' World!' );
7 END a;
8 FUNCTION b RETURN VARCHAR2 IS
9 BEGIN
10 RETURN 'Hello' ;
11 END B;
12 BEGIN
13 a;
14 END ;
15 /
Hello World! PL/SQL 过程已成功完成。 SQL> SQL> SQL> SQL> -- 打印程序空间分配大小
SQL> SQL> SQL> DECLARE
2 lv_fixed CHAR (40) := 'Something not quite long.' ;
3 lv_variable VARCHAR (40) := 'Something not quite long.' ;
4 lv_clob CLOB := 'Something not quite long.' ;
5 BEGIN
6 dbms_output.put_line( 'Fixed Length [' || LENGTH(lv_fixed)|| ']' );
7 dbms_output.put_line( 'Varying Length [' || LENGTH(lv_variable)|| ']' );
8 dbms_output.put_line( 'CLOB Length [' || LENGTH(lv_clob)|| ']' );
9 END ;
10 /
Fixed Length [40] Varying Length [25]
CLOB Length [25] PL/SQL 过程已成功完成。 SQL>
|