我一个可以正常执行的含有CASE的SQL语句一放到Procedure中就报错,不知道为什么。另外
1、Procedure中不能Create Table是权限问题吗?
2、fetch cur bulk collect into var1,var2  这种多个变量的批量绑订是否支持?我用多个变量就报错,用一个就正常。

解决方案 »

  1.   

    ORACLE9i以后的PL/SQL才支持 CASE  WHEN
      

  2.   

    可以用 IF  ELSE 代替
    1。 Procedure中用动态语句建表没问题的,不行应该是权限问题,或者该表已经存在。
    2。 打开游标可以FETCH多个变量, 你看看定义游标时的SELECT后是几个字段,实在不行
         就定义一个C  CUR%ROWTYPE 类型
        fetch cur INTO C
      

  3.   

    pstable psss;
    fetch cur bulk collect into pstable
    如果你在包里面定义:type psss is table of ...
    可以批量取到PLSQL表中去!