我有下面的查詢給出了一個錯誤,因爲遇到一個符號(在使用循環的行中我嘗試開發一個函數,它將動態參數作爲table_name,column_name,table_id用於其他表。還有執行立即在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
示例表是什麼樣子的,以及該表的3個輸入參數中有些可能的值是什麼? – ruudvan