Обсуждение: Ajuda - insert into select com variavel
Pessoal boa noite, sou novo no mundo Postgres. Conheço bem Oracle mais Postgres está sendo um novo desafio. Tenho a seguinte situação: Tenho uma procedure onde existe uma variavel chamanda vContador do tipo int. Abaixo vou exemplificar alterado o nome da tabela e campos para poder facilitar. quando faço: INSERT INTO TAB1 (CAMPO1, CAMPO2, CAMPO3) SELECT TAB2.CAMPO1, TAB2.CAMPO2, vContador FROM TAB2 where TAB2.CAMPO3 = 1 O Sistema apresenta erro de column "vContador" does not exists Alguem por favor pode me ajudar? -- Sent from: http://www.postgresql-archive.org/PostgreSQL-sql-f2142323.html
Para quem entende de Oracle, siga os mesmos conceitos. Na tabela tab2 não ha existe a coluna vContador. Adicione-a. ALTER TABLE tab2 ADD COLUMN vContador int; > On Jan 17, 2018, at 22:15, Danilo <dbruneli@gmail.com> wrote: > > Pessoal boa noite, sou novo no mundo Postgres. Conheço bem Oracle mais > Postgres está sendo um novo desafio. > Tenho a seguinte situação: > > Tenho uma procedure onde existe uma variavel chamanda vContador do tipo int. > Abaixo vou exemplificar alterado o nome da tabela e campos para poder > facilitar. > > quando faço: > > INSERT INTO TAB1 > (CAMPO1, CAMPO2, CAMPO3) > SELECT TAB2.CAMPO1, TAB2.CAMPO2, vContador > FROM TAB2 > where TAB2.CAMPO3 = 1 > > O Sistema apresenta erro de column "vContador" does not exists > > Alguem por favor pode me ajudar? > > > > -- > Sent from: http://www.postgresql-archive.org/PostgreSQL-sql-f2142323.html >
Iuri, obrigado pelo retorno, vou aumentar o meu cenário pq só pelo o que disse acho q ficou pouco.
o vContador é uma variável que alimento valores nela de acordo com o processamento da minha procedure.
A tabela em questão não pode ser alterada, e eu não teria valores para o novo campo...
no oracle esse comando que mandei funciona perfeitamente, na hora que o banco vai fazer o insert ele atribui a coluna o valor que está na variável vContador.
vamos fazer de conta que vContador é 1000 então eu poderia facilmente reescrever o comando ficando assim:
INSERT INTO TAB1
(CAMPO1, CAMPO2, CAMPO3)
SELECT TAB2.CAMPO1, TAB2.CAMPO2, 1000
FROM TAB2
where TAB2.CAMPO3 = 1
(CAMPO1, CAMPO2, CAMPO3)
SELECT TAB2.CAMPO1, TAB2.CAMPO2, 1000
FROM TAB2
where TAB2.CAMPO3 = 1
Porem não posso reescrever o comando na procedure em tempo de execução por isso uso a variável vContador.
consegui explicar melhor?
muito obrigado pelo retorno viu...
Em 18 de janeiro de 2018 15:01, Iuri Sampaio <iuri.sampaio@gmail.com> escreveu:
Para quem entende de Oracle, siga os mesmos conceitos. Na tabela tab2 não ha existe a coluna vContador. Adicione-a.
ALTER TABLE tab2 ADD COLUMN vContador int;
> On Jan 17, 2018, at 22:15, Danilo <dbruneli@gmail.com> wrote:
>
> Pessoal boa noite, sou novo no mundo Postgres. Conheço bem Oracle mais
> Postgres está sendo um novo desafio.
> Tenho a seguinte situação:
>
> Tenho uma procedure onde existe uma variavel chamanda vContador do tipo int.
> Abaixo vou exemplificar alterado o nome da tabela e campos para poder
> facilitar.
>
> quando faço:
>
> INSERT INTO TAB1
> (CAMPO1, CAMPO2, CAMPO3)
> SELECT TAB2.CAMPO1, TAB2.CAMPO2, vContador
> FROM TAB2
> where TAB2.CAMPO3 = 1
>
> O Sistema apresenta erro de column "vContador" does not exists
>
> Alguem por favor pode me ajudar?
>
>
>
> --
> Sent from: http://www.postgresql-archive.org/PostgreSQL-sql-f2142323. html
>
--
ate.
Danilo Bruneli
Leia https://tobiastom.name/explains/postgresql-live-streaming
On Jan 18, 2018, at 14:16, Danilo Bruneli <dbruneli@gmail.com> wrote:Iuri, obrigado pelo retorno, vou aumentar o meu cenário pq só pelo o que disse acho q ficou pouco.o vContador é uma variável que alimento valores nela de acordo com o processamento da minha procedure.A tabela em questão não pode ser alterada, e eu não teria valores para o novo campo...no oracle esse comando que mandei funciona perfeitamente, na hora que o banco vai fazer o insert ele atribui a coluna o valor que está na variável vContador.vamos fazer de conta que vContador é 1000 então eu poderia facilmente reescrever o comando ficando assim:INSERT INTO TAB1
(CAMPO1, CAMPO2, CAMPO3)
SELECT TAB2.CAMPO1, TAB2.CAMPO2, 1000
FROM TAB2
where TAB2.CAMPO3 = 1Porem não posso reescrever o comando na procedure em tempo de execução por isso uso a variável vContador.consegui explicar melhor?muito obrigado pelo retorno viu...Em 18 de janeiro de 2018 15:01, Iuri Sampaio <iuri.sampaio@gmail.com> escreveu:Para quem entende de Oracle, siga os mesmos conceitos. Na tabela tab2 não ha existe a coluna vContador. Adicione-a.
ALTER TABLE tab2 ADD COLUMN vContador int;
> On Jan 17, 2018, at 22:15, Danilo <dbruneli@gmail.com> wrote:
>
> Pessoal boa noite, sou novo no mundo Postgres. Conheço bem Oracle mais
> Postgres está sendo um novo desafio.
> Tenho a seguinte situação:
>
> Tenho uma procedure onde existe uma variavel chamanda vContador do tipo int.
> Abaixo vou exemplificar alterado o nome da tabela e campos para poder
> facilitar.
>
> quando faço:
>
> INSERT INTO TAB1
> (CAMPO1, CAMPO2, CAMPO3)
> SELECT TAB2.CAMPO1, TAB2.CAMPO2, vContador
> FROM TAB2
> where TAB2.CAMPO3 = 1
>
> O Sistema apresenta erro de column "vContador" does not exists
>
> Alguem por favor pode me ajudar?
>
>
>
> --
> Sent from: http://www.postgresql-archive.org/PostgreSQL-sql-f2142323. html
>
--ate.Danilo Bruneli