2014-12-03 3 views
0

Я динамически создаю поисковый запрос с переменными связывания с не менее чем одним и не более 7 различными потенциальными критериями. Я знаю, что смогу это сделать -PLSQL Выполнение немедленного с динамическим использованием

EXECUTE IMMEDIATE sql USING bind_var1, bind_var2 or 
EXECUTE IMMEDIATE sql USING bind_var3, bind_var5, bind_var7. 

Можно ли включить переменные связывания в sql?

sql = 'SELECT * FROM table WHERE id = :bind_var1 AND name = :bind_var2 USING bind_var1, bind_var2' 

и сделать

EXECUTE IMMEDIATE sql? 

Я хочу и нужно динамически строить USING часть вместо того, чтобы писать много IF THEN заявления.

ответ

0

вашего ИСПОЛЬЗОВАНИЕ bind_var1, bind_var2 пайсы коды должна быть из стороны OS вашей строки SQL и прийти в конце выполнить немедленное заявления, а также для выберите senarios попытаться использовать динамический SQL для выбора с помощью курсора, если вы хотите выбрать в переменную

0

Согласно вашим тегам, я предполагаю, что это будет использоваться внутри какого-либо блока PL/SQL. Итак, возможно, вы ищете заявление open for.

Это позволяет получить курсор на динамический запрос:

sql := 'SELECT * FROM table WHERE id = :bind_var1 AND name = :bind_var2'; 
open my_cursor for sql using bind_var1, bind_var2'; 

-- do whatever you need with your cursor 
Смежные вопросы