2

我正在尝试根据存储在另一个表中的查询来使用某些值填充数据库。

表格1:

ID      SQL                                         Title
1       select ID from userTable where ID = 1       Query 1
2       select ID from userTable where ID > 7       Query 2

我基本上需要获取“SQL”字段,并使用上面的信息填充另一个表,一旦脚本运行,它将看起来像:

ID      userID      Title
1       1           Query 1
2       8           Query 2
2       9           Query 2
2       10          Query 2

等等。

我希望这是有道理的,我完全不知道它是否可能——我已经尝试将它创建为一个过程,但无论如何我都找不到运行过程中表 1 中的“SQL”代码的任何方法。

或者,我将在 PHP 中执行此操作,但最好将其放入 SQL 中,因为它更容易自动化。

谢谢

4

1 回答 1

3

这是一件奇怪的事情(我会询问原因),但这段代码应该这样做:

declare
  rc sys_refcursor;
  l_id table1.id%type;
begin
  for r_sql in (select id, sql, title from table1) loop
    open rc for r_sql.sql;
    loop
      fetch rc into l_id;
      exit when rc%notfound;
      insert into table2 (id, userid, title) values (r_sql.id, l_id, r_sql.title);
    end loop;
    close rc;
  end loop;
end;
于 2012-04-10T10:02:05.033 回答