wrong1111 发表于 2013-1-27 05:46:35

oracle 存储过程中的失误!

今天在做使用ORACEL存储过程的时候,遇到一个最低级的失误!
 错误码:ORA-01008: not all variables bound;
数据库ORACLE 9I;
经过网上查询.才得知,是因为绑定变量在执行语句的时候没有绑定值..http://www.agoit.com/javascripts/fckeditor/editor/images/smiley/msn/embaressed_smile.gif-_-!汗呀!
之前的例子如下:
---创建包,声明游标,存储过程.有点像C++里的函数声明^-^!
 CREATE OR REPLACE PACKAGE pkg_test
         AS
           TYPE myrctype IS REF CURSOR;
 
         PROCEDURE  pkg_pro(p_id varchar2, p_rc OUT myrctype);
          END pkg_test;
--- 包体,实现声明的过程.
CREATE OR REPLACE  package  body pkg_test
AS
    
    PROCEDURE pkg_pro(p_id  in varchar2 , p_rc OUT myrctype)
    IS
   
    BEGIN
      OPEN    p_rc  FOR 'select areaid,parentid,areaname,arealevel from area where areaid =:p_id'; -----error
    END pkg_pro;
END pkg_test;
---执行语句体
DECLARE
s1 VARCHAR2(10);
s   VARCHAR2(10) ;
t   VARCHAR2(40);
v   VARCHAR2(1);
cc pkg_test.myrctype ; 
BEGIN 
 pkg_test.pkg_pro('1',cc);
 LOOP
 FETCH cc INTO  s1,s,t,v;
 EXIT WHEN cc%NOTFOUND;
  DBMS_OUTPUT.PUT_LINE(' status'||s1||' are'||s);
 END LOOP;
 CLOSE cc;
END;
 
注:错误地方在---error处
 
改为:OPEN    p_rc  FOR 'select areaid,parentid,areaname,arealevel from area where areaid ='||p_id;
执行OK;
 
页: [1]
查看完整版本: oracle 存储过程中的失误!