存储过程调用带参数的视图 没查出东西

存储过程调用带参数的视图 没查出东西

-- 包
create or replace package package_test is

  -- Author  : ADMINISTRATOR
  -- Created : 2019/8/2 14:57:01
  -- Purpose : 


  function set_sfsc_param(sfsc varchar2) return varchar2;
  function get_sfsc_param return varchar2;

  function set_cjsj_param(cjsj varchar2) return varchar2;
  function get_cjsj_param return varchar2;

end package_test;

-- 包体
create or replace package body package_test is

paramSfsc varchar2(10);
paramCjsj varchar2(20);

function set_sfsc_param(sfsc varchar2) return varchar2 is
  begin
    paramSfsc:=sfsc;
    return sfsc;
  end;

  function get_sfsc_param return varchar2 is
  begin
    return paramSfsc;
  end;

  function set_cjsj_param(cjsj varchar2) return varchar2 is
    begin
      paramCjsj:=cjsj;
      return cjsj;
    end;

  function get_cjsj_param return varchar2 is
    begin
      return paramCjsj;
    end;



end package_test;

-- 存储过程
create or replace procedure mytestddd(p_startDate in VARCHAR) as

cursor cur_jg is select sl from view_test where package_tjbb.set_scbj_param(0)=0;
jg number;
begin
for jg in cur_jg loop
begin
dbms_output.put_line(jg.sl); 
end;
end loop;
dbms_output.put_line(p_startDate);
end mytestddd;

-- 视图 
create or replace view view_test as
select count(a.jgid) sl from xt_jgxxb a where a.scbj = package_tjbb.get_scbj_param();
-- sql
select sl from view_test where package_tjbb.set_scbj_param(0)=0;

正常情况下 用sql 查询会查询出 表中所有 scbj = 0的数据 但是 用存储过程调用带参数的视图的情况下 则在存储过程中 循环输出 则输出的是0 求大神帮忙

Crazy_liuxin
Crazy_liuxin 测试了一下 发现查询视图的sql 第一次执行的时候 返回的是0 第二次执行的时候就出来700多条 估计是视图的问题
7 个月之前 回复

1个回答

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问