stored procedures - PLS-00103: Encountered the symbol “end-of-file” when expecting one of the following: :=(@%; -


i'm trying execute stored procedure dynamically since got alof of them based on simple number, created procedure this, keep getting erro on title of question, here procedure:

procedure p_exec_reg(p_register in varchar2, p_linebuff in varchar2, p_user in varchar2)      l_procedure   varchar2(50);   l_sentence    varchar2(500);  begin       l_procedure := 'p_reg_' || trim(p_register);   l_sentence := 'begin cts.pk_integrate_manifesto.' || l_procedure || '(:a, :b); end;';   execute immediate l_sentence   using in p_linebuff, p_user;     end; 

since have hundreds of procedures, pain if statements, hope can me out on this, also, show how calling this:

procedure p_load_file(p_linebuff in varchar2, p_user in varchar2)  l_register        varchar2(3);  begin     begin        select substr(p_linebuff,1,3)          l_register          dual;                      exception          when no_data_found             --p_result := false;             null;     end;     cts.pk_integrate_manifesto.p_exec_reg(l_register, p_linebuff, p_user);      exception       when others       null;          end; 

thank guys, found answer issue @john heller's comment, command notice in fact executing, when sending dynamic parameter, isl_register, wasnt checking null values, went straight execute immediate procedure null parameter @ end. looks this:

procedure p_load_file(p_linebuff in varchar2, p_user in varchar2, p_error out boolean, p_message out varchar2)    l_messagelevel    number(1);   l_register        varchar2(3);   l_command         varchar2(50);   l_procedure       varchar2(4000);   l_error           number(1);    begin                  if p_linebuff not null or p_linebuff <> ''         begin            select substr(p_linebuff,1,3)              l_register              dual;             if length(trim(l_register)) = 3               p_exec_reg(l_register, p_linebuff, p_user, l_error, p_message);            end if;                        exception              when no_data_found                 null;         end;     end if;    exception   when others       p_error := true;       p_message := 'sucedio un error al procesar el archivo.';         end; 

thanks help, , sorry if dumb question :)


Comments