Объясни ЗА в оракуле - PullRequest
1 голос
/ 31 мая 2010

Я делаю тест. У меня все тесты в строках, поэтому мои строки выглядят так:

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

но это не работает.

Есть идеи?

Ответы [ 2 ]

5 голосов
/ 31 мая 2010

Оператор SQL - это строка, но вы должны использовать динамический SQL для преобразования оператора SQL, который хранится в виде строки.

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

Справка:

2 голосов
/ 31 мая 2010

EXEC НЕМЕДЛЕННЫЙ «ОБЪЯСНИТЬ ПЛАН ДЛЯ» || TESTING.TEST

...