sSql:='select * from.........'
begin
   nSource := DBMS_SQL.OPEN_CURSOR;
   DBMS_SQL.PARSE(nSource,sSql,DBMS_SQL.V7);
   nRet := DBMS_SQL.EXECUTE(nSource);
   DBMS_SQL.CLOSE_CURSOR(nSource);
   EXCEPTION WHEN OTHERS THEN
      IF DBMS_SQL.IS_OPEN(nSource) THEN
         DBMS_SQL.CLOSE_CURSOR(nSource);
      END IF;
end;能在语句的旁边简单注释下吗?

解决方案 »

  1.   

    sSql:='select * from.........' 
    begin 
       nSource := DBMS_SQL.OPEN_CURSOR;  --返回游标的id
       DBMS_SQL.PARSE(nSource,sSql,DBMS_SQL.V7); 设置游标,DBMS_SQL.V7是语言id
       nRet := DBMS_SQL.EXECUTE(nSource); --执行
       DBMS_SQL.CLOSE_CURSOR(nSource);--关闭 
       EXCEPTION WHEN OTHERS THEN 
          IF DBMS_SQL.IS_OPEN(nSource) THEN --异常时关闭
             DBMS_SQL.CLOSE_CURSOR(nSource); 
          END IF; 
    end; 
      

  2.   

    sSql:='select * from.........' 
    begin 
       nSource := DBMS_SQL.OPEN_CURSOR; //打开游标
       DBMS_SQL.PARSE(nSource,sSql,DBMS_SQL.V7); //解析sql语句
       nRet := DBMS_SQL.EXECUTE(nSource); //执行sql语句
       DBMS_SQL.CLOSE_CURSOR(nSource); //关闭游标
       EXCEPTION WHEN OTHERS THEN 
          IF DBMS_SQL.IS_OPEN(nSource) THEN //判断游标是否打开
             DBMS_SQL.CLOSE_CURSOR(nSource); //如果打开的话就关闭
          END IF; 
    end;