Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.misc -> Re: Newbie question: Is there a way to let "select ...from" statement accept a variable as a table name?

Re: Newbie question: Is there a way to let "select ...from" statement accept a variable as a table name?

From: Martin Doherty <martin.doherty_at_elcaro.moc>
Date: Mon, 25 Nov 2002 11:38:21 -0800
Message-ID: <33vE9.9$4B4.135@news.oracle.com>


Karsten Farrell wrote:

> phmyhn wrote:
>
>> I created a procedure which has two IN type parameters. Then I
>> declared a local variable and assign it to the concatenation of the
>> two passed in variables. Then I wanted to use this variable as a table
>> name for "select...from" statement. But I got error said that table
>> name didn't exist. Is there a way to let the select statement get the
>> value of the variable but not the literal name of the variable ? My
>> code was like this:
>> create or replace procedure addpara(p_para1 varchar2, p_para2
>> varchar2)
>> is
>> v_name varchar2(20) := p_para1 || p_para2;
>> begin
>> select * from v_name where id = 10000; --if commented this
>> line,there's no error
>> dbms_output.put_line(v_name);
>> end addpara; Any helps would be appreciated.
>
> Change the select to:
>
> execute immediate 'select * from ' || v_name || ' where id = 10000';

Karsten,

Is it possible to retrieve the results of a query executed in this manner?

 From my knowledge of dynamic SQL in Pro*languages, it's going to be more complex than this.

Martin Doherty Received on Mon Nov 25 2002 - 13:38:21 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US