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>
本文出自 “某人说我技术宅” 博客,请务必保留此出处http://1992mrwang.blog.51cto.com/3265935/1216911