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 に答える