Используя подсказку в размещенной переменной?

Все,

Я хочу использовать подсказку в размещенной переменной; на самом деле нам нужно использовать динамическое значение подсказки (подсказка должна оцениваться во время выполнения). мы можем написать заявление SQL из этого:

SELECT /*+ ORDERED INDEX (b, jl_br_balances_n1) USE_NL (j b) 
           USE_NL (glcc glf) USE_MERGE (gp gsb) */
 b.application_id ,
 b.set_of_books_id ,
 b.personnel_id,
 p.vendor_id Personnel,
 p.segment1 PersonnelNumber,
 p.vendor_name Name
FROM  jl_br_journals j,
      jl_br_balances b,
      gl_code_combinations glcc,
      fnd_flex_values_vl glf,
      gl_periods gp,
      gl_sets_of_books gsb,
      po_vendors p
WHERE 

к:

SELECT /*+ :hosted_hintp */
 b.application_id ,
 b.set_of_books_id ,
 b.personnel_id,
 p.vendor_id Personnel,
 p.segment1 PersonnelNumber,
 p.vendor_name Name
FROM  jl_br_journals j,
      jl_br_balances b,
      gl_code_combinations glcc,
      fnd_flex_values_vl glf,
      gl_periods gp,
      gl_sets_of_books gsb,
      po_vendors p
WHERE 

hosted_hintp содержит значение подсказки, которое нам нужно во время выполнения.

Спасибо

1 ответ

Ваш запрос должен быть выполнен с использованием динамического SQL. Что-то вроде этого:

СОЗДАНИЕ ИЛИ ЗАМЕНА ПРОЦЕДУРЫ query_emp (a_hint VARCHAR2)

КАК ТИП cur_typ

REF CURSOR; c cur_typ;

НАЧИНАЕТСЯ ОТКРЫТЬ c ДЛЯ ВЫБОРА || a_hint || ' empno, ename, sal, job

ОТ emp WHERE empno = 7566 ';

-- процесс

КОНЕЦ;

/

Другие вопросы по тегам