PROBLEMAS AO INSERIR DADOS NO BANCO(NOME DA MÁQUINA)  XML
Índice dos Fóruns » Persistência: Hibernate, JPA, JDBC e outros
Autor Mensagem
debona
Thread.start()

Membro desde: 18/02/2009 15:55:02
Mensagens: 35
Localização: Curitiba
Offline

Boa Tarde,

Seguinte,

estou tentando fazer um insert via jdbc,



só que neste último campo, que eu coloco o sys_context,
quando eu faço select na tabela, mostra 'unknown'
se eu tento fazer o insert diretamente pelo banco, ele coloca o nome certo da máquina,

ai, pensei em fazer um trigger que faça isso para mim




mas o problema é que ela compila corretamente,
mas na hora que eu vou ver os registros está exatamente igual, ou seja,

ela não está fazendo nada....


gostaria de uma luz!

Abraços,
Leonardo De Bona
[Email]
lucao
Java Ninja
[Avatar]

Membro desde: 20/12/2004 11:38:33
Mensagens: 298
Localização: Santos/SP
Offline

Amigo, é bom saber qual o banco.
Pela sintaxe imagino que seja Oracle não é ?
E outra coisa não concatene a SQL.

Agora quanto ao assunto, quando você vai pelo servidor de aplicação ele realmente não consegue pegar o terminal, fica como unknown. Você vai conseguir pegar a maquina procurando na V$Session, na coluna MACHINE.
Mas todas vão vir com o mesmo nome já que todas vêm do servidor de aplicação.
debona
Thread.start()

Membro desde: 18/02/2009 15:55:02
Mensagens: 35
Localização: Curitiba
Offline

é oracle msm...

eu tentei usar a V$Session,

quando eu executava o select não tinha problemas,
mas quando executava a trigger dava pau...

eu pensei que era pq a role tinha acesso a essa tabela, não meu usuário,

dei um grant para select e o problema persistiu,

ae eu usei o sys_context,

eu já verifiquei, ele busca corretamente a máquina,

o problema, não sei pq, é no update...

aguardo mais ajuda e obrigado!!!!
[Email]
lucao
Java Ninja
[Avatar]

Membro desde: 20/12/2004 11:38:33
Mensagens: 298
Localização: Santos/SP
Offline

Mas qual era esse erro que você disse que dava com a trigger ?
debona
Thread.start()

Membro desde: 18/02/2009 15:55:02
Mensagens: 35
Localização: Curitiba
Offline

Cara,

era erro de grant msm,
só que eu não estou conseguindo ver o motivo pelo qual não está alterando nada
essa trigger,

olha o código com a v$session

CREATE OR REPLACE TRIGGER gvt_trg_insere_maquina
BEFORE INSERT
ON dados
FOR EACH ROW
DECLARE
maquina VARCHAR (100);
usuario VARCHAR (100);
BEGIN
SELECT osuser, LTRIM (program) || '#' || RTRIM (machine)
INTO usuario, maquina
FROM v$session
WHERE audsid = USERENV ('SESSIONID')
AND SID = (SELECT MAX (SID)
FROM v$session
WHERE audsid = USERENV ('SESSIONID'));

UPDATE dados
SET terminal = maquina,
login = usuario
WHERE pon = :NEW.pon;
END;
/

esse update, parece não estar sendo efetuado...
[Email]
 
Índice dos Fóruns » Persistência: Hibernate, JPA, JDBC e outros
Ir para:   
Powered by JForum 2.1.8 © JForum Team