且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Oracle 学习记录

更新时间: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 RETURN VARCHAR2;
  4   PROCEDURE IS
  5   BEGIN
  6    dbms_output.put_line(b||' World!');
  7   END a;
  8   FUNCTION 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>




本文转自    拖鞋崽      51CTO博客,原文链接:http://blog.51cto.com/1992mrwang/1216911