pl/sql程序中中的变量和常量
来源:互联网 发布:access数据库制作 编辑:程序博客网 时间:2024/06/05 06:07
一、类型
a.标量类型(scalar)
b.符合类型(composite)
c.参照类型(reference)
d.lob(large object)
1.标量的定义与使用
定义一个变长字符串 v_ename varchar2(10)
定义一个小数 v_sal number(6,2)
定义一个小数并赋初值 v_sal2 number(6,2):=5.4
定义一个日期类型数据 v_hiredate date
定义一个布尔变量,不能为空,初始值为false v_valid boolean not null default false;
案例:输入员工号,显示员工的姓名,工资,个人所得税(0.03)
declare
c_tax_rate number(3,2):=0.03;
v_ename varchar2(10);
v_sal number(7,2);
v_tax_number number(7,2);
begin
--执行部分
select ename,sal into v_ename,v_sal from emp where empno=&no;
--计算所得税
v_tax_number:=v_sal*c_tax_rate;
--输出
dbms_output.put_line('姓名是:'||v_ename||'工资:'||v_sal||'交税'||v_tax_number);
end;
标量使用%type定义标量的类型
eg: v_ename emp.ename%type;
2.复合变量 用于存放多个值得变量
a.pl/sql记录(类似高级语言的结构体)
b.pl/sql 表
c.嵌套表
d.varray
--定义一个pl/sql记录
declare
--定义一个pl/sql记录类型 emp_record_type,类型包含三个数据name,salary,title
type emp_record_type is record(name emp.ename%type,salary emp.sal%type ,title emp.job%type);
--定义一个sp_record变量,这个变量类型是emp_record_type
sp_record emp_record_type;
begin
select ename,sal,job into sp_record from emp where empno='7788';
dbms_output.put_line('姓名:'||sp_record.name||'薪水'||sp_record.salary||'工作'||sp_record.title);
end;
--定义一个pl/sql表实例
declare
--定义一个pl/sql表实例sp_table_type,该类型用于存放emp.ename%type,index by binary_integer表示下标是整数
type sp_table_type is table of emp.ename%type index by binary_integer;
sp_table sp_table_type;
begin
select ename into sp_table(0) from emp where empno=7788;
dbms_output.put_line('员工名'||sp_table(0));
end;
3.参照变量
参照变量是指用于存放数值指针的变量。通过使用参照变量,可以使得应用程序共享相同对象,从而降低占用的空间。
在编写pl/sql程序时,可以使用游标变量(ref cursor)和对象类型变量(ref_obj_type)两总参照变量类型。
游标类型(ref cursor)
使用游标时,当定义游标是不需要指定相应的select语句,但是当使用游标时(open)需要指定select语句,这样一个游标就与一个select语句想结合了。
案例:使用批量pl/sql编写一个快,可以输入部门号,并显示该部门的所有员工姓名和工资。
declare
type sp_emp_cursor is ref cursor;
test_coursor sp_emp_cursor;
v_ename emp.ename%type;
v_sal emp.sal%type;
begin
open test_cursor for select ename,sal from emp where deptno=&no;
loop
fetch test_corsor into v_ename,v_sal;
exit when test_cursor%notfound;
dbms_output.put_line('名字'||v_ename||'工资'||v_sal);
end loop;
close test_cursor;
end;
- pl/sql程序中中的变量和常量
- pl/sql变量和常量
- Oracle-32-初识PL/SQL程序&PL/SQL变量&PL/SQL常量
- pl/sql 程序中的变量使用实例
- Oracle中PL/SQL语句的变量、常量声明和赋值
- 在oracle的PL程序块中执行一个varchar2类型变量中的sql 语句
- sql和PL/SQL中绑定变量的区别
- Java程序中的注解、标示符、关键字、变量和常量
- PL/SQL中游标和游标变量的使用
- PL/SQL中游标和游标变量的使用
- PL/SQL中游标和游标变量的使用
- PL/SQL中游标和游标变量的使用
- PL/SQL学习笔记-常量变量及数据类型初步
- Oracle pl/sql编程 2---plsql变量与常量
- Oracle PL/SQL变量、常量、流程控制、循环语句
- PHP中的变量和常量
- oracle中的常量和变量
- java中的变量和常量
- mysql C API 购物车
- 换一批功能
- C++一些注意点之友元函数、虚函数以及const和volatile对象
- Ubuntu 下gvim/vim clang_complete自动补全安装
- [教程] VMware Workstation 9安装MAC OS 10.8全程图解(超详细,百图杀猫)
- pl/sql程序中中的变量和常量
- 网络攻城狮
- Overview of the High Efficiency Video Coding(HEVC) Standard之六
- 怎么在structs2 取得action里面的内置对象
- 判别TXT文档的编码方式 Java
- 11年成都网赛 (HDU 4036)
- 第四届 蓝桥杯C/C++ B组 9题 带分数
- 挨踢江湖之四
- 2013东北赛总结