Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

naiclopes

Problemas ao inserir no postgres

Recommended Posts

Bom dia, caros colegas.

 

Estou gerenciando um banco de dados Postgres para um projeto. e os dados são inseridos por um software desenvolvido em Visual Basic, criei o banco e fiz um backup e coloquei no servidor mas começou a apresentar o seguinte problema: quando um dado é inserido a coluna não deve estar com aspas simples ou sem aspas pois gera um erro, como não se tivesse reconhecido, mas ao colocar em aspas dupla funciona.

Fizemos um teste, criei uma nova tabela com apenas dois campos e a coluna foi reconhecida sem aspas. mas as tabelas que vinheram no backup só funciona com aspas dupla.

 

Alguém pode me explicar o porque disso está acontecendo.

Aguardo resposta.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa Tarde,

 

Qual o nome do campo? Pois deve ser uma palavra reservada do PostgreSQL. Para o PostgreSQL, nome de campo é com aspas duplas, quando esse nome é uma palavra reservada dele.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa Tarde,

 

Qual o nome do campo? Pois deve ser uma palavra reservada do PostgreSQL. Para o PostgreSQL, nome de campo é com aspas duplas, quando esse nome é uma palavra reservada dele.

 

com a tabela criada funcionaou assim:

insert into paradaProgramada (nomeProgramada) values ('" & strnomeProgramada & "')"

 

mas com as que vieram do backup só funciona assim:

 

insert into paradaProgramada (""nomeProgramada"") values ('" & strnomeProgramada & "')"

 

 

ou assim :

 

insert into ""paradaProgramada""(""nomeProgramada"") values ('" & strnomeProgramada & "')"

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Boa Tarde,

 

Qual o nome do campo? Pois deve ser uma palavra reservada do PostgreSQL. Para o PostgreSQL, nome de campo é com aspas duplas, quando esse nome é uma palavra reservada dele.

 

com a tabela criada funcionaou assim:

insert into paradaProgramada (nomeProgramada) values ('" & strnomeProgramada & "')"

 

mas com as que vieram do backup só funciona assim:

 

insert into paradaProgramada (""nomeProgramada"") values ('" & strnomeProgramada & "')"

 

 

ou assim :

 

insert into ""paradaProgramada""(""nomeProgramada"") values ('" & strnomeProgramada & "')"

 

Que estranho, porque ele não faz diferença entre as tabelas que foram criadas e backups, a única vez que tive de utilizar as aspas duplas no nome da coluna, foi quando eu coloquei o nome da coluna com nome reservado do postgre, vou dar uma pesquisada para ver se acho o motivo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

são referentes as colunas, no exemplo estou usando a coluna "nomeProgramada" da tabela paradaProgramada.

 

Será que existe alguma diferença em criar as tabelas através do SQL e pela aréa gráfica do postgres?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não, porque a interface gráfica vai gerar o SQL para criar a tabela, assim que você confirmar a criação.

 

No pgAdmin, o nome da coluna "nomeProgramada", está com as aspas duplas?

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim. o nome da coluna está em aspas duplas.

 

Fiz um teste para tirar as minhas dúvidas.

 

Criei uma tabela com duas colunas através do comando SQL, e percebi que os nomes das colunas ficam entre aspas dupla.

 

Exclui e criei a mesma tabela com duas colunas só que através do modo gráfico do pdAdmim, e percebi que as mesmas colunas não ficaram com as aspas duplas no nome.

 

 

Não sei pq isso ocorre, o fato é que terei que recriar todo o banco por conta desse pequeno detalhe, que dificulta a hora da inserção dos dados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, justamente percebi esse problema.

 

Isso ocorreu porque o banco que você está importando o backup o nome das colunas devem estar com as aspas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, justamente percebi esse problema.

 

Isso ocorreu porque o banco que você está importando o backup o nome das colunas devem estar com as aspas.

 

Pois é. Ao inciar a nova criação do banco percebi outra coisa, criando uma ou duas colunas na tabela elas não aparece com aspas, mas se criarmos mais de 2, aí sim aparce as aspas.

 

È interessante como esses pequenos detalhes me derão tanta dor de cabeça. A solução encontrada é que realmente e infelismente o programador terá que utilizar as aspas duplas para utilizar os dados das respectivas tabelas.

 

 

Agradeço muito a ajuda, se eu tiver alguma novidade vou postar. E bom saber que não estamos sós com os nosso problemas.

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estranho isso, pois eu tenho N colunas em N tabelas e não tenho esse problema, trabalho muito com backup e restore e nunca tive este problema.

 

Talvez seja alguma configuração que está causando isso e eu infelizmente não conheço, se é que existe, esta configuração.

 

Desculpa por não poder ajudar

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.