Используя подсказку в размещенной переменной?
Все,
Я хочу использовать подсказку в размещенной переменной; на самом деле нам нужно использовать динамическое значение подсказки (подсказка должна оцениваться во время выполнения). мы можем написать заявление 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 ';
-- процесс
КОНЕЦ;
/