ITPub博客

首页 > Linux操作系统 > Linux操作系统 > PL/SQL小结

PL/SQL小结

原创 Linux操作系统 作者:ljm0211 时间:2012-06-20 13:06:22 0 删除 编辑
在pl/sql中定义包的过程中,类型定义要写在包头里,赋值语句写在begin。。end中。
定义数组类型的方法:
      TYPE TYPE_Array_S IS TABLE of NUMBER(14,4);
游标定义:
      CURSOR result_cursor IS
    SELECT expression FROM KEVINLLI_24 WHERE pvar1=a_exp(1) AND pvar2=a_exp(2) AND pvar3=a_exp(3) AND pvar4=a_exp(4);
游标使用前要open cursor_1;使用后close cursor_1;
判断cursor%found或者cursor%notfound时,要先FETCH result_cursor INTO v_exp_cur;
    FOR result_rec IN result_cursor LOOP    
     print(result_rec.expression);
    END LOOP ;
如上for语句中有打开游标和关闭游标的过程,所以在使用for语句前游标应该是关闭的,不然会出错误。
      空字符串sub='';用length函数得不到长度的返回值,可以将空字符串赋值空格,如:sub=' ';这样可以用length函数取得长度为1;
      函数或过程参数如果没有in,out属性,默认为in,所以在函数或过程中不可以给那个参数赋值,否则会出错;要给参数赋值,可以把它的属性声明为in out;如:
PROCEDURE Test_24(
   a_num IN OUT TYPE_Array_S,
   v_n IN OUT NUMBER,
   v_expression IN OUT VARCHAR2
   )
数组作为一个函数的参数时,不应该有括号;如:
   ELSIF result_cursor%NOTFOUND THEN
   Test_24(a_num,v_n,v_expression);--其中a_num是数组
    CLOSE result_cursor;
    OPEN result_cursor;

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/11411056/viewspace-733349/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-05-14

  • 博文量
    272
  • 访问量
    491392