Stored procedures 当其他人打开时,则如果SQLCODE!=-942然后上升;如果结束;结束;它工作正常,但目前我收到一个错误,错误为Create error:PLS-00103:在预期以下情况之一时遇到符号“Create”:(begin case declare end e
Stored procedures 当其他人打开时,则如果SQLCODE!=-942然后上升;如果结束;结束;它工作正常,但目前我收到一个错误,错误为Create error:PLS-00103:在预期以下情况之一时遇到符号“Create”:(begin case declare end e,stored-procedures,oracle11g,Stored Procedures,Oracle11g,当其他人打开时,则如果SQLCODE!=-942然后上升;如果结束;结束;它工作正常,但目前我收到一个错误,错误为Create error:PLS-00103:在预期以下情况之一时遇到符号“Create”:(begin case declare end exception exit for goto if loop mod null pragma raise return select update,而with if i remove则会出现与“Create”相同的错误)begin case d
当其他人打开时,则如果SQLCODE!=-942然后上升;如果结束;结束;它工作正常,但目前我收到一个错误,错误为Create error:PLS-00103:在预期以下情况之一时遇到符号“Create”:(begin case declare end exception exit for goto if loop mod null pragma raise return select update,而with if i remove则会出现与“Create”相同的错误)begin case declare end exception exit for goto if loop mod null pragma raise return select update while with'end CommandScript;'结尾对我来说没有意义,因为过程在第9行结束;您能运行脚本的这部分并告诉我结果吗?创建或替换过程CommandScript开始立即执行“DROP TABLE sf_tmp”;当其他人然后如果SQLCODE!=-942然后升高时异常;结束如果;结束;它工作正常,但当前我收到一个错误,带有Create错误:PLS-00103:在预期以下情况之一时遇到符号“Create”:(begin case declare end exception exit for goto if loop mod null pragma raise return select update while with the This with the This over widee阅读:这太宽泛了。请将您的代码分解为更小的部分,找出导致您出现问题的一个功能。接下来,您将提供一个指向guthub的链接,要求我们调试整个项目。请阅读以下内容:
CREATE OR REPLACE PROCEDURE CommandScript IS
BEGIN
EXECUTE IMMEDIATE 'DROP TABLE sf_tmp';
EXCEPTION
WHEN OTHERS THEN IF SQLCODE != -942
THEN RAISE;
END IF;
create table sf_tmp(smcard varchar2(17),p_line varchar2(1000));
INSERT INTO dec_tmp(DECSCNR,DECSCPSNR)
SELECT TRIM (SUBSTRB (qinputstring, INSTR (qinputstring, '|', 1, 2) + 1,11)) dec_nr,
decoders.decscpsnr FROM bgqueue, decoders WHERE qworktype = 10
AND decoders.decscpsnr > 0 AND decoders.decscnr =
TRIM (SUBSTRB (qinputstring,INSTR (qinputstring, '|', 1, 2) + 1,11))
AND LENGTH (TRIM (SUBSTRB (qinputstring,INSTR (qinputstring, '|', 1, 2) + 1,11))) = 11;
commit;
declare
CURSOR smcard_cursor IS
(select d.DECSCNR,d.DECSCPSNR from dec_tmp d);
CURSOR prod_cursor (v_pslink number ) IS
(select p.psdecscpsnrlink, c.CPCSIENTITLEMENTS
from csiprod c, prodsubs p
where p.psdecscpsnrlink = v_pslink
and c.CPIBSPRODUCTNR = p.psproductnr
and c.CPCONDITIONNR =1
and c.cpcsientitlements<>'NILDRA'
and p.psstatus = 'A' ) ;
m_decno varchar2(17) ;
v_decno varchar2(17) ;
prod_line VARCHAR2(1000) ;
prod_full VARCHAR2(1000) ;
comma_line VARCHAR2(1000) ;
prod_len number ;
prod_diff number ;
new_prodct varchar2(300) ;
L_Size NUMBER ;
new_size number ;
s_link number ;
space_con number ;
sw number ;
BEGIN
FOR smcard_record IN smcard_cursor LOOP
prod_line := '' ;
prod_full := '' ;
comma_line := '' ;
prod_len :=0 ;
prod_diff :=0 ;
L_Size :=0 ;
new_size := 0 ;
space_con := 0;
new_prodct := '' ;
sw := 0 ;
S_link := smcard_record.decscpsnr ;
v_decno:= substr(smcard_record.decscnr,1,10) ;
m_decno:= substr(smcard_record.decscnr,1,11) ;
FOR prod_record IN prod_cursor (s_link) LOOP
SW := 1 ;
prod_len := length(prod_record.CPCSIENTITLEMENTS) ;
prod_diff := mod(prod_len,6) ;
if prod_diff = 0 THEN
new_prodct := prod_record.CPCSIENTITLEMENTS ;
else
space_con :=prod_len+6-prod_diff ;
new_prodct := rpad(prod_record.CPCSIENTITLEMENTS, space_con,' ') ;
end if ;
prod_line := prod_line || new_prodct ;
end loop ;
if sw = 1 then
L_size := length(prod_line) ;
comma_line := comma_line || substr(prod_line,1,6);
for I in 1..L_size LOOP
IF MOD(I,6) = 0 THEN
comma_line := comma_line ||',' || substr(prod_line,(I+1),6) ;
END IF;
end loop ;
new_size := length(comma_line) - 1 ;
comma_line := substr(comma_line,1,new_size) ;
prod_FULL :='SOFULL'||','||'002000,'|| v_decno||',EGY,'||'EG,'||'NONE ,'||comma_line ;
insert into sf_tmp (smcard,p_line) values (m_decno,prod_full) ;
commit ;
end if ;
end loop ;
END;
END;
create table sf_tmp(smcard varchar2(17),p_line varchar2(1000));
create procedure begin ... declare ... begin ... end ... end
create procedure ... begin ... end ... begin ... end
insert into sf_tmp (smcard,p_line) values (m_decno,prod_full) ;