小编典典

从from子句的列中获取表名

sql

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

    id| name|table_in| where_clause

    1 | Sam | t1 | age = 22

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

等等…

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

    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是另一个表,我要将记录用于下一个目的。


阅读 174

收藏
2021-03-10

共1个答案

小编典典

@Akshay,

请找到下面的代码以供参考。

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;
/
2021-03-10