Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask
 
PerlMonks  

Re: Execute Oracle Stored procedure using DBIx::ProcedureCall

by afoken (Prior)
on Dec 21, 2009 at 20:49 UTC ( #813761=note: print w/ replies, xml ) Need Help??


in reply to Execute Oracle Stored procedure using DBIx::ProcedureCall

A generic hint whenever Oracle gets confused and throws ORA-xxxxx and PLS-xxxxx codes: Type the exact code including the ORA- or PLS-Prefix into Google and look at the first few results. They are often very helpful, even better than the huge load of Oracle's documentation.

ORA-06550 means that Oracle has found a syntax error in some PL/SQL code, PLS-00222 means PL/SQL function not found. The common webpages recommend to check the spelling. A common mistake seems to be that there is a PL/SQL procedure with the given name, but no function (yes, they are different).

It seems you ran into that trap: You talk about running your procedure from SQL Developer, but then instruct perl to invoke a function.

Alexander

--
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so". ;-)


Comment on Re: Execute Oracle Stored procedure using DBIx::ProcedureCall
Re^2: Execute Oracle Stored procedure using DBIx::ProcedureCall
by kalyanrajsista (Scribe) on Dec 22, 2009 at 08:35 UTC

    Here is the Oracle procedure I'm trying to execute...This procedure is printing the output onto the screen. Is there anyway that i can get the output inform of rows from any CPAN Module

    create or replace PROCEDURE abc AS BEGIN DECLARE Tname user_tables.table_name%TYPE; Tstatus user_tables.status%TYPE; CURSOR data_groups IS SELECT table_name, status FROM user_tables; BEGIN OPEN data_groups; FETCH data_groups INTO Tname, Tstatus; WHILE data_groups % FOUND LOOP DBMS_OUTPUT.PUT_LINE(Tname || ' ==> ' || Tstatus); FETCH data_groups INTO Tname, Tstatus; END LOOP; END; END abc;
      Here is the Oracle procedure I'm trying to execute [...] create or replace PROCEDURE abc AS [...]

      This is a PROCEDURE. In your first posting starting this thread, you tried to call it as a FUNCTION.

      A FUNCTION is something else than a PROCEDURE. Functions must return values, procedures can not return anything. Assigning (or comparing) "the result" of a procedure is impossible, as there is no result, and there can't be one.

      something:=someProcedure is invalid, Oracle told you that, and the Google results for "PLS-00222" would have told you that even more clearly. (And I told you that pretty clear, too.)

      Alexander

      --
      Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so". ;-)

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://813761]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (4)
As of 2015-07-07 04:28 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (87 votes), past polls