compile procedure in oracle 11g
You can't call your procedure because you didn't create it. You didn't create it because you had no assignment target for 1 + 2
. You have to declare a variable to put this in. You also have the /
in the wrong place.
Compare the differences between these two:
SQL> create or replace procedure EXAMPLE_P is
2 begin
3 1+2;
4 end;/
5 /
Warning: Procedure created with compilation errors.
SQL> create or replace procedure EXAMPLE_P is
2 i number; -- Declare a variable
3 begin
4 i := 1 + 2; -- assign something to the variable.
5 end;
6 /
Procedure created.
You are then calling it incorrectly. If you have no parameters then you shouldn't include the ()
.
SQL> begin
2 example_p;
3 end;
4 /
PL/SQL procedure successfully completed.
SQL>
I tried to create your procedure in PL/SQL developer and got the following error; so, I'm a little surprised that you never had a problem.
Compilation errors for PROCEDURE ALERT.EXAMPLE_P
Error: PLS-00103: Encountered the symbol "1" when expecting one of the following:
( begin case declare exit for goto if loop mod null pragma raise return select update while with <an identifier> <a double-quoted delimited-identifier> <a bind variable> << continue close current delete fetch lock insert open rollback savepoint set sql execute commit forall merge pipe purge The symbol "return" was substituted for "1" to continue. Line: 3 Text: 1 + 2;
R Vive L OL
Updated on October 07, 2020Comments
-
R Vive L OL over 3 years
I create a simple procedure in oracle 11g with the client squirrel, this s the code
create or replace procedure EXAMPLE_P is begin 1+2; end;/
while executing i got this warning
Warning: Warning: execution completed with warning SQLState: 99999 ErrorCode: 17110 Position: 0 Query 1 of 1, Rows read: 0, Elapsed time (seconds) - Total: 0.031, SQL query: 0.031, Building output: 0
The problem here, i can't call my procedure.
begin EXAMPLE_P(); end;/
I got this error when i execute the block above.
Error: ORA-06550: line 2, column 9: PLS-00302: component 'EXAMPLE_P' must be declared ORA-06550: line 2, column 2: PL/SQL: Statement ignored SQLState: 65000 ErrorCode: 6550 Position: 37
The procedure exists in the table ALL_OBJECTS with the status INVALID. I tried to compile it (validate the status) but i won't work with the query below
alter procedure EXAMPLE_P COMPILE;
SomeOne knows what i can do to call my procedure, (i used PL/SQL developer and never meet this problem)