2012-04-10 4 views
2

私は、別のテーブルに格納されているクエリに基づいて特定の値を持つデータベースを設定しようとしています。フィールド内に格納されたクエリに基づいてSQLを実行していますか?

表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にする方がよいでしょう。

これは奇妙なことをやっていることです

答えて

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; 
+0

ああ、あなたがスターだ - そんなにありがとう、これを今実装しようとします(なぜなら、特定の人のためだけにリマインダー/通知セクションを作成しようとしているからです) – Nick

関連する問題