Hai All

We are using Oracle 8 . I tried out using DBMS_SQL.

declare
id number;
x varchar2(100);
y varchar2(40);
z number;
t number;
begin
select function_name into x from func;
id:=dbms_sql.open_cursor;
y:='select '||x||' from dual';
dbms_sql.parse(id,y,dbms_sql.NATIVE);
z:=dbms_sql.execute(id);
dbms_sql.close_cursor(id);
end;

The PL/SQL procedure was executed successfully.
But  how do I display the output (i.e the return value of the function )
or store the output into a variable .

Thanks in advance
Dpb



|--------+----------------------------->
|        |          "Ramasubramanian,  |
|        |          Shankar            |
|        |          (Cognizant)"       |
|        |          <[EMAIL PROTECTED]|
|        |          IZANT.COM>         |
|        |                             |
|        |          10/24/01 01:35 PM  |
|        |          Please respond to  |
|        |          ORACLE-L           |
|        |                             |
|--------+----------------------------->
  >--------------------------------------------------------|
  |                                                        |
  |       To:     Multiple recipients of list ORACLE-L     |
  |       <[EMAIL PROTECTED]>                           |
  |       cc:     (bcc: Divya pb/VGIL)                     |
  |       Subject:     RE: Function                        |
  >--------------------------------------------------------|



Hi  Divya,
           you have to use dynamicsql for calling the function . First step
select the function name into a variable say ls_fn_name from the table func
.Then create a dynamic statement

'Select' || ls_fn_name  || ' from  dual ' and cpature  the return value
into
another variable . If u are using oracle 8i , u can  use execute immediate
statement . for prior oracle versions use DBMS_SQL statement .

Regards,
Shankar

-----Original Message-----
[mailto:[EMAIL PROTECTED]]
Sent: Wednesday, October 24, 2001 11:50 AM
To: Multiple recipients of list ORACLE-L


Hi All

I have stored a user defined function as Varchar field in a table.
How do I execute this function.

Here is the table where the function is stored.

SQL> select * from func;

FUNCTION_NAME
-----------------------------------------
Calc_radius(5)


This procedure contains the following Code :

create function calc_radius(r in number) return number is
begin
return 3.14*r*r;
end;

Executing this funtion at SQL Prompt give the output as

SQL> SELECT CALC_RADIUS(5) FROM DUAL;

CALC_RADIUS(5)
--------------
          78.5

I want to execute this function from a PL/SQL Block.
I tried to store this function into a variable and then execute it.
But it returns only the content of the field FUNCTION_NAME
and not the value.

Can anyone suggest a solution for this problem ?

Regards
Dpb


--
Please see the official ORACLE-L FAQ: http://www.orafaq.com
--
Author:
  INET: [EMAIL PROTECTED]

Fat City Network Services    -- (858) 538-5051  FAX: (858) 538-5051
San Diego, California        -- Public Internet access / Mailing Lists
--------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).
(See attached file: InterScan_Disclaimer.txt)

Text - character set unknown

Reply via email to