我需要关于如何使用SQL(或动态SQL)来编写循环的帮助,在该循环中我使用‘x’作为列名的占位符.有没有人有什么建议,让我不必为每一列手动运行这条语句?
CREATE OR REPLACE PROCEDURE PCI_COLUMNS()
AS $$
DECLARE
x RECORD;
BEGIN
FOR x IN (select col from L_USA.COLUMNS WHERE TYPE = 'PCI')
LOOP
ATTACH MASKING POLICY COMMERCIAL_PCI
ON L_USA.DEMO(x)
USING (x, CUST_ID)
TO ROLE COMM_PCI
PRIORITY 30;
END LOOP;
END;
$$ LANGUAGE plpgsql;
上面的代码是我所设想的,但它显示了一个错误
错误:语法错误位于或接近"$1"WHERE:PL/PgSQL函数"pci_Columns"中第5行附近的SQL语句[错误ID:1-6571f613-3df6ae50214fb89252a028fb])
因为我不认为我可以参数化这样的对象