为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:HWarm920_kylin10
【操作系统】:kylin10
【CPU】:鲲鹏920
【问题描述】*:
在测试服务器上的是 x86 版本的dm8,存储过程正常,迁移至 kylin10 版的 dm8 执行,报 语法分析出错。
CREATE OR REPLACE PROCEDURE DEPLOY.P_ZZ_LGY_CYRY_MONTH_TJ
(
vTjdw varchar2,
vTjlx varchar2,
vTjsj varchar2
) Is
cursor cur_LGXX is select COMPANY_UNITTYPE,t.company_id,t.company_name,t.company_shopname,t.company_policecode
from DEPLOY.ht_company_basicinfo t where company_policecode like ''||vTjdw||'' and t.company_checkstate='3';
vSql VARCHAR2(500);
vCol11 number;
vCol12 number;
Begin
vDay := Extract(day from sysdate);
begin
DELETE DEPLOY.T_ZZ_LGY_CYRY_MONTH_TJ where STIME like substr(vTjsj,0,6)||'%' AND TJLX=vTjlx;
COMMIT;
for rec_cur_LGXX in cur_LGXX Loop
begin
vSql :='SELECT
NVL(SUM(CASE WHEN PERSONNEL_TYPE=''2'' AND DEL_FLAG=''1'' THEN 1 ELSE 0 END),0) CT2 ,
NVL(SUM(CASE WHEN PERSONNEL_TYPE=''1'' AND DEL_FLAG=''1'' THEN 1 ELSE 0 END),0) CT4
FROM DEPLOY.SYS_USER_LVYE t
WHERE COMPANY_ID ='''||rec_cur_LGXX.company_id||''' AND USER_POLICECODE = '''||rec_cur_LGXX.company_policecode||'''';
EXECUTE IMMEDIATE vSql INTO vCol11, vCol12;
end;
end loop;
end;
End;
问题好像出现循环体 的写法上。请大神指教。。
kukaki
将SQL中END;END LOOP;中间的换行删掉,连着就可以正常执行了,这个是管理工具版本的问题,现在新版本已经解决了,如果不方便使用可以下载最新的管理工具试一下。
已解决,语句需要更严谨,循环体内不需要再 写 begin..end;