[RESOLVIDO] - Oracle - erro "Não serão lidos mais dados do soquete"

3 respostas
ECO2004

Eu criei algumas tabelas - funcionário, departamento, projeto e trabalha.

FUNCIONARIO (CPF, PNOME, SNOME, CPF_GERENTE, DEPARTAMENTO)
DEPARTAMENTO (NUMERO_DEPARTAMENTO, NOME_DEPARTAMENTO)
PROJETO (NUMERO_PROJETO, NOME_PROJETO)
TRABALHA (CPF, NUMERO_PROJETO)

Criei uma sequência para o número de projeto: “create sequence seq_pro_numpro minvalue 1 maxvalue 999 increment by 1;”

Eu quero poder adicionar o nome do projeto sem ter que ficar entrando com o número do projeto. Para isso, criei a trigger abaixo:

create or replace trigger tri_pro_insert

before insert on projeto

for each row

begin

select seq_pro_numpro.nextval into: new.numero_projeto from dual;

end;

Depois, fiz:

insert into projeto(nome_projeto) values (‘1C2B’);

“Erro ao iniciar na linha xxx no comando
Relatório de erro:
Erro de SQL: Não serão lidos mais dados do soquete”

Não consigo inserir dados. O que significa esse erro?

3 Respostas

maior_abandonado

esse erro significa que sua conexão com o banco está fechada ou com problemas…

fecha e abre a conexão denovo na sua ide se aconteceu isso na sua ide de banco de dados… se foi no seu código, poste-o.

ECO2004

maior_abandonado:
esse erro significa que sua conexão com o banco está fechada ou com problemas…

fecha e abre a conexão denovo na sua ide se aconteceu isso na sua ide de banco de dados… se foi no seu código, poste-o.

Obrigado!

O problema foi resolvido. Eu tinha escrito o trigger de maneira ligeiramente errada. Tinha escrito:

[…]

begin

select seq_pro_numpro.nextval into: new.numero_projeto from dual;

end;

[…]

ao invés de select seq_pro_numpro.nextval into :new.numero_projeto from dual

Os dois ponto devem ficar com o new. Isso causou o erro. Sutil, mas fatal.

mauromartini

Criado 25 de novembro de 2012
Ultima resposta 18 de nov. de 2015
Respostas 3
Participantes 3