У меня есть запрос ниже, который дает ошибку, поскольку встречается с символом (в строке, где используется цикл. Я пытаюсь разработать функцию, которая принимает динамический параметр как table_name, column_name, table_id и используется для других таблиц ., а такжеВыполнение Immediate in oracle
FUNCTION get_encryp_pass(table_name IN varchar2,column_name IN varchar2,table_id IN varchar2) RETURN VARCHAR2
IS
BEGIN
EXECUTE IMMEDIATE 'for c1 in (select * from' || table_name ||) loop
EXECUTE IMMEDIATE 'update ' || table_name || ' set ' || column_name = encrypt_val(c1.column_name) || ' where ' || table_id || ' = ' || c1.table_id and column_name is not null;
end loop;
END get_encrypt_pass;
У вас недостаточно одиночных кавычек. Например, после добавления имени таблицы вам нужно снова поставить кавычки). 'EXECUTE IMMEDIATE' нуждается в строке. – Nitish
@Nitesh я попытался, но все равно получаю ту же ошибку. Jchomel, пожалуйста, объясните больше? – Andrew
Как выглядит таблица образцов и каковы возможные значения в трех входных параметрах для этой таблицы? – ruudvan