以下存贮过程有什么错误,编译不通过。

luhanzhang 2005-11-28 03:18:25
CREATE OR REPLACE PROCEDURE ECC_BEM.UPDATE_SUBJECTTYPE as
cursor signcursor is
select * from ECC_BEM_FINANCE_SUBJECT_IMPORT;
errormessage exception;
accountrecord ECC_BEM_FINANCE_SUBJECT_IMPORT%rowtype;
acccountsign varchar2(10);
accountnumber varchar2(50);
len number;
q_9 number;
q_8 number;
q_6 number;
q_5 number;
q_4 number;
q_3 number;

BEGIN
open signcursor;
if signcursor%notfound then
raise errormessage;
end if;
loop
fetch signcursor into accountrecord;
accountnumber :=accountrecord.ACCOUNT_NUMBER;
len := length(accountrecord.ACCOUNT_NUMBER);
select count(*) into q_9 from ECC_BEM_FINANCE_SUBJECT_IMPORT where ECC_BEM_FINANCE_SUBJECT_IMPORT.ACCOUNT_NUMBER like ''||accountnumber||'%' and length(ACCOUNT_NUMBER)>9;
select count(*) into q_8 from ECC_BEM_FINANCE_SUBJECT_IMPORT where ECC_BEM_FINANCE_SUBJECT_IMPORT.ACCOUNT_NUMBER like ''||accountnumber||'%' and length(ACCOUNT_NUMBER)>8;
select count(*) into q_6 from ECC_BEM_FINANCE_SUBJECT_IMPORT where ECC_BEM_FINANCE_SUBJECT_IMPORT.ACCOUNT_NUMBER like ''||accountnumber||'%' and length(ACCOUNT_NUMBER)>6;
select count(*) into q_5 from ECC_BEM_FINANCE_SUBJECT_IMPORT where ECC_BEM_FINANCE_SUBJECT_IMPORT.ACCOUNT_NUMBER like ''||accountnumber||'%' and length(ACCOUNT_NUMBER)>5;
select count(*) into q_4 from ECC_BEM_FINANCE_SUBJECT_IMPORT where ECC_BEM_FINANCE_SUBJECT_IMPORT.ACCOUNT_NUMBER like ''||accountnumber||'%' and length(ACCOUNT_NUMBER)>4;
select count(*) into q_3 from ECC_BEM_FINANCE_SUBJECT_IMPORT where ECC_BEM_FINANCE_SUBJECT_IMPORT.ACCOUNT_NUMBER like ''||accountnumber||'%' and length(ACCOUNT_NUMBER)>3;

if ( len = 9 and q_9=0) then
acccountsign:='leaf';
else if (len = 8 and q_8=0) then
acccountsign:='leaf';
else if (len = 6 and q_6=0) then
acccountsign:='leaf';
else if (len = 5 and q_5=0) then
acccountsign:='leaf';
else if (len = 4 and q_4=0) then
acccountsign:='leaf';
else if (len = 3 and q_3=0) then
acccountsign:='leaf';
else
acccountsign:='';
end if;
exit when signcursor%notfound;
update ECC_BEM.ECC_BEM_FINANCE_SUBJECT_IMPORT set FINANCE_SUBJECT_CODE = acccountsign where ACCOUNT_NUMBER =accountrecord.ACCOUNT_NUMBER ;
end loop;
close signcursor;
commit;
END;
...全文
171 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
wgsasd311 2005-11-29
  • 打赏
  • 举报
回复
可能是like ''||accountnumber||'%',不知道这样表示有没有错误?accountnumber是变量.
========>LIKE可以这样用,没有错。你上面程序错在if ... then...else if... else ... end if
waterfirer 2005-11-29
  • 打赏
  • 举报
回复
把else if换成elsif,
like ''||accountnumber||'%'不会报错,也可以写成like accountnumber||'%'
luhanzhang 2005-11-29
  • 打赏
  • 举报
回复
用的是Aqua Data Studio,根本没有提示错误在哪一行.
可能是like ''||accountnumber||'%',不知道这样表示有没有错误?accountnumber是变量.
guangli_zhang 2005-11-29
  • 打赏
  • 举报
回复
把else if 改为elsif 试试
waterfirer 2005-11-29
  • 打赏
  • 举报
回复
语法错误
if then
else
if then
else
end if
end if
或者
if then
elsif then
elsif then
end if
你那样写不行的,呵呵
luhanzhang 2005-11-29
  • 打赏
  • 举报
回复
if ... then...else if... else ... end if有什么错误?
chyf212 2005-11-28
  • 打赏
  • 举报
回复
提示什么错误啊?
waterfirer 2005-11-28
  • 打赏
  • 举报
回复
else if
------
elsif
mayongzhi 2005-11-28
  • 打赏
  • 举报
回复
报什么错误啊,然后你看光标停在那个位置,一般就是那个地方错了
doulikeme 2005-11-28
  • 打赏
  • 举报
回复
什么错误?哪一行?

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧