Существует ли функция PL / SQL или общая методика для цитирования неквалифицированных идентификаторов (например, mytable
) для использования в динамически построенном запросе SQL?Как насчет частично или полностью определенных идентификаторов (a.b@c
)?
Рассмотрим этот надуманный пример:
CREATE PROCEDURE by_the_numbers(COL_NAME VARCHAR, INTVAL INTEGER) IS
...
BEGIN
-- COL_NAME is interpolated into SQL string
-- INTVAL gets bound to :1
stmt := 'SELECT * FROM tbl WHERE ' || COL_NAME || ' = :1';
...
END
... где мы не хотим разрешать наивное внедрение SQL в COL_NAME
(например, значение '1 = 1 или 1').