PL/SQL基础 定义并使用变量

·  介绍

   在编写PL/SQL程序时,可以定义变量和常量;在PL/SQL程序中包括有:

         ①标量类型

         ②复合类型

         ③参照类型

         ④lob

` 标量---常用类型

   在编写PL/SQL块时,如果要使用变量,需在定义部分定义变量。

   PL/SQL中定义变量和常量的语法如下:

         ①定义一个变长字符串

            v_ename   varchar2(10);

         ②定义一个小数    范围-9999.99~9999.99

            v_sal  number(6 , 2);

         ③定义一个小数并给一个初始值为5.4:=是pl/sql 的赋值号

            v_sal2  number(6,2):=5.4

         ④定义一个日期类型的数据

            v_hiredate  date;

         ⑤定义一个布尔变量,不能为空,初始值为false

            v_valid   boolean  not null  default  false ;

    使用标量

          在定义好变量后,就可以使用这些变量。这里需要说明的是pl/sql块为变量赋值不同于其它的编程语言,需要在等号

    前加冒号(:=)

          eg:

                 declare
                     t_tax_rate number(3,2):=0.03;
                     --用户名
                      v_ename varchar2(5);

                      --v_ename emp.ename%type;--此字段和表字段大小一样
                      v_sal number(7,2);
                      v_tax_sal number(7,2);
                 --执行
                 begin
                       select ename,sal into v_ename,v_sal from emp where empno=&no;
                       --pl/sql中可以使用+-*/
                       --计算所得税
                       v_tax_sal:=v_sal*t_tax_rate;
                       --输出
                      dbms_output.put_line('姓名:'||v_ename||'  工资:'||v_sal||'  交税:'||v_tax_sal);
                end;

·  复合变量-------介绍

         用于存放多个值的变量。主要包括:

         ①pl/sql记录

         ②pl/sql表

         ③嵌套表

         ④varray

 

         记录:

               相当于高级语言中的结构体/类

                 declare

                    type emp_record_type is record(
                            v_name emp.ename%type,
                            salary emp.sal%type,
                            title emp.job%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.v_name);
                end;

          表:

                 相当于高级语言里的数组

                declare
                       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;
               --说明:
               --sp_table_type   是pl/sql表类型
               --emp.ename%type  指定了表的元素的类型和长度
               --sp_table  为pl/sql表变量
               --sp_table(0)则表示下标为0的元素

·  参照变量

     参照变量是指用于存放数值指针的变量,通过使用参照变量,可以使得应用程序共享相同对象,从而降低占用的空间。在编写PL/SQL程序时,可以使用游标变量和对象类型变量二种参照变量类型。

·  参照变量   游标变量

         使用游标时,当定义游标时不需要指定相应的selec t语句,但是当使用游标时需要指定select语句,这样一个游标就与一个select语句结合了,实例如下:

         ①请使用pl/sql编写一个块,可以输入部门号,并显示该部门所有员工姓名和他的工资。

         ②在1基础上,如果某个员工的工资低于200元,就增加100元

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值