http://www.perlmonks.org?node_id=813831


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

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;

Replies are listed 'Best First'.
Re^3: Execute Oracle Stored procedure using DBIx::ProcedureCall
by afoken (Chancellor) on Dec 23, 2009 at 14:15 UTC
    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". ;-)