create or replace procedure test
(
v_delflg in varchar2, 
v_withdata in varchar2, 
v_columnList  in varchar2, 
RefCur_MasterBO out varchar2,
v_totalCount out varchar2

as
begin
  --SELECT F001,F002,F003,F004,F005,F006,F007,UPDID,UPDDT FROM TMDR01;
  RefCur_MasterBO := '1';
  --v_totalCount := select count(*) from TMDR01;
end test;
注释掉的2句话怎么错了????

解决方案 »

  1.   

    据贫道夜观天像,发现是存储过程里应该用select col into var from tab这种形式保存查询结果所致。
      

  2.   

    --v_totalCount := select count(*) from TMDR01;
    改成
    select count(*) into v_totalCount from TMDR01;上面那个,看不出来你要查询这么多列干嘛,返回的又是多列,建议用游标来处理。
      

  3.   

    --SELECT F001,F002,F003,F004,F005,F006,F007,UPDID,UPDDT FROM TMDR01;这一句 你查出来的结果 有什么用? 没有into  也没有放到游标 ,最后查出的结果没有意义!  --v_totalCount := select count(*) from TMDR01;
    利用查询语句 给 v_totalCount  复制 是这样的 select count(*) into v_totalCount   from TMDR01;
      

  4.   

    我想返回DATASET 是不是必须用游标阿??????????????????
    应该怎么写啊?
      

  5.   

    我想返回DATASET 是不是必须用游标阿??????????????????
    应该怎么写啊?
      

  6.   


    create or replace procedure test
    (
    v_delflg in varchar2,
    v_withdata in varchar2,
    v_columnList in varchar2,
    RefCur_MasterBO out SYS_REFCURSOR,
    v_totalCount out varchar2
    )
    as
    begin
      open RefCur_MasterBO for SELECT F001,F002,F003,F004,F005,F006,F007,UPDID,UPDDT FROM TMDR01;  select count(*) into v_totalCount from TMDR01 ;
    end test;
      

  7.   

    create or replace procedure test
    (
    v_delflg in varchar2,  
    v_withdata in varchar2,  
    v_columnList in varchar2,  
    RefCur_MasterBO out varchar2,
    v_totalCount out varchar2
    )  
    as
    begin
     -- SELECT F001,F002,F003,F004,F005,F006,F007,UPDID,UPDDT FROM TMDR01;
      RefCur_MasterBO := '1';
    select count(*) into v_totalCount from TMDR01;
    end test;注释掉的这一行你要用的话用select …… into …… from 应该就可以了