从 from 子句的列中获取表名 [英] fetch table name from a column for from clause

查看:33
本文介绍了从 from 子句的列中获取表名的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个视图 t,其中有一列用于表名,另一列具有 where 子句条件.

I have a view t with me which has a column for table name and another column which has where clause condition.

    id| name|table_in| where_clause

    1 | Sam | t1 | age = 22

    2 | John| t2 | age = 23 and sex = 'male'

等等...

现在,我已将记录放入游标中,并且我想运行每个查询.

Now, I have put the records in a cursor and I want to run each query.

    create or replace procedure create_cursor 
    is

    CURSOR v_records is
    select * from t ;

    begin

    FOR temp IN v_records LOOP
        INSERT INTO myTable (id, name)
        select temp.id, temp.name 
        from temp.table where temp.where_clause;

        END LOOP;


    end;
    /

myTable 是另一个表,我想在其中放置记录以备下次使用.

myTable is another table in which I want to put the records for next purpose.

推荐答案

@Akshay,

请在下面找到代码以供参考.

Please find the code below for your reference.

Create or replace procedure create_cursor is
l_statement varchar2(32767);
cursor v_records is
  select * from t;
begin
for temp in v_records
loop
  l_statement := 'INSERT INTO myTable (id, name) select '||temp.id||','
   ||temp.name|| ' from ' || temp.table1 
   || ' where ' || temp.where_clause;

  execute immediate l_statement;
  end loop;
end;
/

这篇关于从 from 子句的列中获取表名的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆