1. ------------------------------------定义使用变量----------------------------------
2.
3. --scalar 变量
4. declare
5. v_ename varchar2(5);
6. v_sal number(6,2);
7. c_tax_rate constant number(3,2) :=0.03;
8. v_tax_sal number(6,2);
9. begin
10. select ename,sal into v_ename,v_sal from emp where empno=&eno;
11. v_tax_sal:=v_sal*c_tax_rate;
12. dbms_output.put_line('雇员名:'||v_ename);
13. dbms_output.put_line('雇员工资:'||v_sal);
14. dbms_output.put_line('所得税:'||v_tax_sal);
15. end;
16. /
17. --最好使用%type
18. declare
19. v_ename emp.ename%type;
20. v_sal emp.sal%type;
21. v_tax_rate constant number(3,2) :=0.03;
22. v_tax_sal v_sal%type;
23. begin
24. select ename,sal into v_ename ,v_sal from emp where empno=&no;
25. v_tax_sal := v_sal*v_tax_rate;
26. dbms_output.put_line('雇员名:'||v_ename);
27. dbms_output.put_line('雇员工资:'||v_sal);
28. dbms_output.put_line('所得税:'||v_tax_sal);
29. end;
30. /
31.
32.
33. --composite 变量
34. 1:pl/sql记录
35. 记录类型:emp_record_type
36. 记录变量:emp_record
37. 记录成员:记录变量.记录成员 emp_record.name
38. declare
39. type emp_record_type is record(
40. name emp.ename%type,
41. salary emp.sal%type,
42. title emp.job%type);
43. emp_record emp_record_type;
44. begin
45. select ename,sal,job into emp_record from emp where empno=&no;
46. dbms_output.put_line('雇员名:'||emp_record.name);
47. dbms_output.put_line('雇员工资:'||emp_record.salary);
48. dbms_output.put_line(' 岗位:'||emp_record.title);
49. end;
50. /
51.
52. 2:pl/sql表
53. declare
54. type ename_table_type is table of emp.ename%type
55. index by binary_integer;
56. ename_table ename_table_type;
57. begin
58. select ename into ename_table(-1) from emp where empno=&no;
59. dbms_output.put_line('雇员名:'||ename_table(-1));
60. end;
61. /
62.
63. 3:嵌套表
64. 4:VARRAY
65.
66. --Reference 变量
67. 1:ref cursor 游标变量 fetch into
68. declare
69. type c1 is ref cursor;
70. dyn_cursor c1;
71. col1 varchar2(20);
72. col2 varchar2(20);
73. begin
74. open dyn_cursor for select &col1,&col2 from &tab where &con;
75. fetch dyn_cursor into col1,col2;
76. dbms_output.put_line('col1:'||col1);
77. dbms_output.put_line(' col2:'||col2);
78. close dyn_cursor;
79. end;
80.
81. 2:ref obj_type
82.
83.
84. --lob 变量
85. clob、blob、nclob、bfile
86. clob和nclob储存大字符数据
87. bolb储存大二进制数据
88. bfile储存指向os文件的指针
89.
90. --使用子类型定义变量
91. subtype subtype_name is base_type [(constrain)] [not null];
92. declare
93. subtype my_type is varchar2(20);
94. v_name my_type(20);
95. begin
96. select ename into v_name from emp where empno=&no;
97. dbms_output.put_line('name:'||v_name);
98. end;
99. /
100.
101. --非pl/sql变量
102. 1:sql*plus变量
103. 2:pro*c/c++变量
oracle定义变量
原创mb646713a07a071 博主文章分类:数据库 ©著作权
©著作权归作者所有:来自51CTO博客作者mb646713a07a071的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:devcon.exe 运用

提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Springboot自定义变量的使用
java自定义参数设定
java springboot -
Oracle 绑定变量
oracle 中,对于一个提交的sql语句,存在两种可选的解析过程, 一种叫做硬解析,一种叫做软解析.一以及修
oracle sql sqlserver oracle10g nosql -
oracle plsql变量
plsql
oracle plsql