postgresql pgsql动态网页链接

标签 postgresql plpgsql

我正在创建一个递归过程以将 csv 数据导入表中。我似乎无法使用我的 pgsql 函数将我需要插入的变量动态插入到我的 http 请求中。

我正在尝试使用带有执行格式和动态 sql 的 %L 插入变量“insert_var”。当我看到函数传递的链接时,它显示为' http://...variable=r1.insert_var ....' 而不是存储在该列中的实际变量。我做错了什么?

CREATE OR REPLACE FUNCTION recursive_data_import()
   RETURNS VOID AS $$

DECLARE 

insert_var text;

cur SCROLL CURSOR FOR
select * from symbols order by insert_var;
r1 RECORD;
BEGIN OPEN cur ;

LOOP

FETCH cur INTO r1;
EXIT WHEN NOT FOUND;

DROP TABLE IF EXISTS temp_table;

CREATE TABLE temp_table
(
    var1 numeric,
    var2 numeric,
);


EXECUTE format('COPY temp_table (var1, var2)
FROM PROGRAM 'wget -q -O - "http://website/Data?variable=%L&Type=0"' WITH (CSV), r1.insert_var);

ALTER TABLE temp_table
    ADD COLUMN var3 varchar(10);
UPDATE temp_table
       set var3 = r1.insert_var;

INSERT INTO final_table
(
SELECT 
    var1,
    var2,
    insert_var
    FROM temp_table
);

END LOOP;

CLOSE cur;

END; $$

LANGUAGE plpgsql;

最佳答案

看起来像乱七八糟的撇号

EXECUTE format('COPY temp_table (var1, var2)
FROM PROGRAM 'wget -q -O - "http://website/Data?variable=%L&Type=0"' WITH (CSV), r1.insert_var);

您可以使用自定义字符串分隔符:

EXECUTE format($x$COPY temp_table (var1, var2)
FROM PROGRAM 'wget -q -O - "http://website/Data?variable=%L&Type=0"' WITH (CSV)$x$, r1.insert_var);

关于postgresql pgsql动态网页链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47445451/

相关文章:

SQL 将 B 列中与 A 列中具有相同值的所有值连接到 A 列中的所有值

database-design - 引用 PK 的外键是否需要 NOT NULL 约束?

linux - 操作错误 : could not connect to server: Permission denied tTCP/IP connections on port 5432?

sql - 作为 Postgres 中另一个函数的参数的函数

database - 在 PL/pgSQL 中使用变量存储查询结果

sql - 迭代表

django - 对于类型字符 varying(N) 值太长

sql - 分析/分析 PostgreSQL 上的查询

database - Postgresql 执行自定义函数时出现错误 42883

sql - 如何快速批量更新postgres中的序列号