2012-04-10 58 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 2012-04-10 10:17:53