Re: Help: how to update a table with a value from Stored procedure

From: Tim X <timx_at_nospam.dev.null>
Date: Fri, 07 Nov 2008 16:17:56 +1100
Message-ID: <87bpws6rnf.fsf@lion.rapttech.com.au>


emdproduction_at_hotmail.com writes:

> Dear Group,
>
> We have a third party supplied package which we do not want to change.
>
> I would like to update a table with a value from the procedure. I can
> use PL/SQL to do that. But our tool does not support PL/SQL, i have
> to use SQL.
>
> Something like
>
> SQL> var res varchar2(30)
> SQL> exec test_procedure(res);
> SQL> update my_table set col1=:res where ...
>
> But our application does not even support that. I have to do
> something like
> SQL>update my_table set col = (:test_procedure)
>
> or something like
> SQL>update my_table set col =(select :test_procedure from dual);
>
> Anyway we can make this into one SQL?
>

From the info you provided, its nearly impossible to tell. some things to consider -

  1. If its a plsql procedure, it doesn't return a value, so your idea of calling itsomehow inside a select won't work.
  2. In pl/sql, functions return values, not procedures. If it is a function, then you might be able to do something. However, you need to read up on the restrictions on using user defined functions in sql - see the sql reference manual.
  3. The only way I can think of to get a value out of a procedure is if one of its arguements is defined as an OUT or IN OUT parameter.

Tim

-- 
tcross (at) rapttech dot com dot au
Received on Thu Nov 06 2008 - 23:17:56 CST

Original text of this message