2010-10-26 12 views
1

J'ai créé un paquet et un corps de paquet comme ci-dessous:erreur Oracle création Package

Create or replace Package pkg_1 
as 
procedure main(param1 varchar2, param2 varchar2, param3 int); 
procedure one(param1 varchar2, param2 varchar2); 
procedure two(param1 varchar2, param2 varchar2); 
end pkg_1; 
/

create or replace package body pkg_1 
as 
procedure main (param1 varchar2, param2 varchar2, param3 int) 
is 
v_sql_script varchar2(1000); 
begin 
case param3 
when 1 then 
v_sql_script := 'begin exec pkg_1.one(:param1,:param2); end;'; 
execute immediate v_sql_script using param1, param2; 
end case; 
end; 

Maintenant, quand j'exécute la procédure de package avec la déclaration suivante:

exec pkg_1.main('p1','p2',1); 

I got the following error: 

ORA-06550: line 1, column 12: 
PLS-00103: Encountered the symbol "PKG_1" when expecting one of the following: 

    := . (@ % ; 
The symbol ":=" was substituted for "PKG_1" to continue. 

Quelqu'un peut-il s'il vous plaît me suggérer ce que je avez mal fait ici?

Merci.

Répondre

5

Il semble que vous l'exécutiez dans un bloc PL/SQL, auquel cas vous n'avez pas besoin de exec. Il suffit de faire pkg_1.main('p1','p2',1); seul.

Assez semblable à une partie de this question.

+0

Merci beaucoup. – niceApp

+0

Oui c'était le cas. Cela fonctionne bien maintenant. – niceApp