17,140
社区成员




我现在有一个这样的 过程
但是执行总是报 缺失右括号 不知道为什么 大家帮忙看看
create or replace procedure test_p is
type tcur is ref cursor;
fi_cur1 tcur;
dos1 date;
dos30 date;
begin
dos1 := to_date('2006-01-01','yyyy-mm-dd');
dos30 := to_date('2006-11-01','yyyy-mm-dd');
open fi_cur1 for ' select distinct mbrid from fi06
where ( mbrid=''1000'' and dos >= '||dos1||' and dos <= '||dos30||')';
--。。。。
end test_p;
create or replace procedure test_p
is
type tcur is ref cursor;
fi_cur1 tcur;
dos1 date;
dos30 date;
begin
dos1 := to_date('2006-01-01','yyyy-mm-dd');
dos30 := to_date('2006-11-01','yyyy-mm-dd');
open fi_cur1 for ' select distinct mbrid from fi06 where ( mbrid='||chr(39)||'1000'||chr(39)|| 'and dos >= '||dos1||' and dos <= '||dos30||')';
end test_p;
你的意思是
create or replace procedure test_p is
type tcur is ref cursor;
fi_cur1 tcur;
dos1 varchar2(20);
dos30 varchar2(20);
name varchar2(20);
begin
dos1 := '2006-01-01';
dos30 := '2006-11-01';
name := 'fi06';
open fi_cur1 for ' select distinct mbrid from '||name||'
where ( mbrid=''1000'' and dos >= '||to_date(dos1,'yyyy-mm-dd')||' and dos <= '||to_date(dos30,'yyyy-mm-dd')||')';
end test_p;
但是还是是不可以的还是报 缺失右括号
create or replace procedure test_p is
type tcur is ref cursor;
fi_cur1 tcur;
dos1 date;
dos30 date;
name varchar2(20);
begin
dos1 := to_date('2006-01-01','yyyy-mm-dd');
dos30 := to_date('2006-11-01','yyyy-mm-dd');
name := 'fi06';
open fi_cur1 for ' select distinct mbrid from '||name||'
where ( mbrid=''1000'' and dos >= '||dos1||' and dos <= '||dos30||')';
end test_p;
open fi_cur1 for ' select distinct mbrid from fi06
where ( mbrid=''1000'' and dos >= '||dos1||' and dos <= '||dos30||')';