我有张表...
然后里面有个字段是monthyear。。
现在就是说。。。我想做一个判断。。
比如说字段上已经有了123这数据。。就提示数据已经存在。。。
我写的函数如下。。但是失败了(编译没错,但调用的时候错了):
create or replace function data_check(p_monthyear in varchar2)
return boolean is
v_alread_in char(1);
begin
select monthyear
into v_alread_in
from actual_lease_charges
where monthyear=p_monthyear;
if v_alread_in ='01-2012' then
declare
data_ck varchar(1);
begin
data_ck := data_check('01-2012');
end;
这是SQL:
created table actual_lease_charges(
monthyear varchar2(10))
insert into actual_lease_charges values('01-2012');
insert into actual_lease_charges values('01-2012');
insert into actual_lease_charges values('02-2012');
insert into actual_lease_charges values('02-2012');
麻烦兔子指点。。。谢谢啊!!
本帖最后由 阿吉2009 于 2012-11-14 14:12 编辑
明白你的意思了。
select 1 from actual_lease_charges
where monthyear=p_monthyear;
if SQL%NOTFOUND then
return false;
else
return true;
end if;
begin
if data_check('01-2012') then
dbms_output.put_line('数据已经存在!');
end;
阿吉2009 发表于 2012-11-14 14:10
明白你的意思了。
select 1 from actual_lease_charges
where monthyear=p_monthyear;
create or replace function data_check(p_monthyear in varchar2)
return boolean is
v_alread_in integer := 0;
begin
select 1 into v_alread_in from actual_lease_charges
where monthyear=p_monthyear;
if SQL%NOTFOUND then
return false;
else
return true;
end if;
end;
begin
if data_check('01-2012') then
dbms_output.put_line('数据已经存在!');
end if;
end;
阿吉2009 发表于 2012-11-14 14:26
笨!不要 into v_alread_in
create or replace function data_check(p_monthyear in varchar2)
return boolean is
v_alread_in integer := 0;
begin
select 1 from actual_lease_charges
where monthyear=p_monthyear;
if SQL%NOTFOUND then
return false;
else
return true;
end if;
end;
你是说这样吗。。但是这个直接提示缺少into啊。。。。。。