定义并使用变量

  1. 定义并使用变量

    在编写PL/SQL程序时,可以使用标量类型、符合类型、参照类型和LOB类型等四种类型。

     

  1. 常用标量类型

  1. VARCHAR2(n) 其数值的长度不应该超过4000字节

  2. CHAR(N) 其数值的长度不应该超过2000字节

  3. NUMBER(P,S)

  4. DATE 其数据长度为固定长度(7字节)

  5. TIMESTAMP 当显示TIMESTAMP变量数据时,不仅会显示日期,而且还会显示时间和上下午标记

  6. LONGLONGRAW  LONG数据类型用于定义变长字符串,其字符串的最大长度为32760字节;LONG RAW数据类型用于定义变长的二进制数据,其数据最大长度为32760字节。

  7. BOOLEAN 该数据类型是PL/SQL数据类型,表列不能采用该数据类型

  8. BINARY_INTEGER该数据类型是PL/SQL数据类型,表列不能采用该数据类型

  9. BINARY_FLOATBINARYDOUBLE

  10.  NVARCHAR2(n)

VARCHAR2(n)NVARCHAR2(n)的区别:

NVARCHAR2  一个中文字当一个字符来处理

VARCHAR2   一个中文字当两个字符来处理。

  

  1. 定义标量变量

   v_enamevarchar2(10);

  v_sal number(6,2);

  v_sal2 number(6,2):=5.4;

 

  1. 使用%type属性

  declare

    v_enameemp.ename%type;

begin

end;

 

  1. 复合变量

  1. PL/SQL记录

  2. PL/SQL

  3. 嵌套表

  4. VARRAY

 

  1. PL/SQL记录类似于高级语言中的结构体

    declare

    type emp_record_type is record(empname emp.name%type , sal emp.sal%type , title emp.job%type);

    --定义一个sp_record变量,这个变量类型是emp_record_type

    sp_recordemp_record_type;

    begin

              select ename,sal,job into sp_record from emp where empno=7788;

              dbms_output.put_line('员工名:'||sp_record.empname);

    end;

     

  2. PL/SQL表相当于高级语言中的数组。但PL/SQL中下表可以为负数,并且表元素的下表没有限制。

    declare

    type sp_table_type is table of emp.ename%type index by binary_integer;--下标是整数

    sp_tablesp_table_type;

    begin

             select ename into sp_table(0) from emp where empno=7788;

             cbms_output.put_line('员工名:'||sp_table(0));

    end;

     

  1. 参照变量

  1. 游标变量 REF CURSOR

  2. 对象类型变量 REF obj_type

     

  1. REF CURSOR

    declare

    --定义游标类型

    type sp_emp_cursor is ref cursor;

    --定义一个游标变量

    test_cursorsp_emp_cursor;

    v_enameemp.ename%type;

    v_salemp.sal%type;

    begin

          --test_cursor和一个select结合

          open test_cursor for select ename,sal from emp where deptno=&no;

          --循环取出

          loop

               fetch test_cursor into v_ename,v_sal;

               --判断test_cursor是否为空

               exit when test_cursor%notfound;

               dbms_output.put_line('名字:'||v_ename ||' 工资:'||v_sal);

          end loop;

    end;

     

  1. LOB变量

LOB变量是指用于存储大批量数据的变量。OracleLOB分为两种:内部LOB和外部LOB。内部LOB包括CLOBBLOBNCLOB三种类型,它们的数值被存储在数据库中,并且支持事务操作(提交,回退,保存点)。

外部LOB只有BFILE一种类型,该类型的数据被存储在OS文件中,并且不支持事务操作。

CLOB/NCLOB用于存储大批量字符数据,BLOB用于存储大批量二进制数据,而BFILE则存储指向OS文件的指针。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值