Bem pessoal, o problema foi elucidado! Existe uma trigger que em
função de alguns atributos do produto e informações de outra tabela,
gera o bendito campo nce. Como na base destino esta outra tabela estava
vazia, o resultado da trigger era sempre nulo para esta coluna!

Agradeço a atenção de todos .



Em Seg, 2007-06-11 às 12:18 -0300, Fabricio Barroso de Carvalho
escreveu:

> Bom dia a todos!
> 
> Tenho a seguinte situação na implantação de um novo sistema na empresa
> onde trabalho:
>     Desenvolvemos um sistema que será implantado em todas as nossas
> filiais. Para isso criamos um database default contendo a estrutura de
> esquemas e tabelas, sendo que algumas tabelas já estão preenchidas com
> informações comuns para todas as filiais. Ex.: Relação de lojas, base
> de endereço dos correios, catálogo de produtos, etc.
>     Para criar uma base para ser instalada em uma nova filial,
> desenvolvi um script que tem as opções de fazer um dump total da base
> default ou exportar somente o conteúdo de determinadas tabelas através
> dos comandos COPY TO e COPY FROM. Usamos o script em várias
> situações(dump geral e conteúdo de tabelas em particular) e atestamos
> que o funcionamento está correto.
>     
> Posto isso vamos ao problema:
>     Quando uso a opção de exportar apenas o conteúdo da tabela de
> produtos[1]  o arquivo csv[2] criado possui os dados de todas as
> colunas. Mas quando vou restaurar este mesmo arquivo na base destino,
> a coluna 'nce' é inserida com nulo mesmo estando o seu valor
> preenchido na tabela de origem e no arquivo csv. Vale lembrar que a
> base destino foi criada através de um dump da base default.
> 
> Os comandos de copy gerados pelo script são:
> base_default:
> copy socic.produto to
> '/home/postgres/base_default/csv/socic.produto.csv' with delimiter
> ';' ;
> base destino:
> copy socic.produto from
> '/home/postgres/base_default/csv/socic.produto.csv' with delimiter
> ';' ;
> 
> Já tentei especificar o nome de cada coluna da tabela nos comandos mas
> o problema persiste. Já executei os comandos isoladamente fora do
> script e o erro também continua.
> 
> Mensagem de erro:
>     ERROR:  null value in column "nce" violates not-null constraint
>     CONTEXT:  COPY produto, line 1:
> "38224;81.20000;0.00000;0.00000;2006-01-10 00:00:00;PRATELEIRA UNIERRE
> PRT2-404 1,30CM;0.00000;f;1329..."
> 
> Versão do Postgresql: 8.2.3
> S.O: Linux Ubuntu Server 6.10 Kernel 2.6.15-27-k7 #1 SMP PREEMPT
> 
> [1] Tabela de produtos:
> CREATE TABLE socic.produto (
>   id int4 NOT NULL,
>   col2 numeric(10,5),
>   col3 numeric(10,5),
>   col4 numeric(10,5),
>   col5 timestamp,
>   col6 varchar(100),
>   col7 numeric(10,5),
>   col8 bool,
>   nce int4 NOT NULL,
>   col10 numeric(10,5),
>   col11 varchar(20),
>   col12 int4 NOT NULL,
>   col13 int4,
>   col14 varchar(30),
>   col15 int4 NOT NULL,
>   col16 int4,
>   col17 int4,
>   col18 int4,
>   col19 varchar(50),
>   col20 int4 NOT NULL,
>   col21 bool,
>   col22 int4,
>   col23 varchar(100),
>   col24 numeric(5,2) DEFAULT 0,
>   col25 numeric(5,2) DEFAULT 0,
>   col26 numeric(5,2) DEFAULT 0,
>   col27 numeric(5,2) DEFAULT 0,
>   col28 numeric(5,2) DEFAULT 0,
>   col29 numeric(5,2) DEFAULT 0,
>   col30 varchar(78),
>   col31 bool DEFAULT false,
>   col32 char(6),
>   col33 int4,
>   CONSTRAINT produto_pkey PRIMARY KEY (id), ... );
> 
> [2] Arquivo csv:
> 38224;81.20000;0.00000;0.00000;2006-01-10 00:00:00;PRATELEIRA UNIERRE
> PRT2-404 1,30CM;0.00000;f;132938;0.00000;\N;358;45;\N;41;\N;318;679; 1
> 5132938;583;t;38224;\N;0.00;0.00;0.00;0.00;0.00;0.00;PRATELEIRA
> UNIERRE PRT2-404 1,30CM;f;\N;\N
> 
> 38225;190.00000;0.00000;0.00000;2006-09-21 00:00:00;PRATELEIRA UNIERRE
> 904;0.00000;f;148490;0.00000;\N;358;45;\N;41;\N;318;5973; 1
> 5148490;583;t;38225;\N;0.00;0.00;0.00;0.00;0.00;0.00;PRATELEIRA
> UNIERRE 904;f;\N;\N
> 
> 38226;122.80000;0.00000;0.00000;2006-09-21 00:00:00;PRATELEIRA UNIERRE
> 416 - 240M;0.00000;f;148489;0.00000;\N;358;45;\N;41;\N;318;5972; 1
> 5148489;583;t;38226;\N;0.00;0.00;0.00;0.00;0.00;0.00;PRATELEIRA
> UNIERRE 416 - 240M;f;\N;\N
> 
> 38227;26.80000;0.00000;0.00000;1993-01-01 00:00:00;PRATELEIRA NEUMANN
> 94.9180.71-9;0.00000;f;1688;0.00000;\N;297;5;\N;41;\N;301;6702; 1   9
> 1688;583;t;38227;\N;0.00;0.00;0.00;0.00;0.00;0.00;PRATELEIRA NEUMANN
> 94.9180.71-9;f;\N;\N
> 
> 38228;57.20000;0.00000;0.00000;1993-01-01 00:00:00;PRATELEIRA NEUMANN
> DECORATIVA 94.9182.71-1;0.00000;f;104892;0.00000;\N;297;5;\N;41;
> \N;301;9141; 1   9104892;583;t;38228;
> \N;0.00;0.00;0.00;0.00;0.00;0.00;PRATELEIRA NEUMANN DECORATIVA
> 94.9182.71-1;f;\N;\N
> 
> Desde já agradeço a atenção de todos.
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> Fabrício Barroso de Carvalho -
> SOCIC S/A
> BME - CPD - Belém - PA
> Fone: (91) 3210-4346 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a