我当前正在尝试创建一个过程,以在调用该过程时自动将数据复制到数据库中。但是,每次调用它时,都会出现以下错误:
ERROR: column "name" does not exist
LINE 1: SELECT format('COPY test(%L) FROM %s CSV HEADER', name, '/Us...
该列如何不存在?这是我写的所有内容:
CREATE PROCEDURE
test_insert() AS
$$
BEGIN
EXECUTE format('COPY test(%L) FROM %s CSV HEADER', name, '/Users/Receiving.csv');
END;
$$ LANGUAGE plpgsql;
答案 0 :(得分:0)
如果您使用name
而不使用单引号,则它会在(默认)SELECT
语句中解释为列名
SELECT format('...', name, '...')
执行功能时PL / pgSQL运行。
由于此SELECT
语句没有FROM
子句,您会看到明显的错误。
解决方案是改用字符串文字,即写'name'
而不是'name'。