2010-05-31 6 views
1

Je fais un test. J'ai tous les tests en lignes, donc mes lignes ressemblent à ceci;Expliquer FOR dans oracle

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

Maintenant, je l'ai lu ligne par ligne et je dois le tester avec EXPLAIN PLAN FOR

donc la pour la première ligne, il serait

EXPLAIN PLAN FOR select sysdate from dual 

mais je dois problème convertir le champ TEST . En ce moment j'utilise;

EXPLAIN PLAN FOR testing.TEST 

mais cela ne fonctionne pas.

Des idées?

Répondre

5

Une instruction SQL est une chaîne, mais vous devez utiliser SQL dynamique pour convertir une instruction SQL stockée en tant que chaîne.

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

Référence:

+1

Merci OMG Poneys – Adnan

2

EXEC IMMÉDIATE 'EXPLAIN PLAN FOR' || TESTING.TEST