2010-05-31 49 views
1

我正在測試。我有行中的所有測試,所以我的行看起來像這樣;在oracle中解釋FOR

ID | TEST 
---------------------------------- 
1 | 'select sysdate from dual' 
2 | 'select sysdatesss from dual' 

現在我讀了逐行和我需要EXPLAIN PLAN FOR

,以測試它,因此第一行這將是

EXPLAIN PLAN FOR select sysdate from dual 

,但我有問題轉換TEST場。現在我用;

EXPLAIN PLAN FOR testing.TEST 

但它不起作用。

任何想法?

回答

5

SQL語句是一個字符串,但您必須使用動態SQL來轉換以字符串形式存儲的SQL語句。

FOR i IN (SELECT t.test 
      FROM TESTING t) LOOP 
    EXECUTE IMMEDIATE 'EXPLAIN PLAN FOR '|| i.test ||''; 
END LOOP; 

參考:

+1

謝謝OMG小馬 – Adnan 2010-05-31 15:04:05

2

EXEC IMMEDIATE'EXPLAIN PLAN FOR'|| TESTING.TEST