Table name as PostgreSQL function parameter / ERROR: column ".." does not exist
Table name as PostgreSQL function parameter / ERROR: column ".." does not exist
我是 pgsql 新手。我只想在 pgsql 中使用一个 table 名称作为函数参数。
CREATE OR REPLACE FUNCTION user_test_table_name_as_input (table_name text)
RETURNS VOID
LANGUAGE plpgsql
AS $$
DECLARE
i int;
BEGIN
FOR i IN EXECUTE 'SELECT DISTINCT category FROM' || quote_ident(table_name)
LOOP
RAISE NOTICE '%', i;
END LOOP;
END
$$
当我尝试使用这个功能时...
SELECT user_test_table_name_as_input (table_name);
...我收到此错误:
ERROR: column "table_name" does not exist
SQL state: 42703
我阅读了相关主题,例如 Table name as a PostgreSQL function parameter,但其他建议的解决方案(串联、format() )也不适合我。有什么想法吗?
'table_name' 需要引号作为调用存储过程的参数 - 它是文本。
我是 pgsql 新手。我只想在 pgsql 中使用一个 table 名称作为函数参数。
CREATE OR REPLACE FUNCTION user_test_table_name_as_input (table_name text)
RETURNS VOID
LANGUAGE plpgsql
AS $$
DECLARE
i int;
BEGIN
FOR i IN EXECUTE 'SELECT DISTINCT category FROM' || quote_ident(table_name)
LOOP
RAISE NOTICE '%', i;
END LOOP;
END
$$
当我尝试使用这个功能时...
SELECT user_test_table_name_as_input (table_name);
...我收到此错误:
ERROR: column "table_name" does not exist
SQL state: 42703
我阅读了相关主题,例如 Table name as a PostgreSQL function parameter,但其他建议的解决方案(串联、format() )也不适合我。有什么想法吗?
'table_name' 需要引号作为调用存储过程的参数 - 它是文本。