Обсуждение: Function with COPY command?

Поиск
Список
Период
Сортировка

Function with COPY command?

От
Warren
Дата:
Is there any way to make this function work?

CREATE OR REPLACE FUNCTION import_text_file(char(255)) RETURNS void AS $$
DECLARE
     filename ALIAS FOR $1;
BEGIN
     COPY table FROM filename;
END;
$$ LANGUAGE plpgsql;

The version below works fine, but I need something like the above version.

CREATE OR REPLACE FUNCTION import_text_file(char(255)) RETURNS void AS $$
DECLARE
     filename ALIAS FOR $1;
BEGIN
     COPY table FROM 'C:\\somefile.txt';
END;
$$ LANGUAGE plpgsql;


--
Thanks,

Warren

Re: Function with COPY command?

От
Tom Lane
Дата:
Warren <warren@clarksnutrition.com> writes:
> Is there any way to make this function work?

> CREATE OR REPLACE FUNCTION import_text_file(char(255)) RETURNS void AS $$
> DECLARE
>      filename ALIAS FOR $1;
> BEGIN
>      COPY table FROM filename;
> END;
> $$ LANGUAGE plpgsql;

Use EXECUTE.

            regards, tom lane

Re: Function with COPY command?

От
"Shoaib Mir"
Дата:
Something like this will help:

CREATE OR REPLACE FUNCTION import_text_file(char(255)) RETURNS void AS $$
DECLARE
    filename  ALIAS FOR $1;
    fin varchar;
BEGIN
    fin := 'COPY table from ' || filename;   
    execute fin;
END;
$$ LANGUAGE plpgsql;

--
Shoaib Mir
EnterpriseDB (www.enterprisedb.com)


On 6/14/07, Tom Lane <tgl@sss.pgh.pa.us > wrote:
Warren <warren@clarksnutrition.com > writes:
> Is there any way to make this function work?

> CREATE OR REPLACE FUNCTION import_text_file(char(255)) RETURNS void AS $$
> DECLARE
>      filename ALIAS FOR $1;
> BEGIN
>      COPY table FROM filename;
> END;
> $$ LANGUAGE plpgsql;

Use EXECUTE.

                        regards, tom lane

---------------------------(end of broadcast)---------------------------
TIP 2: Don't 'kill -9' the postmaster