Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

Re: Execute Oracle Stored procedure using DBIx::ProcedureCall

by afoken (Parson)
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 browsing the Monastery: (12)
As of 2014-12-18 18:06 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (59 votes), past polls