Re: [oracle_br] Trigger de logon...

2015-05-28 Por tôpico Rafael Mendonca raffaell.t...@yahoo.com [oracle_br]
Sim, ai cabe ao DBA, verificar na v$session por qual programa ele está 
conectando com o nome do programa renomeado, agora o que você falou é a mais 
pura verdade, para burlar é fácil. 


 Em Quinta-feira, 28 de Maio de 2015 16:46, Andre Santos 
andre.psantos...@gmail.com [oracle_br] oracle_br@yahoogrupos.com.br escreveu:
   

     Rafael / Cristiano

Mas se o desenvolvedor/analista for um pouco mais safo, basta renomear o 
executável para burlar isso.

[ ]'s

André


2015-05-28 16:24 GMT-03:00 Rafael Mendonca raffaell.t...@yahoo.com [oracle_br] 
oracle_br@yahoogrupos.com.br:

     Acrescenta também nas ferramentas, o SQLTools muito utilizada por 
desenvolvedores e analistas. 


 Em Quinta-feira, 28 de Maio de 2015 13:40, Rafael Mendonca 
raffaell.t...@yahoo.com [oracle_br] oracle_br@yahoogrupos.com.br escreveu:
   

     Outra coisa que reparei na sua trigger, é que você utiliza UPPER(OWNER) 
comparando com os nomes dos usuários em minúsculo: 'cbarbosa' entre outros...
Ou seja, o usuário que entrar com cbarbosa, oracle, administrador irá passar 
pela trigger após a correção do seu problema.

 


 Em Quinta-feira, 28 de Maio de 2015 12:34, 'Schiavini' 
et...@schiavini.inf.br [oracle_br] oracle_br@yahoogrupos.com.br escreveu:
   

     Boa tarde

Qual é o resultado de:

alter trigger TG_LOGON_AUDIT_TRIGGER compile;

Étore

From: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] 
Sent: quinta-feira, 28 de maio de 2015 11:50
To: Lista de Usuários Oracle; Grupo OraOracle; Oracle in Brazil
Subject: [oracle_br] Trigger de logon...

Bom dia!

Caros amigos, em pesquisa na net, também com sugestões recebidas de alguns 
amigos, compilei a seguinte trigger abaixo, apesar de não apresentar erros na 
compilação, quando tento acessar com o usuário cbarbosa é mostrado o ERRO 
descrito ao final da trigger:

Gostaria da ajuda dos amigos que possuem maior experiência com oracle para a 
identificação do erro e sua solução.

Obrigado...

DROP TRIGGER SYS.TG_BLOCK_TOOLS_FROM_PROD;

CREATE OR REPLACE TRIGGER SYS.TG_BLOCK_TOOLS_FROM_PROD

AFTER LOGON

ON DATABASE

DECLARE

v_prog SYS.v_$session.program%TYPE;

v_module SYS.v_$session.module%TYPE; -- Parametro acrescentado para evitar 
programa renomeado.

owner SYS.v_$session.username%TYPE;

v_osuser SYS.v_$session.osuser%TYPE;

BEGIN

SELECT program,

module,

username,

osuser

INTO v_prog,

v_module,

owner,

v_osuser

FROM sys.v_$session

WHERE audsid = USERENV ('SESSIONID') AND audsid != 0 -- Não verificar conexões 
SYS

AND ROWNUM = 1; -- Processos paralelos terá o mesmo do AUDSID

IF UPPER (owner) NOT IN ('cbarbosa',

'oracle',

'administrador',

'IUSR_ISSEC',

'APACHE',

'OEM',

'OEM22',

'SCOTT',

'SI_INFORMTN_SCHEMA',

'TSMSYS',

'WKPROXY',

'WKSYS',

'WMSYS',

'XDB',

'SYS',

'DBSNMP',

'SYSMAN',

'SYSTEM')

THEN

IF UPPER (v_prog) LIKE '%TOAD%' -- Toad

OR UPPER (v_module) LIKE '%TOAD%' -- Toad

OR UPPER (v_prog) LIKE '%T.O.A.D%' -- Toad

OR UPPER (v_module) LIKE '%T.O.A.D%' -- Toad

OR UPPER (v_prog) LIKE '%SQLNAV%' -- SQL Navigator

OR UPPER (v_module) LIKE '%SQLNAV%' -- SQL Navigator

OR UPPER (v_prog) LIKE '%PLSQLDEV%' -- PLSQL Developer

OR UPPER (v_module) LIKE '%PLSQLDEV%' -- PLSQL Developer

OR UPPER (v_prog) LIKE '%PL/SQL Developer%' -- PLSQL Developer

OR UPPER (v_module) LIKE '%PL/SQL Developer%' -- PLSQL Developer

OR UPPER (v_prog) LIKE '%SQL%' -- SQL Developer

OR UPPER (v_module) LIKE '%SQL%' -- SQL Developer

OR UPPER (v_prog) LIKE '%SQL Developer%' -- SQL Developer

OR UPPER (v_module) LIKE '%SQL Developer%' -- SQL Developer

OR UPPER (v_prog) LIKE '%BUSOBJ%' -- Business Objects

OR UPPER (v_module) LIKE '%BUSOBJ%' -- Business Objects

OR UPPER (v_prog) LIKE '%EXCEL%' -- MS-Excel plug-in

OR UPPER (v_module) LIKE '%EXCEL%' -- MS-Excel plug-in

OR UPPER (v_prog) LIKE '%SQLPLUS%' -- SQLPLUS

OR UPPER (v_module) LIKE '%SQLPLUS%' -- SQLPLUS

OR UPPER (v_prog) LIKE '%DEVELOPER%' -- Oracle SQL Developer

OR UPPER (v_module) LIKE '%DEVELOPER%' -- Oracle SQL Developer

OR UPPER (v_prog) LIKE '%IFBLD%' -- Oracle Forms Developer Builder

OR UPPER (v_module) LIKE '%IFBLD%' -- Oracle Forms Developer Builder

OR UPPER (v_prog) LIKE '%RWBUILDER%' -- Oracle Reports Builder

OR UPPER (v_module) LIKE '%RWBUILDER%' -- Oracle Reports Builder

OR UPPER (v_prog) LIKE '%RAPTOR%' -- Oracle Raptor

OR UPPER (v_module) LIKE '%RAPTOR%' -- Oracle Raptor

THEN

RAISE_APPLICATION_ERROR (

-2,

'A Ferramenta de desenvolvimento '

|| v_module

|| ' não é permitida na PRODUÇÃO! ('

|| v_osuser

|| ' - '

|| owner

|| ' - '

|| v_prog

|| ' - '

|| v_module -- Parametro acrescentado.

|| ')');

END IF;

END IF;

EXCEPTION

WHEN NO_DATA_FOUND

THEN

NULL;

END;

/

= ERRO ==

# -- Erro apresentado quando da tentativa de conexao com usuario (cbarbosa)

#

Ocorreu um erro ao executar a operação solicitada:

ORA-04098: gatilho 'SYS.TG_LOGON_AUDIT_TRIGGER' é inválido e a revalidação 
falhou

04098. 0 - trigger 

Re: [oracle_br] Trigger de logon...

2015-05-28 Por tôpico Andre Santos andre.psantos...@gmail.com [oracle_br]
Rafael / Cristiano

Mas se o desenvolvedor/analista for um pouco mais safo, basta renomear o
executável para burlar isso.

[ ]'s

André


2015-05-28 16:24 GMT-03:00 Rafael Mendonca raffaell.t...@yahoo.com
[oracle_br] oracle_br@yahoogrupos.com.br:



 Acrescenta também nas ferramentas, o SQLTools muito utilizada por
 desenvolvedores e analistas.



   Em Quinta-feira, 28 de Maio de 2015 13:40, Rafael Mendonca
 raffaell.t...@yahoo.com [oracle_br] oracle_br@yahoogrupos.com.br
 escreveu:



  Outra coisa que reparei na sua trigger, é que você utiliza UPPER(OWNER)
 comparando com os nomes dos usuários em minúsculo: 'cbarbosa' entre
 outros...

 Ou seja, o usuário que entrar com cbarbosa, oracle, administrador irá
 passar pela trigger após a correção do seu problema.





   Em Quinta-feira, 28 de Maio de 2015 12:34, 'Schiavini'
 et...@schiavini.inf.br [oracle_br] oracle_br@yahoogrupos.com.br
 escreveu:



  Boa tarde

 Qual é o resultado de:

 alter trigger TG_LOGON_AUDIT_TRIGGER compile;

 Étore

 From: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br]
 Sent: quinta-feira, 28 de maio de 2015 11:50
 To: Lista de Usuários Oracle; Grupo OraOracle; Oracle in Brazil
 Subject: [oracle_br] Trigger de logon...

 Bom dia!

 Caros amigos, em pesquisa na net, também com sugestões recebidas de alguns
 amigos, compilei a seguinte trigger abaixo, apesar de não apresentar erros
 na compilação, quando tento acessar com o usuário cbarbosa é mostrado o
 ERRO descrito ao final da trigger:

 Gostaria da ajuda dos amigos que possuem maior experiência com oracle para
 a identificação do erro e sua solução.

 Obrigado...

 DROP TRIGGER SYS.TG_BLOCK_TOOLS_FROM_PROD;

 CREATE OR REPLACE TRIGGER SYS.TG_BLOCK_TOOLS_FROM_PROD

 AFTER LOGON

 ON DATABASE

 DECLARE

 v_prog SYS.v_$session.program%TYPE;

 v_module SYS.v_$session.module%TYPE; -- Parametro acrescentado para evitar
 programa renomeado.

 owner SYS.v_$session.username%TYPE;

 v_osuser SYS.v_$session.osuser%TYPE;

 BEGIN

 SELECT program,

 module,

 username,

 osuser

 INTO v_prog,

 v_module,

 owner,

 v_osuser

 FROM sys.v_$session

 WHERE audsid = USERENV ('SESSIONID') AND audsid != 0 -- Não verificar
 conexões SYS

 AND ROWNUM = 1; -- Processos paralelos terá o mesmo do AUDSID

 IF UPPER (owner) NOT IN ('cbarbosa',

 'oracle',

 'administrador',

 'IUSR_ISSEC',

 'APACHE',

 'OEM',

 'OEM22',

 'SCOTT',

 'SI_INFORMTN_SCHEMA',

 'TSMSYS',

 'WKPROXY',

 'WKSYS',

 'WMSYS',

 'XDB',

 'SYS',

 'DBSNMP',

 'SYSMAN',

 'SYSTEM')

 THEN

 IF UPPER (v_prog) LIKE '%TOAD%' -- Toad

 OR UPPER (v_module) LIKE '%TOAD%' -- Toad

 OR UPPER (v_prog) LIKE '%T.O.A.D%' -- Toad

 OR UPPER (v_module) LIKE '%T.O.A.D%' -- Toad

 OR UPPER (v_prog) LIKE '%SQLNAV%' -- SQL Navigator

 OR UPPER (v_module) LIKE '%SQLNAV%' -- SQL Navigator

 OR UPPER (v_prog) LIKE '%PLSQLDEV%' -- PLSQL Developer

 OR UPPER (v_module) LIKE '%PLSQLDEV%' -- PLSQL Developer

 OR UPPER (v_prog) LIKE '%PL/SQL Developer%' -- PLSQL Developer

 OR UPPER (v_module) LIKE '%PL/SQL Developer%' -- PLSQL Developer

 OR UPPER (v_prog) LIKE '%SQL%' -- SQL Developer

 OR UPPER (v_module) LIKE '%SQL%' -- SQL Developer

 OR UPPER (v_prog) LIKE '%SQL Developer%' -- SQL Developer

 OR UPPER (v_module) LIKE '%SQL Developer%' -- SQL Developer

 OR UPPER (v_prog) LIKE '%BUSOBJ%' -- Business Objects

 OR UPPER (v_module) LIKE '%BUSOBJ%' -- Business Objects

 OR UPPER (v_prog) LIKE '%EXCEL%' -- MS-Excel plug-in

 OR UPPER (v_module) LIKE '%EXCEL%' -- MS-Excel plug-in

 OR UPPER (v_prog) LIKE '%SQLPLUS%' -- SQLPLUS

 OR UPPER (v_module) LIKE '%SQLPLUS%' -- SQLPLUS

 OR UPPER (v_prog) LIKE '%DEVELOPER%' -- Oracle SQL Developer

 OR UPPER (v_module) LIKE '%DEVELOPER%' -- Oracle SQL Developer

 OR UPPER (v_prog) LIKE '%IFBLD%' -- Oracle Forms Developer Builder

 OR UPPER (v_module) LIKE '%IFBLD%' -- Oracle Forms Developer Builder

 OR UPPER (v_prog) LIKE '%RWBUILDER%' -- Oracle Reports Builder

 OR UPPER (v_module) LIKE '%RWBUILDER%' -- Oracle Reports Builder

 OR UPPER (v_prog) LIKE '%RAPTOR%' -- Oracle Raptor

 OR UPPER (v_module) LIKE '%RAPTOR%' -- Oracle Raptor

 THEN

 RAISE_APPLICATION_ERROR (

 -2,

 'A Ferramenta de desenvolvimento '

 || v_module

 || ' não é permitida na PRODUÇÃO! ('

 || v_osuser

 || ' - '

 || owner

 || ' - '

 || v_prog

 || ' - '

 || v_module -- Parametro acrescentado.

 || ')');

 END IF;

 END IF;

 EXCEPTION

 WHEN NO_DATA_FOUND

 THEN

 NULL;

 END;

 /

 = ERRO ==

 # -- Erro apresentado quando da tentativa de conexao com usuario (cbarbosa)

 #

 Ocorreu um erro ao executar a operação solicitada:

 ORA-04098: gatilho 'SYS.TG_LOGON_AUDIT_TRIGGER' é inválido e a revalidação
 falhou

 04098. 0 - trigger '%s.%s' is invalid and failed re-validation

 *Cause: A trigger was attempted to be retrieved for execution and was

 found to be invalid. This also means that compilation/authorization

 failed for the trigger.

 *Action: Options are to resolve 

Re: [oracle_br] Trigger de logon...

2015-05-28 Por tôpico Rafael Mendonca raffaell.t...@yahoo.com [oracle_br]
Acrescenta também nas ferramentas, o SQLTools muito utilizada por 
desenvolvedores e analistas. 


 Em Quinta-feira, 28 de Maio de 2015 13:40, Rafael Mendonca 
raffaell.t...@yahoo.com [oracle_br] oracle_br@yahoogrupos.com.br escreveu:
   

     Outra coisa que reparei na sua trigger, é que você utiliza UPPER(OWNER) 
comparando com os nomes dos usuários em minúsculo: 'cbarbosa' entre outros...
Ou seja, o usuário que entrar com cbarbosa, oracle, administrador irá passar 
pela trigger após a correção do seu problema.

 


 Em Quinta-feira, 28 de Maio de 2015 12:34, 'Schiavini' 
et...@schiavini.inf.br [oracle_br] oracle_br@yahoogrupos.com.br escreveu:
   

     Boa tarde

Qual é o resultado de:

alter trigger TG_LOGON_AUDIT_TRIGGER compile;

Étore

From: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] 
Sent: quinta-feira, 28 de maio de 2015 11:50
To: Lista de Usuários Oracle; Grupo OraOracle; Oracle in Brazil
Subject: [oracle_br] Trigger de logon...

Bom dia!

Caros amigos, em pesquisa na net, também com sugestões recebidas de alguns 
amigos, compilei a seguinte trigger abaixo, apesar de não apresentar erros na 
compilação, quando tento acessar com o usuário cbarbosa é mostrado o ERRO 
descrito ao final da trigger:

Gostaria da ajuda dos amigos que possuem maior experiência com oracle para a 
identificação do erro e sua solução.

Obrigado...

DROP TRIGGER SYS.TG_BLOCK_TOOLS_FROM_PROD;

CREATE OR REPLACE TRIGGER SYS.TG_BLOCK_TOOLS_FROM_PROD

AFTER LOGON

ON DATABASE

DECLARE

v_prog SYS.v_$session.program%TYPE;

v_module SYS.v_$session.module%TYPE; -- Parametro acrescentado para evitar 
programa renomeado.

owner SYS.v_$session.username%TYPE;

v_osuser SYS.v_$session.osuser%TYPE;

BEGIN

SELECT program,

module,

username,

osuser

INTO v_prog,

v_module,

owner,

v_osuser

FROM sys.v_$session

WHERE audsid = USERENV ('SESSIONID') AND audsid != 0 -- Não verificar conexões 
SYS

AND ROWNUM = 1; -- Processos paralelos terá o mesmo do AUDSID

IF UPPER (owner) NOT IN ('cbarbosa',

'oracle',

'administrador',

'IUSR_ISSEC',

'APACHE',

'OEM',

'OEM22',

'SCOTT',

'SI_INFORMTN_SCHEMA',

'TSMSYS',

'WKPROXY',

'WKSYS',

'WMSYS',

'XDB',

'SYS',

'DBSNMP',

'SYSMAN',

'SYSTEM')

THEN

IF UPPER (v_prog) LIKE '%TOAD%' -- Toad

OR UPPER (v_module) LIKE '%TOAD%' -- Toad

OR UPPER (v_prog) LIKE '%T.O.A.D%' -- Toad

OR UPPER (v_module) LIKE '%T.O.A.D%' -- Toad

OR UPPER (v_prog) LIKE '%SQLNAV%' -- SQL Navigator

OR UPPER (v_module) LIKE '%SQLNAV%' -- SQL Navigator

OR UPPER (v_prog) LIKE '%PLSQLDEV%' -- PLSQL Developer

OR UPPER (v_module) LIKE '%PLSQLDEV%' -- PLSQL Developer

OR UPPER (v_prog) LIKE '%PL/SQL Developer%' -- PLSQL Developer

OR UPPER (v_module) LIKE '%PL/SQL Developer%' -- PLSQL Developer

OR UPPER (v_prog) LIKE '%SQL%' -- SQL Developer

OR UPPER (v_module) LIKE '%SQL%' -- SQL Developer

OR UPPER (v_prog) LIKE '%SQL Developer%' -- SQL Developer

OR UPPER (v_module) LIKE '%SQL Developer%' -- SQL Developer

OR UPPER (v_prog) LIKE '%BUSOBJ%' -- Business Objects

OR UPPER (v_module) LIKE '%BUSOBJ%' -- Business Objects

OR UPPER (v_prog) LIKE '%EXCEL%' -- MS-Excel plug-in

OR UPPER (v_module) LIKE '%EXCEL%' -- MS-Excel plug-in

OR UPPER (v_prog) LIKE '%SQLPLUS%' -- SQLPLUS

OR UPPER (v_module) LIKE '%SQLPLUS%' -- SQLPLUS

OR UPPER (v_prog) LIKE '%DEVELOPER%' -- Oracle SQL Developer

OR UPPER (v_module) LIKE '%DEVELOPER%' -- Oracle SQL Developer

OR UPPER (v_prog) LIKE '%IFBLD%' -- Oracle Forms Developer Builder

OR UPPER (v_module) LIKE '%IFBLD%' -- Oracle Forms Developer Builder

OR UPPER (v_prog) LIKE '%RWBUILDER%' -- Oracle Reports Builder

OR UPPER (v_module) LIKE '%RWBUILDER%' -- Oracle Reports Builder

OR UPPER (v_prog) LIKE '%RAPTOR%' -- Oracle Raptor

OR UPPER (v_module) LIKE '%RAPTOR%' -- Oracle Raptor

THEN

RAISE_APPLICATION_ERROR (

-2,

'A Ferramenta de desenvolvimento '

|| v_module

|| ' não é permitida na PRODUÇÃO! ('

|| v_osuser

|| ' - '

|| owner

|| ' - '

|| v_prog

|| ' - '

|| v_module -- Parametro acrescentado.

|| ')');

END IF;

END IF;

EXCEPTION

WHEN NO_DATA_FOUND

THEN

NULL;

END;

/

= ERRO ==

# -- Erro apresentado quando da tentativa de conexao com usuario (cbarbosa)

#

Ocorreu um erro ao executar a operação solicitada:

ORA-04098: gatilho 'SYS.TG_LOGON_AUDIT_TRIGGER' é inválido e a revalidação 
falhou

04098. 0 - trigger '%s.%s' is invalid and failed re-validation

*Cause: A trigger was attempted to be retrieved for execution and was

found to be invalid. This also means that compilation/authorization

failed for the trigger.

*Action: Options are to resolve the compilation/authorization errors,

disable the trigger, or drop the trigger.

Código de fornecedor 4098

= ATT ==

# -- A TRIGGER NÃO APRESENTA ERROS DE COMPILAÇÃO

SELECT LINE,

POSITION,

REPLACE (TEXT, CHR (10), ' '),

attribute

FROM SYS.ALL_ERRORS A

WHERE A.NAME = 'TG_BLOCK_TOOLS_FROM_PROD'

AND 

Re: [oracle_br] Trigger de logon...

2015-05-28 Por tôpico jlchia...@yahoo.com.br [oracle_br]
Yep : provavelmente, como eu disse numa msg anterior, o DBA teria um JOB de 
banco que roda a cada um ou dois minutos, varre a V$SESSION e mata as sessões 
(ou envia email, se matar é muito radical) cujo nome de programa não seja o 
talequal da aplicação, ou que o IP é o do web server/servidor de aplicação, ou 
sei lá que info seria usada para identificar que a sessão se originou da app...

 []s
 
   Chiappa

Re: [oracle_br] Trigger de logon...

2015-05-28 Por tôpico Rafael Mendonca raffaell.t...@yahoo.com [oracle_br]
Outra coisa que reparei na sua trigger, é que você utiliza UPPER(OWNER) 
comparando com os nomes dos usuários em minúsculo: 'cbarbosa' entre outros...
Ou seja, o usuário que entrar com cbarbosa, oracle, administrador irá passar 
pela trigger após a correção do seu problema.

 


 Em Quinta-feira, 28 de Maio de 2015 12:34, 'Schiavini' 
et...@schiavini.inf.br [oracle_br] oracle_br@yahoogrupos.com.br escreveu:
   

     Boa tarde

Qual é o resultado de:

alter trigger TG_LOGON_AUDIT_TRIGGER compile;

Étore

From: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] 
Sent: quinta-feira, 28 de maio de 2015 11:50
To: Lista de Usuários Oracle; Grupo OraOracle; Oracle in Brazil
Subject: [oracle_br] Trigger de logon...

Bom dia!

Caros amigos, em pesquisa na net, também com sugestões recebidas de alguns 
amigos, compilei a seguinte trigger abaixo, apesar de não apresentar erros na 
compilação, quando tento acessar com o usuário cbarbosa é mostrado o ERRO 
descrito ao final da trigger:

Gostaria da ajuda dos amigos que possuem maior experiência com oracle para a 
identificação do erro e sua solução.

Obrigado...

DROP TRIGGER SYS.TG_BLOCK_TOOLS_FROM_PROD;

CREATE OR REPLACE TRIGGER SYS.TG_BLOCK_TOOLS_FROM_PROD

AFTER LOGON

ON DATABASE

DECLARE

v_prog SYS.v_$session.program%TYPE;

v_module SYS.v_$session.module%TYPE; -- Parametro acrescentado para evitar 
programa renomeado.

owner SYS.v_$session.username%TYPE;

v_osuser SYS.v_$session.osuser%TYPE;

BEGIN

SELECT program,

module,

username,

osuser

INTO v_prog,

v_module,

owner,

v_osuser

FROM sys.v_$session

WHERE audsid = USERENV ('SESSIONID') AND audsid != 0 -- Não verificar conexões 
SYS

AND ROWNUM = 1; -- Processos paralelos terá o mesmo do AUDSID

IF UPPER (owner) NOT IN ('cbarbosa',

'oracle',

'administrador',

'IUSR_ISSEC',

'APACHE',

'OEM',

'OEM22',

'SCOTT',

'SI_INFORMTN_SCHEMA',

'TSMSYS',

'WKPROXY',

'WKSYS',

'WMSYS',

'XDB',

'SYS',

'DBSNMP',

'SYSMAN',

'SYSTEM')

THEN

IF UPPER (v_prog) LIKE '%TOAD%' -- Toad

OR UPPER (v_module) LIKE '%TOAD%' -- Toad

OR UPPER (v_prog) LIKE '%T.O.A.D%' -- Toad

OR UPPER (v_module) LIKE '%T.O.A.D%' -- Toad

OR UPPER (v_prog) LIKE '%SQLNAV%' -- SQL Navigator

OR UPPER (v_module) LIKE '%SQLNAV%' -- SQL Navigator

OR UPPER (v_prog) LIKE '%PLSQLDEV%' -- PLSQL Developer

OR UPPER (v_module) LIKE '%PLSQLDEV%' -- PLSQL Developer

OR UPPER (v_prog) LIKE '%PL/SQL Developer%' -- PLSQL Developer

OR UPPER (v_module) LIKE '%PL/SQL Developer%' -- PLSQL Developer

OR UPPER (v_prog) LIKE '%SQL%' -- SQL Developer

OR UPPER (v_module) LIKE '%SQL%' -- SQL Developer

OR UPPER (v_prog) LIKE '%SQL Developer%' -- SQL Developer

OR UPPER (v_module) LIKE '%SQL Developer%' -- SQL Developer

OR UPPER (v_prog) LIKE '%BUSOBJ%' -- Business Objects

OR UPPER (v_module) LIKE '%BUSOBJ%' -- Business Objects

OR UPPER (v_prog) LIKE '%EXCEL%' -- MS-Excel plug-in

OR UPPER (v_module) LIKE '%EXCEL%' -- MS-Excel plug-in

OR UPPER (v_prog) LIKE '%SQLPLUS%' -- SQLPLUS

OR UPPER (v_module) LIKE '%SQLPLUS%' -- SQLPLUS

OR UPPER (v_prog) LIKE '%DEVELOPER%' -- Oracle SQL Developer

OR UPPER (v_module) LIKE '%DEVELOPER%' -- Oracle SQL Developer

OR UPPER (v_prog) LIKE '%IFBLD%' -- Oracle Forms Developer Builder

OR UPPER (v_module) LIKE '%IFBLD%' -- Oracle Forms Developer Builder

OR UPPER (v_prog) LIKE '%RWBUILDER%' -- Oracle Reports Builder

OR UPPER (v_module) LIKE '%RWBUILDER%' -- Oracle Reports Builder

OR UPPER (v_prog) LIKE '%RAPTOR%' -- Oracle Raptor

OR UPPER (v_module) LIKE '%RAPTOR%' -- Oracle Raptor

THEN

RAISE_APPLICATION_ERROR (

-2,

'A Ferramenta de desenvolvimento '

|| v_module

|| ' não é permitida na PRODUÇÃO! ('

|| v_osuser

|| ' - '

|| owner

|| ' - '

|| v_prog

|| ' - '

|| v_module -- Parametro acrescentado.

|| ')');

END IF;

END IF;

EXCEPTION

WHEN NO_DATA_FOUND

THEN

NULL;

END;

/

= ERRO ==

# -- Erro apresentado quando da tentativa de conexao com usuario (cbarbosa)

#

Ocorreu um erro ao executar a operação solicitada:

ORA-04098: gatilho 'SYS.TG_LOGON_AUDIT_TRIGGER' é inválido e a revalidação 
falhou

04098. 0 - trigger '%s.%s' is invalid and failed re-validation

*Cause: A trigger was attempted to be retrieved for execution and was

found to be invalid. This also means that compilation/authorization

failed for the trigger.

*Action: Options are to resolve the compilation/authorization errors,

disable the trigger, or drop the trigger.

Código de fornecedor 4098

= ATT ==

# -- A TRIGGER NÃO APRESENTA ERROS DE COMPILAÇÃO

SELECT LINE,

POSITION,

REPLACE (TEXT, CHR (10), ' '),

attribute

FROM SYS.ALL_ERRORS A

WHERE A.NAME = 'TG_BLOCK_TOOLS_FROM_PROD'

AND A.TYPE = 'TRIGGER'

AND A.OWNER = 'SYS'

ORDER BY ATTRIBUTE, LINE, POSITION;

Time Start: 28/05/2015 10:07:29

no rows selected. (SEM ERROS DE COMPILACAO...)

Time End: 28/05/2015 10:07:30

Elapsed Time for Script Execution: 514 msecs

Atenciosamente,


RE: [oracle_br] Trigger de logon...

2015-05-28 Por tôpico 'Schiavini' et...@schiavini.inf.br [oracle_br]
Boa tarde

 

Qual é o resultado de:

 

alter trigger TG_LOGON_AUDIT_TRIGGER compile;

 

Étore

 

From: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] 
Sent: quinta-feira, 28 de maio de 2015 11:50
To: Lista de Usuários Oracle; Grupo OraOracle; Oracle in Brazil
Subject: [oracle_br] Trigger de logon...

 

  

Bom dia!

 

Caros amigos, em pesquisa na net, também com sugestões recebidas de alguns 
amigos, compilei a seguinte trigger abaixo, apesar de não apresentar erros na 
compilação, quando tento acessar com o usuário cbarbosa é mostrado o ERRO 
descrito ao final da trigger:

 

Gostaria da ajuda dos amigos que possuem maior experiência com oracle para a 
identificação do erro e sua solução.

 

Obrigado...

 

DROP TRIGGER SYS.TG_BLOCK_TOOLS_FROM_PROD;

 

CREATE OR REPLACE TRIGGER SYS.TG_BLOCK_TOOLS_FROM_PROD

   AFTER LOGON

   ON DATABASE

DECLARE

   v_prog SYS.v_$session.program%TYPE;

   v_module   SYS.v_$session.module%TYPE; -- Parametro acrescentado para evitar 
programa renomeado.

   owner  SYS.v_$session.username%TYPE;

   v_osuser   SYS.v_$session.osuser%TYPE;

BEGIN

   SELECT program,

  module,

  username,

  osuser

 INTO v_prog,

  v_module,

  owner,

  v_osuser

 FROM sys.v_$session

WHERE audsid = USERENV ('SESSIONID') AND audsid != 0 -- Não verificar 
conexões SYS

AND ROWNUM = 1; -- Processos paralelos terá o mesmo do AUDSID

 

   IF UPPER (owner) NOT IN ('cbarbosa',

'oracle',

'administrador',

'IUSR_ISSEC',

'APACHE',

'OEM',

'OEM22',

'SCOTT',

'SI_INFORMTN_SCHEMA',

'TSMSYS',

'WKPROXY',

'WKSYS',

'WMSYS',

'XDB',

'SYS',

'DBSNMP',

'SYSMAN',

'SYSTEM')

   THEN

  IFUPPER (v_prog) LIKE '%TOAD%'   -- Toad

 OR UPPER (v_module) LIKE '%TOAD%' -- Toad

 OR UPPER (v_prog) LIKE '%T.O.A.D%'-- Toad

 OR UPPER (v_module) LIKE '%T.O.A.D%'  -- Toad

 OR UPPER (v_prog) LIKE '%SQLNAV%'-- SQL Navigator

 OR UPPER (v_module) LIKE '%SQLNAV%'  -- SQL Navigator

 OR UPPER (v_prog) LIKE '%PLSQLDEV%'-- PLSQL Developer

 OR UPPER (v_module) LIKE '%PLSQLDEV%'  -- PLSQL Developer

 OR UPPER (v_prog) LIKE '%PL/SQL Developer%'-- PLSQL Developer

 OR UPPER (v_module) LIKE '%PL/SQL Developer%'  -- PLSQL Developer

 OR UPPER (v_prog) LIKE '%SQL%'   -- SQL Developer

 OR UPPER (v_module) LIKE '%SQL%' -- SQL Developer

 OR UPPER (v_prog) LIKE '%SQL Developer%' -- SQL Developer

 OR UPPER (v_module) LIKE '%SQL Developer%'   -- SQL Developer

 OR UPPER (v_prog) LIKE '%BUSOBJ%' -- Business Objects

 OR UPPER (v_module) LIKE '%BUSOBJ%'   -- Business Objects

 OR UPPER (v_prog) LIKE '%EXCEL%'  -- MS-Excel plug-in

 OR UPPER (v_module) LIKE '%EXCEL%'-- MS-Excel plug-in

 OR UPPER (v_prog) LIKE '%SQLPLUS%' -- SQLPLUS

 OR UPPER (v_module) LIKE '%SQLPLUS%'   -- SQLPLUS

 OR UPPER (v_prog) LIKE '%DEVELOPER%'  -- Oracle SQL Developer

 OR UPPER (v_module) LIKE '%DEVELOPER%'-- Oracle SQL Developer

 OR UPPER (v_prog) LIKE '%IFBLD%'-- Oracle Forms Developer Builder

 OR UPPER (v_module) LIKE '%IFBLD%'  -- Oracle Forms Developer Builder

 OR UPPER (v_prog) LIKE '%RWBUILDER%'-- Oracle Reports Builder

 OR UPPER (v_module) LIKE '%RWBUILDER%'  -- Oracle Reports Builder

 OR UPPER (v_prog) LIKE '%RAPTOR%'-- Oracle Raptor

 OR UPPER (v_module) LIKE '%RAPTOR%'  -- Oracle Raptor

  THEN

 RAISE_APPLICATION_ERROR (

-2,

   'A Ferramenta de desenvolvimento '

|| v_module

|| ' não é permitida na PRODUÇÃO! ('

|| v_osuser

|| ' - '

|| owner

|| ' - '

|| v_prog

|| ' - '

|| v_module -- Parametro acrescentado.

|| ')');

  END IF;

   END IF;

EXCEPTION

   WHEN NO_DATA_FOUND

   THEN

  NULL;

END;

/

 

= ERRO 

Re: [oracle_br] Trigger para Fechamento Diário

2014-09-24 Por tôpico Vitor Junior vitorj...@gmail.com [oracle_br]
Agende um job para rodar a meia noite.



Sent from my LG NEXUS 5

Att,/Regards,

Vitor Jr.
Infraestrutura / Infrastructure Team
Oracle 11g DBA Certified Professional - OCP

Oracle Certified Expert, Oracle Real Application Clusters 11g and Grid
Infrastructure Administrator - OCE
Oracle Database 11g Performance Tuning Certified Expert - OCE
Oracle Exadata 11g Certified Implementation Specialist
Oracle Certified Associate, MySQL 5
mail, gtalk e msn: vitorj...@gmail.com
http://certificacaobd.com.br/
skype: vjunior1981

https://mybizcard.co/vitor.jr.385628


Em 24/09/2014 08:58, samuel.calleg...@yahoo.com.br [oracle_br] 
oracle_br@yahoogrupos.com.br escreveu:



 Prezados,

 Bom Dia,

 Estou desenvolvendo um sistema em Delphi6 com Oracle 11g. Neste sistema
 existe uma funcionalidade que fica calculando o desempenho diário do
 processo de trabalho dos operadores para ser exibido em um painel.

 Os calculos e as consultas estão funcionando todas corretamente, porém
 existe uma função que faz o fechamento do saldo diário das notas fiscais e
 que é para ser executado à meia noite.

 O problema é que para este procecimento ser executado o módulo do painel
 informativo tem que estar rodando e o cliente desliga o computador todo dia
 à noite e torna-o a ligar pela manhã, porém ele faz isso após o início das
 atividades, o que faz com que os valores obtidos sejam diferentes dos que
 realmente deveriam ser.

 A minha pergunta é : É possível fazer uma trigger no banco de dados que se
 autoexecute à meia noite ( ou outro horário a ser definido ) sem a
 necessidade de iniciar alguma operação no banco pelo sistema?

 Antecipadamente agradeço

 Samuca



  



Re: [oracle_br] TRIGGER SIMPRES

2014-08-15 Por tôpico Eduardo Perdomo panc...@gmail.com [oracle_br]
Obrigado por responder,

mas parece que compila sem erros mas dá erro abaixo ao editar a descricao e
tentar salvar :

13:42:10  ORA-04098: trigger 'LOCAL.PRODUTO_IGUALACAMPO' is invalid and
failed re-validation



2014-08-15 13:36 GMT-03:00 'Alisson Luz' alisson...@yahoo.com.br
[oracle_br] oracle_br@yahoogrupos.com.br:



 Olá boa tarde..



 :new. DESCRICAO2 := :new. DESCRICAO;



 No lugar do update.







 *De:* oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br]
 *Enviada em:* sexta-feira, 15 de agosto de 2014 13:33
 *Para:* oracle_br@yahoogrupos.com.br
 *Assunto:* [oracle_br] TRIGGER SIMPRES





 Boa tarde.



 O que está errado nessa trigger simples para igualar dois campos :



 CREATE OR REPLACE TRIGGER PRODUTO_IGUALACAMPO

  after insert or update ON PRODUTO

  FOR EACH ROW

 BEGIN

UPDATE PRODUTO set DESCRICAO2 = DESCRICAO;

 END;





 --



 Eduardo Perdomo

 Consultor de Implantação

 Grupo PC Sistemas - www.grupopc.com.br

 (21) 6845-8592

 panc...@gmail.com

 eduardo.perd...@pcinformatica.com.br

 Blog: eduardo.perdomo.nom.br

  




-- 

Eduardo Perdomo
Consultor de Implantação
Grupo PC Sistemas - www.grupopc.com.br
(21) 6845-8592
panc...@gmail.com
eduardo.perd...@pcinformatica.com.br
Blog: eduardo.perdomo.nom.br


Re: [oracle_br] TRIGGER SIMPRES

2014-08-15 Por tôpico Eduardo Perdomo panc...@gmail.com [oracle_br]
Continua mesmo erro mesmo dropando..


Em 15 de agosto de 2014 13:50, 'Alisson Luz' alisson...@yahoo.com.br
[oracle_br] oracle_br@yahoogrupos.com.br escreveu:



 Drop a trigger e crie novamente.



 *De:* oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br]
 *Enviada em:* sexta-feira, 15 de agosto de 2014 13:46
 *Para:* oracle_br@yahoogrupos.com.br
 *Assunto:* Re: [oracle_br] TRIGGER SIMPRES





 Obrigado por responder,



 mas parece que compila sem erros mas dá erro abaixo ao editar a descricao
 e tentar salvar :



 13:42:10  ORA-04098: trigger 'LOCAL.PRODUTO_IGUALACAMPO' is invalid and
 failed re-validation





 2014-08-15 13:36 GMT-03:00 'Alisson Luz' alisson...@yahoo.com.br
 [oracle_br] oracle_br@yahoogrupos.com.br:



 Olá boa tarde..



 :new. DESCRICAO2 := :new. DESCRICAO;



 No lugar do update.







 *De:* oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br]
 *Enviada em:* sexta-feira, 15 de agosto de 2014 13:33
 *Para:* oracle_br@yahoogrupos.com.br
 *Assunto:* [oracle_br] TRIGGER SIMPRES





 Boa tarde.



 O que está errado nessa trigger simples para igualar dois campos :



 CREATE OR REPLACE TRIGGER PRODUTO_IGUALACAMPO

  after insert or update ON PRODUTO

  FOR EACH ROW

 BEGIN

UPDATE PRODUTO set DESCRICAO2 = DESCRICAO;

 END;





 --



 Eduardo Perdomo

 Consultor de Implantação

 Grupo PC Sistemas - www.grupopc.com.br

 (21) 6845-8592

 panc...@gmail.com

 eduardo.perd...@pcinformatica.com.br

 Blog: eduardo.perdomo.nom.br





 --



 Eduardo Perdomo

 Consultor de Implantação

 Grupo PC Sistemas - www.grupopc.com.br

 (21) 6845-8592

 panc...@gmail.com

 eduardo.perd...@pcinformatica.com.br

 Blog: eduardo.perdomo.nom.br

  




-- 

Eduardo Perdomo
Consultor de Implantação
Grupo PC Sistemas - www.grupopc.com.br
(21) 6845-8592
panc...@gmail.com
eduardo.perd...@pcinformatica.com.br
Blog: eduardo.perdomo.nom.br


Re: [oracle_br] TRIGGER SIMPRES

2014-08-15 Por tôpico Eduardo Perdomo panc...@gmail.com [oracle_br]
O descricao é varchar 40 e o descricao2 é varchar 45...  :-(


Em 15 de agosto de 2014 14:01, 'Alisson Luz' alisson...@yahoo.com.br
[oracle_br] oracle_br@yahoogrupos.com.br escreveu:



 Eduardo,



 O erro é ao editar um registro ?



 Se sim os campos DESCRICAO2 é igual ao campo DESCRICAO ?



 Seguindo a mesma estrutura ? como tamanhos e tipos ?



 *De:* oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br]
 *Enviada em:* sexta-feira, 15 de agosto de 2014 13:59

 *Para:* oracle_br@yahoogrupos.com.br
 *Assunto:* Re: [oracle_br] TRIGGER SIMPRES





 Continua mesmo erro mesmo dropando..



 Em 15 de agosto de 2014 13:50, 'Alisson Luz' alisson...@yahoo.com.br
 [oracle_br] oracle_br@yahoogrupos.com.br escreveu:



 Drop a trigger e crie novamente.



 *De:* oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br]
 *Enviada em:* sexta-feira, 15 de agosto de 2014 13:46
 *Para:* oracle_br@yahoogrupos.com.br
 *Assunto:* Re: [oracle_br] TRIGGER SIMPRES





 Obrigado por responder,



 mas parece que compila sem erros mas dá erro abaixo ao editar a descricao
 e tentar salvar :



 13:42:10  ORA-04098: trigger 'LOCAL.PRODUTO_IGUALACAMPO' is invalid and
 failed re-validation





 2014-08-15 13:36 GMT-03:00 'Alisson Luz' alisson...@yahoo.com.br
 [oracle_br] oracle_br@yahoogrupos.com.br:



 Olá boa tarde..



 :new. DESCRICAO2 := :new. DESCRICAO;



 No lugar do update.







 *De:* oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br]
 *Enviada em:* sexta-feira, 15 de agosto de 2014 13:33
 *Para:* oracle_br@yahoogrupos.com.br
 *Assunto:* [oracle_br] TRIGGER SIMPRES





 Boa tarde.



 O que está errado nessa trigger simples para igualar dois campos :



 CREATE OR REPLACE TRIGGER PRODUTO_IGUALACAMPO

  after insert or update ON PRODUTO

  FOR EACH ROW

 BEGIN

UPDATE PRODUTO set DESCRICAO2 = DESCRICAO;

 END;





 --



 Eduardo Perdomo

 Consultor de Implantação

 Grupo PC Sistemas - www.grupopc.com.br

 (21) 6845-8592

 panc...@gmail.com

 eduardo.perd...@pcinformatica.com.br

 Blog: eduardo.perdomo.nom.br





 --



 Eduardo Perdomo

 Consultor de Implantação

 Grupo PC Sistemas - www.grupopc.com.br

 (21) 6845-8592

 panc...@gmail.com

 eduardo.perd...@pcinformatica.com.br

 Blog: eduardo.perdomo.nom.br





 --



 Eduardo Perdomo

 Consultor de Implantação

 Grupo PC Sistemas - www.grupopc.com.br

 (21) 6845-8592

 panc...@gmail.com

 eduardo.perd...@pcinformatica.com.br

 Blog: eduardo.perdomo.nom.br

  




-- 

Eduardo Perdomo
Consultor de Implantação
Grupo PC Sistemas - www.grupopc.com.br
(21) 6845-8592
panc...@gmail.com
eduardo.perd...@pcinformatica.com.br
Blog: eduardo.perdomo.nom.br


Re: [oracle_br] TRIGGER SIMPRES

2014-08-15 Por tôpico Eduardo Perdomo panc...@gmail.com [oracle_br]
mesmo  :new.descricao2 :=  'teste'; dá o mesmo erro...


Em 15 de agosto de 2014 14:08, Eduardo Perdomo panc...@gmail.com escreveu:

 O descricao é varchar 40 e o descricao2 é varchar 45...  :-(


 Em 15 de agosto de 2014 14:01, 'Alisson Luz' alisson...@yahoo.com.br
 [oracle_br] oracle_br@yahoogrupos.com.br escreveu:



 Eduardo,



 O erro é ao editar um registro ?



 Se sim os campos DESCRICAO2 é igual ao campo DESCRICAO ?



 Seguindo a mesma estrutura ? como tamanhos e tipos ?



 *De:* oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br]
 *Enviada em:* sexta-feira, 15 de agosto de 2014 13:59

 *Para:* oracle_br@yahoogrupos.com.br
 *Assunto:* Re: [oracle_br] TRIGGER SIMPRES





 Continua mesmo erro mesmo dropando..



 Em 15 de agosto de 2014 13:50, 'Alisson Luz' alisson...@yahoo.com.br
 [oracle_br] oracle_br@yahoogrupos.com.br escreveu:



 Drop a trigger e crie novamente.



 *De:* oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br]
 *Enviada em:* sexta-feira, 15 de agosto de 2014 13:46
 *Para:* oracle_br@yahoogrupos.com.br
 *Assunto:* Re: [oracle_br] TRIGGER SIMPRES





 Obrigado por responder,



 mas parece que compila sem erros mas dá erro abaixo ao editar a descricao
 e tentar salvar :



 13:42:10  ORA-04098: trigger 'LOCAL.PRODUTO_IGUALACAMPO' is invalid and
 failed re-validation





 2014-08-15 13:36 GMT-03:00 'Alisson Luz' alisson...@yahoo.com.br
 [oracle_br] oracle_br@yahoogrupos.com.br:



 Olá boa tarde..



 :new. DESCRICAO2 := :new. DESCRICAO;



 No lugar do update.







 *De:* oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br]
 *Enviada em:* sexta-feira, 15 de agosto de 2014 13:33
 *Para:* oracle_br@yahoogrupos.com.br
 *Assunto:* [oracle_br] TRIGGER SIMPRES





 Boa tarde.



 O que está errado nessa trigger simples para igualar dois campos :



 CREATE OR REPLACE TRIGGER PRODUTO_IGUALACAMPO

  after insert or update ON PRODUTO

  FOR EACH ROW

 BEGIN

UPDATE PRODUTO set DESCRICAO2 = DESCRICAO;

 END;





 --



 Eduardo Perdomo

 Consultor de Implantação

 Grupo PC Sistemas - www.grupopc.com.br

 (21) 6845-8592

 panc...@gmail.com

 eduardo.perd...@pcinformatica.com.br

 Blog: eduardo.perdomo.nom.br





 --



 Eduardo Perdomo

 Consultor de Implantação

 Grupo PC Sistemas - www.grupopc.com.br

 (21) 6845-8592

 panc...@gmail.com

 eduardo.perd...@pcinformatica.com.br

 Blog: eduardo.perdomo.nom.br





 --



 Eduardo Perdomo

 Consultor de Implantação

 Grupo PC Sistemas - www.grupopc.com.br

 (21) 6845-8592

 panc...@gmail.com

 eduardo.perd...@pcinformatica.com.br

 Blog: eduardo.perdomo.nom.br

   




 --

 Eduardo Perdomo
 Consultor de Implantação
 Grupo PC Sistemas - www.grupopc.com.br
 (21) 6845-8592
 panc...@gmail.com
 eduardo.perd...@pcinformatica.com.br
 Blog: eduardo.perdomo.nom.br




-- 

Eduardo Perdomo
Consultor de Implantação
Grupo PC Sistemas - www.grupopc.com.br
(21) 6845-8592
panc...@gmail.com
eduardo.perd...@pcinformatica.com.br
Blog: eduardo.perdomo.nom.br


Re: [oracle_br] TRIGGER SIMPRES

2014-08-15 Por tôpico Eduardo Perdomo panc...@gmail.com [oracle_br]
CREATE OR REPLACE TRIGGER PCPRODUT_IGUALACAMPO
before insert or update ON pcPRODUT
FOR EACH ROW
BEGIN
   :new.descricao7 :=  'teste';
END;

simples assim dá o erro 14:29:36  ORA-04098: trigger
'LOCAL.PCPRODUT_IGUALA_CAMPO' is invalid and failed re-validation




Em 15 de agosto de 2014 14:23, 'Alisson Luz' alisson...@yahoo.com.br
[oracle_br] oracle_br@yahoogrupos.com.br escreveu:



 Isso não teria problema..



 Me passe o código da trigger ...







 *De:* oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br]
 *Enviada em:* sexta-feira, 15 de agosto de 2014 14:08

 *Para:* oracle_br@yahoogrupos.com.br
 *Assunto:* Re: [oracle_br] TRIGGER SIMPRES





 O descricao é varchar 40 e o descricao2 é varchar 45...  :-(



 Em 15 de agosto de 2014 14:01, 'Alisson Luz' alisson...@yahoo.com.br
 [oracle_br] oracle_br@yahoogrupos.com.br escreveu:



 Eduardo,



 O erro é ao editar um registro ?



 Se sim os campos DESCRICAO2 é igual ao campo DESCRICAO ?



 Seguindo a mesma estrutura ? como tamanhos e tipos ?



 *De:* oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br]
 *Enviada em:* sexta-feira, 15 de agosto de 2014 13:59


 *Para:* oracle_br@yahoogrupos.com.br
 *Assunto:* Re: [oracle_br] TRIGGER SIMPRES





 Continua mesmo erro mesmo dropando..



 Em 15 de agosto de 2014 13:50, 'Alisson Luz' alisson...@yahoo.com.br
 [oracle_br] oracle_br@yahoogrupos.com.br escreveu:



 Drop a trigger e crie novamente.



 *De:* oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br]
 *Enviada em:* sexta-feira, 15 de agosto de 2014 13:46
 *Para:* oracle_br@yahoogrupos.com.br
 *Assunto:* Re: [oracle_br] TRIGGER SIMPRES





 Obrigado por responder,



 mas parece que compila sem erros mas dá erro abaixo ao editar a descricao
 e tentar salvar :



 13:42:10  ORA-04098: trigger 'LOCAL.PRODUTO_IGUALACAMPO' is invalid and
 failed re-validation





 2014-08-15 13:36 GMT-03:00 'Alisson Luz' alisson...@yahoo.com.br
 [oracle_br] oracle_br@yahoogrupos.com.br:



 Olá boa tarde..



 :new. DESCRICAO2 := :new. DESCRICAO;



 No lugar do update.







 *De:* oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br]
 *Enviada em:* sexta-feira, 15 de agosto de 2014 13:33
 *Para:* oracle_br@yahoogrupos.com.br
 *Assunto:* [oracle_br] TRIGGER SIMPRES





 Boa tarde.



 O que está errado nessa trigger simples para igualar dois campos :



 CREATE OR REPLACE TRIGGER PRODUTO_IGUALACAMPO

  after insert or update ON PRODUTO

  FOR EACH ROW

 BEGIN

UPDATE PRODUTO set DESCRICAO2 = DESCRICAO;

 END;





 --



 Eduardo Perdomo

 Consultor de Implantação

 Grupo PC Sistemas - www.grupopc.com.br

 (21) 6845-8592

 panc...@gmail.com

 eduardo.perd...@pcinformatica.com.br

 Blog: eduardo.perdomo.nom.br





 --



 Eduardo Perdomo

 Consultor de Implantação

 Grupo PC Sistemas - www.grupopc.com.br

 (21) 6845-8592

 panc...@gmail.com

 eduardo.perd...@pcinformatica.com.br

 Blog: eduardo.perdomo.nom.br





 --



 Eduardo Perdomo

 Consultor de Implantação

 Grupo PC Sistemas - www.grupopc.com.br

 (21) 6845-8592

 panc...@gmail.com

 eduardo.perd...@pcinformatica.com.br

 Blog: eduardo.perdomo.nom.br





 --



 Eduardo Perdomo

 Consultor de Implantação

 Grupo PC Sistemas - www.grupopc.com.br

 (21) 6845-8592

 panc...@gmail.com

 eduardo.perd...@pcinformatica.com.br

 Blog: eduardo.perdomo.nom.br

  




-- 

Eduardo Perdomo
Consultor de Implantação
Grupo PC Sistemas - www.grupopc.com.br
(21) 6845-8592
panc...@gmail.com
eduardo.perd...@pcinformatica.com.br
Blog: eduardo.perdomo.nom.br


RE: [oracle_br] TRIGGER SIMPRES

2014-08-15 Por tôpico Sergio Lucchini ser...@mercanet.com.br [oracle_br]
Eduardo, a trigger que esta gerando o erro é a PCPRODUT_IGUALA_CAMPO e a que vc 
esta alterando é a PCPRODUT_IGUALACAMPO.




From: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br]
Sent: sexta-feira, 15 de agosto de 2014 14:35
To: oracle_br@yahoogrupos.com.br
Subject: Re: [oracle_br] TRIGGER SIMPRES


CREATE OR REPLACE TRIGGER PCPRODUT_IGUALACAMPO
before insert or update ON pcPRODUT
FOR EACH ROW
BEGIN
   :new.descricao7 :=  'teste';
END;

simples assim dá o erro 14:29:36  ORA-04098: trigger 
'LOCAL.PCPRODUT_IGUALA_CAMPO' is invalid and failed re-validation



Em 15 de agosto de 2014 14:23, 'Alisson Luz' 
alisson...@yahoo.com.brmailto:alisson...@yahoo.com.br [oracle_br] 
oracle_br@yahoogrupos.com.brmailto:oracle_br@yahoogrupos.com.br escreveu:

Isso não teria problema..

Me passe o código da trigger ...



De: oracle_br@yahoogrupos.com.brmailto:oracle_br@yahoogrupos.com.br 
[mailto:oracle_br@yahoogrupos.com.brmailto:oracle_br@yahoogrupos.com.br]
Enviada em: sexta-feira, 15 de agosto de 2014 14:08

Para: oracle_br@yahoogrupos.com.brmailto:oracle_br@yahoogrupos.com.br
Assunto: Re: [oracle_br] TRIGGER SIMPRES


O descricao é varchar 40 e o descricao2 é varchar 45...  :-(

Em 15 de agosto de 2014 14:01, 'Alisson Luz' 
alisson...@yahoo.com.brmailto:alisson...@yahoo.com.br [oracle_br] 
oracle_br@yahoogrupos.com.brmailto:oracle_br@yahoogrupos.com.br escreveu:

Eduardo,

O erro é ao editar um registro ?

Se sim os campos DESCRICAO2 é igual ao campo DESCRICAO ?

Seguindo a mesma estrutura ? como tamanhos e tipos ?

De: oracle_br@yahoogrupos.com.brmailto:oracle_br@yahoogrupos.com.br 
[mailto:oracle_br@yahoogrupos.com.brmailto:oracle_br@yahoogrupos.com.br]
Enviada em: sexta-feira, 15 de agosto de 2014 13:59

Para: oracle_br@yahoogrupos.com.brmailto:oracle_br@yahoogrupos.com.br
Assunto: Re: [oracle_br] TRIGGER SIMPRES


Continua mesmo erro mesmo dropando..

Em 15 de agosto de 2014 13:50, 'Alisson Luz' 
alisson...@yahoo.com.brmailto:alisson...@yahoo.com.br [oracle_br] 
oracle_br@yahoogrupos.com.brmailto:oracle_br@yahoogrupos.com.br escreveu:

Drop a trigger e crie novamente.

De: oracle_br@yahoogrupos.com.brmailto:oracle_br@yahoogrupos.com.br 
[mailto:oracle_br@yahoogrupos.com.brmailto:oracle_br@yahoogrupos.com.br]
Enviada em: sexta-feira, 15 de agosto de 2014 13:46
Para: oracle_br@yahoogrupos.com.brmailto:oracle_br@yahoogrupos.com.br
Assunto: Re: [oracle_br] TRIGGER SIMPRES


Obrigado por responder,

mas parece que compila sem erros mas dá erro abaixo ao editar a descricao e 
tentar salvar :

13:42:10  ORA-04098: trigger 'LOCAL.PRODUTO_IGUALACAMPO' is invalid and failed 
re-validation


2014-08-15 13:36 GMT-03:00 'Alisson Luz' 
alisson...@yahoo.com.brmailto:alisson...@yahoo.com.br [oracle_br] 
oracle_br@yahoogrupos.com.brmailto:oracle_br@yahoogrupos.com.br:

Olá boa tarde..

:new. DESCRICAO2 := :new. DESCRICAO;

No lugar do update.



De: oracle_br@yahoogrupos.com.brmailto:oracle_br@yahoogrupos.com.br 
[mailto:oracle_br@yahoogrupos.com.brmailto:oracle_br@yahoogrupos.com.br]
Enviada em: sexta-feira, 15 de agosto de 2014 13:33
Para: oracle_br@yahoogrupos.com.brmailto:oracle_br@yahoogrupos.com.br
Assunto: [oracle_br] TRIGGER SIMPRES


Boa tarde.

O que está errado nessa trigger simples para igualar dois campos :

CREATE OR REPLACE TRIGGER PRODUTO_IGUALACAMPO
 after insert or update ON PRODUTO
 FOR EACH ROW
BEGIN
   UPDATE PRODUTO set DESCRICAO2 = DESCRICAO;
END;


--

Eduardo Perdomo
Consultor de Implantação
Grupo PC Sistemas - www.grupopc.com.brhttp://www.grupopc.com.br
(21) 6845-8592
panc...@gmail.commailto:panc...@gmail.com
eduardo.perd...@pcinformatica.com.brmailto:eduardo.perd...@pcinformatica.com.br
Blog: eduardo.perdomo.nom.brhttp://eduardo.perdomo.nom.br



--

Eduardo Perdomo
Consultor de Implantação
Grupo PC Sistemas - www.grupopc.com.brhttp://www.grupopc.com.br
(21) 6845-8592
panc...@gmail.commailto:panc...@gmail.com
eduardo.perd...@pcinformatica.com.brmailto:eduardo.perd...@pcinformatica.com.br
Blog: eduardo.perdomo.nom.brhttp://eduardo.perdomo.nom.br



--

Eduardo Perdomo
Consultor de Implantação
Grupo PC Sistemas - www.grupopc.com.brhttp://www.grupopc.com.br
(21) 6845-8592
panc...@gmail.commailto:panc...@gmail.com
eduardo.perd...@pcinformatica.com.brmailto:eduardo.perd...@pcinformatica.com.br
Blog: eduardo.perdomo.nom.brhttp://eduardo.perdomo.nom.br



--

Eduardo Perdomo
Consultor de Implantação
Grupo PC Sistemas - www.grupopc.com.brhttp://www.grupopc.com.br
(21) 6845-8592
panc...@gmail.commailto:panc...@gmail.com
eduardo.perd...@pcinformatica.com.brmailto:eduardo.perd...@pcinformatica.com.br
Blog: eduardo.perdomo.nom.brhttp://eduardo.perdomo.nom.br



--

Eduardo Perdomo
Consultor de Implantação
Grupo PC Sistemas - www.grupopc.com.brhttp://www.grupopc.com.br
(21) 6845-8592
panc...@gmail.commailto:panc...@gmail.com
eduardo.perd...@pcinformatica.com.brmailto:eduardo.perd...@pcinformatica.com.br
Blog: eduardo.perdomo.nom.brhttp://eduardo.perdomo.nom.br

Re: [oracle_br] TRIGGER SIMPRES

2014-08-15 Por tôpico Eduardo Perdomo panc...@gmail.com [oracle_br]
O Sérgio matou a charada e o exemplo do Allison estava certo.

Obrigado à todos...


Em 15 de agosto de 2014 14:42, 'Alisson Luz' alisson...@yahoo.com.br
[oracle_br] oracle_br@yahoogrupos.com.br escreveu:



 create table ADL

 (

   descricao  VARCHAR2(40),

   descricao2 VARCHAR2(45)

 );



 CREATE OR REPLACE TRIGGER PRODUTO_IGUALACAMPO

 before insert or update ON adl

 FOR EACH ROW

 BEGIN

:new.DESCRICAO2 := :new.DESCRICAO;

 END;





 insert into adl

 values ('teste','adl');

 commit;



 select * from adl









 Fiz um exemplo no base de teste e o processo







 *De:* oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br]
 *Enviada em:* sexta-feira, 15 de agosto de 2014 14:35

 *Para:* oracle_br@yahoogrupos.com.br
 *Assunto:* Re: [oracle_br] TRIGGER SIMPRES





 CREATE OR REPLACE TRIGGER PCPRODUT_IGUALACAMPO

 before insert or update ON pcPRODUT

 FOR EACH ROW

 BEGIN

:new.descricao7 :=  'teste';

 END;



 simples assim dá o erro 14:29:36  ORA-04098: trigger
 'LOCAL.PCPRODUT_IGUALA_CAMPO' is invalid and failed re-validation







 Em 15 de agosto de 2014 14:23, 'Alisson Luz' alisson...@yahoo.com.br
 [oracle_br] oracle_br@yahoogrupos.com.br escreveu:



 Isso não teria problema..



 Me passe o código da trigger ...







 *De:* oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br]
 *Enviada em:* sexta-feira, 15 de agosto de 2014 14:08


 *Para:* oracle_br@yahoogrupos.com.br
 *Assunto:* Re: [oracle_br] TRIGGER SIMPRES





 O descricao é varchar 40 e o descricao2 é varchar 45...  :-(



 Em 15 de agosto de 2014 14:01, 'Alisson Luz' alisson...@yahoo.com.br
 [oracle_br] oracle_br@yahoogrupos.com.br escreveu:



 Eduardo,



 O erro é ao editar um registro ?



 Se sim os campos DESCRICAO2 é igual ao campo DESCRICAO ?



 Seguindo a mesma estrutura ? como tamanhos e tipos ?



 *De:* oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br]
 *Enviada em:* sexta-feira, 15 de agosto de 2014 13:59


 *Para:* oracle_br@yahoogrupos.com.br
 *Assunto:* Re: [oracle_br] TRIGGER SIMPRES





 Continua mesmo erro mesmo dropando..



 Em 15 de agosto de 2014 13:50, 'Alisson Luz' alisson...@yahoo.com.br
 [oracle_br] oracle_br@yahoogrupos.com.br escreveu:



 Drop a trigger e crie novamente.



 *De:* oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br]
 *Enviada em:* sexta-feira, 15 de agosto de 2014 13:46
 *Para:* oracle_br@yahoogrupos.com.br
 *Assunto:* Re: [oracle_br] TRIGGER SIMPRES





 Obrigado por responder,



 mas parece que compila sem erros mas dá erro abaixo ao editar a descricao
 e tentar salvar :



 13:42:10  ORA-04098: trigger 'LOCAL.PRODUTO_IGUALACAMPO' is invalid and
 failed re-validation





 2014-08-15 13:36 GMT-03:00 'Alisson Luz' alisson...@yahoo.com.br
 [oracle_br] oracle_br@yahoogrupos.com.br:



 Olá boa tarde..



 :new. DESCRICAO2 := :new. DESCRICAO;



 No lugar do update.







 *De:* oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br]
 *Enviada em:* sexta-feira, 15 de agosto de 2014 13:33
 *Para:* oracle_br@yahoogrupos.com.br
 *Assunto:* [oracle_br] TRIGGER SIMPRES





 Boa tarde.



 O que está errado nessa trigger simples para igualar dois campos :



 CREATE OR REPLACE TRIGGER PRODUTO_IGUALACAMPO

  after insert or update ON PRODUTO

  FOR EACH ROW

 BEGIN

UPDATE PRODUTO set DESCRICAO2 = DESCRICAO;

 END;





 --



 Eduardo Perdomo

 Consultor de Implantação

 Grupo PC Sistemas - www.grupopc.com.br

 (21) 6845-8592

 panc...@gmail.com

 eduardo.perd...@pcinformatica.com.br

 Blog: eduardo.perdomo.nom.br





 --



 Eduardo Perdomo

 Consultor de Implantação

 Grupo PC Sistemas - www.grupopc.com.br

 (21) 6845-8592

 panc...@gmail.com

 eduardo.perd...@pcinformatica.com.br

 Blog: eduardo.perdomo.nom.br





 --



 Eduardo Perdomo

 Consultor de Implantação

 Grupo PC Sistemas - www.grupopc.com.br

 (21) 6845-8592

 panc...@gmail.com

 eduardo.perd...@pcinformatica.com.br

 Blog: eduardo.perdomo.nom.br





 --



 Eduardo Perdomo

 Consultor de Implantação

 Grupo PC Sistemas - www.grupopc.com.br

 (21) 6845-8592

 panc...@gmail.com

 eduardo.perd...@pcinformatica.com.br

 Blog: eduardo.perdomo.nom.br





 --



 Eduardo Perdomo

 Consultor de Implantação

 Grupo PC Sistemas - www.grupopc.com.br

 (21) 6845-8592

 panc...@gmail.com

 eduardo.perd...@pcinformatica.com.br

 Blog: eduardo.perdomo.nom.br

  




-- 

Eduardo Perdomo
Consultor de Implantação
Grupo PC Sistemas - www.grupopc.com.br
(21) 6845-8592
panc...@gmail.com
eduardo.perd...@pcinformatica.com.br
Blog: eduardo.perdomo.nom.br


RE: [oracle_br] Trigger para prevenir (e logar!) tentativas de DDL

2013-05-13 Por tôpico Schiavini
Bom dia

 

create or replace trigger before_ddl before ddl on schema
begin

   raise_application_error( -20001, 'Mensagem de erro' );

end;



Étore

 

From: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] On 
Behalf Of Vitor Jr.
Sent: segunda-feira, 13 de maio de 2013 09:28
To: oracle_br@yahoogrupos.com.br
Subject: [oracle_br] Trigger para prevenir (e logar!) tentativas de DDL

 

  

Bom dia pessoal.

Comecei a desenvolver, mas vai que alguém já tem pronto pra compartilhar... :)

Devido a uma necessidade do cliente, preciso desenvolver uma trigger que 
bloqueie qualquer comando DDL dentro de um schema. Ex.:

- Usuário conecta como SCOTT;

- Ao tentar executar um DDL em um objeto, essa trigger irá disparar, impedindo 
a conclusão do comando e logando a tentativa em uma tabela;

- A maneira de se executar um DDL seria como sys/system ou então desabilitando 
a trigger.

Alguém com algo pronto ou parecido?

Abraços! :)

​

Att,/Regards,

Vitor Jr.
Infraestrutura / Infrastructure Team
Oracle 11g DBA Certified Professional - OCP

Oracle Certified Expert, Oracle Real Application Clusters 11g and Grid 
Infrastructure Administrator - OCE
Oracle Database 11g Performance Tuning Certified Expert - OCE
Oracle Exadata 11g Certified Implementation Specialist
Oracle Certified Associate, MySQL 5
mail, gtalk e msn: mailto:vitorj...@gmail.com mailto:vitorjr81%40gmail.com  
vitorj...@gmail.com mailto:vitorjr81%40gmail.com 
http://certificacaobd.com.br/ http://certificacaobd.com.br/
skype: vjunior1981

[As partes desta mensagem que não continham texto foram removidas]





[As partes desta mensagem que não continham texto foram removidas]



Re: [oracle_br] Trigger com problemas

2013-04-30 Por tôpico Gerson Junior
Fala Rafael.

Não tem alguma outra trigger nesta mesma tabela que esteja limpando estes
campos não?

Tivemos um problema semelhante, em que o processo fazia o insert na tabela,
que disparava a trigger, e depois fazia um update no registro inserido,
para sinalizar que tinha concluído a operação, neste momento uma trigger de
update limpava os campos. Então, parecia ser um único momento, mas na
verdade eram 2 triggers uma anulando a outra.

Dá uma conferida nisso

Abraços!



Gerson S. de Vasconcelos Júnior
DBA - Oracle Certified
Fone: (16) 8176-0468
Msn: gerson.vasconce...@gmail.com
Skype: gersonvjunior
http://www.diaadiaoracle.com.br/


Em 30 de abril de 2013 14:40, Rafael HM Pereira
rafael.henri...@gmail.comescreveu:

 **


 Pessoal boa tarde!

 Estou com um problema incomum aqui na empresa.

 A trigger abaixo deveria realizar um insert simples na tabela
 FLP_HISTORICO.
 O problema é que a trigger esta inserindo apenas parte dos valores passados
 no insert. Os demais dados não são inseridos mesmo contendo valores nos
 campos.

 O mais curioso, é que se eu executar os inserts manualmente com os mesmos
 dados, o insert é realizado com sucesso.

 Alguem tem idéia do que pode ser?

 Dados inseridos corretamente: *:NEW.COD_FUNCIONARIO, :NEW.DAT_LANC, 204*
 Dados não inseridos: *:NEW.VLR_DOCUMENTO, 'MANAGER', :NEW.DAT_LANC, 'FC'*

 Trigger:

 *create or replace*
 *TRIGGER GLOBUS.TR_FLP_FICHACONDUTA_ARR_BH*
 *AFTER INSERT ON T_ARR_LANC_FUNC *
 *FOR EACH ROW WHEN (NEW.cod_empresa in (1,2,3))*
 *
 *
 *BEGIN*
 * INSERT INTO FLP_HISTORICO (codintfunc, dthist, codocorr,
 nrdoctohist, usuincluiu, dtincluiu, origem) *
 * VALUES (:NEW.COD_FUNCIONARIO, :NEW.DAT_LANC, 204,
 :NEW.VLR_DOCUMENTO,
 'MANAGER', :NEW.DAT_LANC, 'FC');*
 END;

 --
 Att,

 Rafael HM Pereira

 Linux User Id: 360166
 Skype: rafaelhmpereira
 MSN: rafael.henri...@gmail.com
 Blog: http://rafaelhmpereira.blogspot.com
 LinkedIn: http://br.linkedin.com/in/rafaelhmpereira
 (27) 9233-0734 / (27) 3328-4320

 [As partes desta mensagem que não continham texto foram removidas]

  



[As partes desta mensagem que não continham texto foram removidas]





--
Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--
Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » 
Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: 
http://www.oraclebr.com.br/  

 Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/

* Para sair deste grupo, envie um e-mail para:
oracle_br-unsubscr...@yahoogrupos.com.br

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html




Re: [oracle_br] Trigger utilizando exception

2012-09-18 Por tôpico Milton Bastos Henriquis Jr.
Boa tarde!

Suas perguntas já estão todas respondidas por você mesmo... rs
Está tudo correto o que vc falou.

Faça um SELECT INTO para pegar o valor do salário do gerente
do sujeito e armazenar numa variável.
Depois compare o valor do salário do sujeito com a variável...
Se for maior, vc dispara a exceção.




2012/9/18 Antony Ferreira tonyferrei...@gmail.com

 **


 Boa tarde pessoal,

 Estou começando a estudar um pouco de PL/SQL e me surgiu umas duvidas.
 Tenho a seguinte trigger:

 CREATE OR REPLACE TRIGGER imp_novos_emp
 BEFORE INSERT OR UPDATE ON employees
 FOR EACH ROW
 BEGIN
 IF NOT (:NEW.job_id IN ('AD_PRES', 'AD_VP')) THEN
 IF :NEW.salary  15000 THEN
 RAISE_APPLICATION_ERROR (-20202,'Este empregado não pode receber este
 valor');
 END IF;
 END IF;
 END imp_novos_emp;
 /

 Qual seria a melhor maneira para eu poder impedir que seja inserido um novo
 empregado que tenha o salario maior que o gerente.

 Eu teria que fazer uma consulta na coluna manager_id da tabela employees e
 verificar se o salario do empregado que eu estou add é maior que o do
 gerente?
 Outra duvida, posso colocar uma excessão para mostrar que o salario é
 invalido quando o salario do empregado que eu estou add é maior que o do
 gerente?

 [As partes desta mensagem que não continham texto foram removidas]

  




-- 
Att,


[As partes desta mensagem que não continham texto foram removidas]





--
Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--
Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » 
Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: 
http://www.oraclebr.com.br/  

 Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/

* Para sair deste grupo, envie um e-mail para:
oracle_br-unsubscr...@yahoogrupos.com.br

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html




Re: [oracle_br] Trigger utilizando exception

2012-09-18 Por tôpico Antony Ferreira
A select eu teria que fazer dentro do primeiro IF ou antes do IF, como
estou começando a pegar os esquemas do PLSQL agora, tem coisas que eu fico
na duvida um pouco.


Em 18 de setembro de 2012 17:52, Milton Bastos Henriquis Jr. 
miltonbas...@gmail.com escreveu:

 Boa tarde!

 Suas perguntas já estão todas respondidas por você mesmo... rs
 Está tudo correto o que vc falou.

 Faça um SELECT INTO para pegar o valor do salário do gerente
 do sujeito e armazenar numa variável.
 Depois compare o valor do salário do sujeito com a variável...
 Se for maior, vc dispara a exceção.




 2012/9/18 Antony Ferreira tonyferrei...@gmail.com

  **
 
 
  Boa tarde pessoal,
 
  Estou começando a estudar um pouco de PL/SQL e me surgiu umas duvidas.
  Tenho a seguinte trigger:
 
  CREATE OR REPLACE TRIGGER imp_novos_emp
  BEFORE INSERT OR UPDATE ON employees
  FOR EACH ROW
  BEGIN
  IF NOT (:NEW.job_id IN ('AD_PRES', 'AD_VP')) THEN
  IF :NEW.salary  15000 THEN
  RAISE_APPLICATION_ERROR (-20202,'Este empregado não pode receber este
  valor');
  END IF;
  END IF;
  END imp_novos_emp;
  /
 
  Qual seria a melhor maneira para eu poder impedir que seja inserido um
 novo
  empregado que tenha o salario maior que o gerente.
 
  Eu teria que fazer uma consulta na coluna manager_id da tabela employees
 e
  verificar se o salario do empregado que eu estou add é maior que o do
  gerente?
  Outra duvida, posso colocar uma excessão para mostrar que o salario é
  invalido quando o salario do empregado que eu estou add é maior que o do
  gerente?
 
  [As partes desta mensagem que não continham texto foram removidas]
 
 
 



 --
 Att,


 [As partes desta mensagem que não continham texto foram removidas]



 


 --
 Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de
 inteira responsabilidade de seus remetentes.
 Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/

 --
 Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package »
 Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO!
 VISITE: http://www.oraclebr.com.br/
 
 Links do Yahoo! Grupos





[As partes desta mensagem que não continham texto foram removidas]



Re: [oracle_br] Trigger utilizando exception

2012-09-18 Por tôpico Milton Bastos Henriquis Jr.
Bom, lógica de programação é algo muito simples!
Vc tem que saber o que exatamente vc quer que o teu código faça...

Vc criou ali um IF (não sei se foi vc que fez ou se vc copiou o código)
pra testar se o cara é presidente ou vp, pois se for, daí vc não
testa o salário do cara... então não faz sentido vc fazer o select FORA
do primeiro if, senão vc poderá estar executando um select a toa.
Então é melhor vc executar dentro do primeiro IF.




2012/9/18 Antony Ferreira tonyferrei...@gmail.com

 **


 A select eu teria que fazer dentro do primeiro IF ou antes do IF, como
 estou começando a pegar os esquemas do PLSQL agora, tem coisas que eu fico
 na duvida um pouco.

 Em 18 de setembro de 2012 17:52, Milton Bastos Henriquis Jr. 
 miltonbas...@gmail.com escreveu:


  Boa tarde!
 
  Suas perguntas já estão todas respondidas por você mesmo... rs
  Está tudo correto o que vc falou.
 
  Faça um SELECT INTO para pegar o valor do salário do gerente
  do sujeito e armazenar numa variável.
  Depois compare o valor do salário do sujeito com a variável...
  Se for maior, vc dispara a exceção.
 
 
 
 
  2012/9/18 Antony Ferreira tonyferrei...@gmail.com
 
   **

  
  
   Boa tarde pessoal,
  
   Estou começando a estudar um pouco de PL/SQL e me surgiu umas duvidas.
   Tenho a seguinte trigger:
  
   CREATE OR REPLACE TRIGGER imp_novos_emp
   BEFORE INSERT OR UPDATE ON employees
   FOR EACH ROW
   BEGIN
   IF NOT (:NEW.job_id IN ('AD_PRES', 'AD_VP')) THEN
   IF :NEW.salary  15000 THEN
   RAISE_APPLICATION_ERROR (-20202,'Este empregado não pode receber este
   valor');
   END IF;
   END IF;
   END imp_novos_emp;
   /
  
   Qual seria a melhor maneira para eu poder impedir que seja inserido um
  novo
   empregado que tenha o salario maior que o gerente.
  
   Eu teria que fazer uma consulta na coluna manager_id da tabela
 employees
  e
   verificar se o salario do empregado que eu estou add é maior que o do
   gerente?
   Outra duvida, posso colocar uma excessão para mostrar que o salario é
   invalido quando o salario do empregado que eu estou add é maior que o
 do
   gerente?
  
   [As partes desta mensagem que não continham texto foram removidas]
  
  
  
 
 
 
  --
  Att,

 
 
  [As partes desta mensagem que não continham texto foram removidas]
 
 
 
  

 
 
  --
  Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de
  inteira responsabilidade de seus remetentes.
  Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
 
  --
  Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package »
  Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO
 ESPAÇO!
  VISITE: http://www.oraclebr.com.br/
  --
  Links do Yahoo! Grupos

 
 
 

 [As partes desta mensagem que não continham texto foram removidas]

  




-- 
Att,


[As partes desta mensagem que não continham texto foram removidas]





--
Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--
Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » 
Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: 
http://www.oraclebr.com.br/  

 Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/

* Para sair deste grupo, envie um e-mail para:
oracle_br-unsubscr...@yahoogrupos.com.br

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html




Re: [oracle_br] Trigger utilizando exception

2012-09-18 Por tôpico Antony Ferreira
Blz, vou fazer as alterações e testar aqui pra ver como que vai funcionar.
Vlw mto obrigado pelas dicas.

Em 18 de setembro de 2012 18:07, Milton Bastos Henriquis Jr. 
miltonbas...@gmail.com escreveu:

 Bom, lógica de programação é algo muito simples!
 Vc tem que saber o que exatamente vc quer que o teu código faça...

 Vc criou ali um IF (não sei se foi vc que fez ou se vc copiou o código)
 pra testar se o cara é presidente ou vp, pois se for, daí vc não
 testa o salário do cara... então não faz sentido vc fazer o select FORA
 do primeiro if, senão vc poderá estar executando um select a toa.
 Então é melhor vc executar dentro do primeiro IF.




 2012/9/18 Antony Ferreira tonyferrei...@gmail.com

  **
 
 
  A select eu teria que fazer dentro do primeiro IF ou antes do IF, como
  estou começando a pegar os esquemas do PLSQL agora, tem coisas que eu
 fico
  na duvida um pouco.
 
  Em 18 de setembro de 2012 17:52, Milton Bastos Henriquis Jr. 
  miltonbas...@gmail.com escreveu:
 
 
   Boa tarde!
  
   Suas perguntas já estão todas respondidas por você mesmo... rs
   Está tudo correto o que vc falou.
  
   Faça um SELECT INTO para pegar o valor do salário do gerente
   do sujeito e armazenar numa variável.
   Depois compare o valor do salário do sujeito com a variável...
   Se for maior, vc dispara a exceção.
  
  
  
  
   2012/9/18 Antony Ferreira tonyferrei...@gmail.com
  
**
 
   
   
Boa tarde pessoal,
   
Estou começando a estudar um pouco de PL/SQL e me surgiu umas
 duvidas.
Tenho a seguinte trigger:
   
CREATE OR REPLACE TRIGGER imp_novos_emp
BEFORE INSERT OR UPDATE ON employees
FOR EACH ROW
BEGIN
IF NOT (:NEW.job_id IN ('AD_PRES', 'AD_VP')) THEN
IF :NEW.salary  15000 THEN
RAISE_APPLICATION_ERROR (-20202,'Este empregado não pode receber este
valor');
END IF;
END IF;
END imp_novos_emp;
/
   
Qual seria a melhor maneira para eu poder impedir que seja inserido
 um
   novo
empregado que tenha o salario maior que o gerente.
   
Eu teria que fazer uma consulta na coluna manager_id da tabela
  employees
   e
verificar se o salario do empregado que eu estou add é maior que o do
gerente?
Outra duvida, posso colocar uma excessão para mostrar que o salario é
invalido quando o salario do empregado que eu estou add é maior que o
  do
gerente?
   
[As partes desta mensagem que não continham texto foram removidas]
   
   
   
  
  
  
   --
   Att,
 
  
  
   [As partes desta mensagem que não continham texto foram removidas]
  
  
  
   
 
  
  
   --
   Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de
   inteira responsabilidade de seus remetentes.
   Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
  
   --
   Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package »
   Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO
  ESPAÇO!
   VISITE: http://www.oraclebr.com.br/
   --
   Links do Yahoo! Grupos
 
  
  
  
 
  [As partes desta mensagem que não continham texto foram removidas]
 
 
 



 --
 Att,


 [As partes desta mensagem que não continham texto foram removidas]



 


 --
 Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de
 inteira responsabilidade de seus remetentes.
 Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/

 --
 Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package »
 Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO!
 VISITE: http://www.oraclebr.com.br/
 
 Links do Yahoo! Grupos





[As partes desta mensagem que não continham texto foram removidas]



Re: [oracle_br] Trigger verificar update de única colunas

2012-08-31 Por tôpico JLSilva
Milton,
Acho que minha explicação não ficou muito clara, mesmo.
Na verdade, o que eu gostaria é o inverso: se estiver atualizando *somente* a 
coluna observação (as demais não foram modificadas), então não precisa disparar 
a trigger. Mas, se estiver atualizando qualquer outra coluna, aí sim tem que 
disparar a trigger.

On Aug 31, 2012, at 12:00 PM, Milton Bastos Henriquis Jr. 
miltonbas...@gmail.com wrote:

 Seria isso?
 
 CREATE TRIGGER Nome_da_sua_triggerAFTER (ou BEFORE) UPDATE OF campo_1,
 campo_2  ON nome_da_sua_tabela FOR EACH ROW BEGIN 
 
 
 
 
 
 
 
 
 2012/8/31 JLSilva jljlsi...@yahoo.com.br
 
 **
 
 
 Pessoal, bom dia.
 
 Oracle10gR2 10.2.0.5.0 Enterprise Edition em Linux RHEL 5.6.
 
 Gostaria de verificar se alguém conhece algum método para verificar em uma
 trigger se somente uma coluna está sendo modificada.
 Ou seja, a tabela tem N colunas. Atualmente, eu estou verificando todas as
 colunas para saber se alguma foi modificada.
 O problema é que se uma nova coluna for adicionada na tabela, a trigger
 precisará ser modificada para verificar essa coluna também.
 Somente 1 coluna pode ser modificada, que é uma coluna de observações.
 
 Obrigado.
 JLSilva.
 
 
 
 
 
 -- 
 Att,
 
 
 [As partes desta mensagem que não continham texto foram removidas]
 
 
 
 
 
 --
 Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira 
 responsabilidade de seus remetentes.
 Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
 --
 Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » 
 Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: 
 http://www.oraclebr.com.br/  
 
  Links do Yahoo! Grupos
 
 



Re: [oracle_br] Trigger verificar update de única colunas

2012-08-31 Por tôpico Milton Bastos Henriquis Jr.
Me perdoe JL, eu é que não li com a devida atenção!

Depois que li o e-mail do Chiappa, daí reli o seu e-mail e percebi que vc
queria o contrário! rs...

Eu realmente não saberia resolver o seu problema de forma completa!
Pois eu colocaria campo por campo lá na trigger... e a cada campo
adicionado eu
teria que modificar a trigger.

Portanto realmente não tenho a solução ideal pra vc!


2012/8/31 JLSilva jljlsi...@yahoo.com.br

 **


 Milton,
 Acho que minha explicação não ficou muito clara, mesmo.
 Na verdade, o que eu gostaria é o inverso: se estiver atualizando
 *somente* a coluna observação (as demais não foram modificadas), então não
 precisa disparar a trigger. Mas, se estiver atualizando qualquer outra
 coluna, aí sim tem que disparar a trigger.


 On Aug 31, 2012, at 12:00 PM, Milton Bastos Henriquis Jr. 
 miltonbas...@gmail.com wrote:

  Seria isso?
 
  CREATE TRIGGER Nome_da_sua_triggerAFTER (ou BEFORE) UPDATE OF campo_1,

  campo_2 ON nome_da_sua_tabela FOR EACH ROW BEGIN 
 
 
 
 
 
 
 
 
  2012/8/31 JLSilva jljlsi...@yahoo.com.br
 
  **

 
 
  Pessoal, bom dia.
 
  Oracle10gR2 10.2.0.5.0 Enterprise Edition em Linux RHEL 5.6.
 
  Gostaria de verificar se alguém conhece algum método para verificar em
 uma
  trigger se somente uma coluna está sendo modificada.
  Ou seja, a tabela tem N colunas. Atualmente, eu estou verificando todas
 as
  colunas para saber se alguma foi modificada.
  O problema é que se uma nova coluna for adicionada na tabela, a trigger
  precisará ser modificada para verificar essa coluna também.
  Somente 1 coluna pode ser modificada, que é uma coluna de observações.
 
  Obrigado.
  JLSilva.
 
 
 
 
 
  --
  Att,
 
 
  [As partes desta mensagem que não continham texto foram removidas]
 
 
 
  

 
  --
  Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de
 inteira responsabilidade de seus remetentes.
  Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
  --
  Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package »
 Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO!
 VISITE: http://www.oraclebr.com.br/
  -- Links do
 Yahoo! Grupos
 
 

  




-- 
Att,


[As partes desta mensagem que não continham texto foram removidas]





--
Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--
Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » 
Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: 
http://www.oraclebr.com.br/  

 Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/

* Para sair deste grupo, envie um e-mail para:
oracle_br-unsubscr...@yahoogrupos.com.br

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html




Re: [oracle_br] Trigger verificar update de única colunas

2012-08-31 Por tôpico JLSilva
Poizé, Milton, acredito que a solução ideal seja essa mesma: testar cada coluna 
e ajustar a trigger sempre que adicionar uma coluna nova.
Enviei para o grupo para verificar se alguém conheceria alguma funcionalidade 
de se escrever isso de forma diferente, que fosse mais automática.
Obrigado.
JLSilva

On Aug 31, 2012, at 3:49 PM, Milton Bastos Henriquis Jr. 
miltonbas...@gmail.com wrote:

 Me perdoe JL, eu é que não li com a devida atenção!
 
 Depois que li o e-mail do Chiappa, daí reli o seu e-mail e percebi que vc
 queria o contrário! rs...
 
 Eu realmente não saberia resolver o seu problema de forma completa!
 Pois eu colocaria campo por campo lá na trigger... e a cada campo
 adicionado eu
 teria que modificar a trigger.
 
 Portanto realmente não tenho a solução ideal pra vc!
 
 
 2012/8/31 JLSilva jljlsi...@yahoo.com.br
 
 **
 
 
 Milton,
 Acho que minha explicação não ficou muito clara, mesmo.
 Na verdade, o que eu gostaria é o inverso: se estiver atualizando
 *somente* a coluna observação (as demais não foram modificadas), então não
 precisa disparar a trigger. Mas, se estiver atualizando qualquer outra
 coluna, aí sim tem que disparar a trigger.
 
 
 On Aug 31, 2012, at 12:00 PM, Milton Bastos Henriquis Jr. 
 miltonbas...@gmail.com wrote:
 
 Seria isso?
 
 CREATE TRIGGER Nome_da_sua_triggerAFTER (ou BEFORE) UPDATE OF campo_1,
 
 campo_2 ON nome_da_sua_tabela FOR EACH ROW BEGIN 
 
 
 
 
 
 
 
 
 2012/8/31 JLSilva jljlsi...@yahoo.com.br
 
 **
 
 
 
 Pessoal, bom dia.
 
 Oracle10gR2 10.2.0.5.0 Enterprise Edition em Linux RHEL 5.6.
 
 Gostaria de verificar se alguém conhece algum método para verificar em
 uma
 trigger se somente uma coluna está sendo modificada.
 Ou seja, a tabela tem N colunas. Atualmente, eu estou verificando todas
 as
 colunas para saber se alguma foi modificada.
 O problema é que se uma nova coluna for adicionada na tabela, a trigger
 precisará ser modificada para verificar essa coluna também.
 Somente 1 coluna pode ser modificada, que é uma coluna de observações.
 
 Obrigado.
 JLSilva.
 
 
 
 
 
 --
 Att,
 
 
 [As partes desta mensagem que não continham texto foram removidas]
 
 
 
 
 
 
 --
 Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de
 inteira responsabilidade de seus remetentes.
 Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
 --
 Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package »
 Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO!
 VISITE: http://www.oraclebr.com.br/
 -- Links do
 Yahoo! Grupos
 
 
 
 
 
 
 
 
 -- 
 Att,
 
 
 [As partes desta mensagem que não continham texto foram removidas]
 
 
 
 
 
 --
 Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira 
 responsabilidade de seus remetentes.
 Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
 --
 Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » 
 Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: 
 http://www.oraclebr.com.br/  
 
  Links do Yahoo! Grupos
 
 



RE: [oracle_br] Trigger verificar update de única colunas

2012-08-31 Por tôpico Schiavini
Aí fica simples, basta testar se a observação não foi alterada.
Se não tiver sido, alguma outra coluna foi. 
E podem se acrescidas colunas a vontade na tabela a posteriori.
 
create trigger trigger before  update on tabela for each row
begin
if :new.observacao = :old.observacao
then
raise …
end if;
end;
 
 
CREATE TRIGGER Nome_da_sua_triggerAFTER (ou BEFORE) UPDATEON
nome_da_sua_tabela FOR EACH ROW
BEGIN


 
From: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] On
Behalf Of JLSilva
Sent: Friday, August 31, 2012 3:42 PM
To: oracle_br@yahoogrupos.com.br
Subject: Re: [oracle_br] Trigger verificar update de única colunas
 
  
Milton,
Acho que minha explicação não ficou muito clara, mesmo.
Na verdade, o que eu gostaria é o inverso: se estiver atualizando *somente*
a coluna observação (as demais não foram modificadas), então não precisa
disparar a trigger. Mas, se estiver atualizando qualquer outra coluna, aí
sim tem que disparar a trigger.

On Aug 31, 2012, at 12:00 PM, Milton Bastos Henriquis Jr.
miltonbas...@gmail.com mailto:miltonbastos%40gmail.com  wrote:

 Seria isso?
 
 CREATE TRIGGER Nome_da_sua_triggerAFTER (ou BEFORE) UPDATE OF campo_1,
 campo_2 ON nome_da_sua_tabela FOR EACH ROW BEGIN 
 
 
 
 
 
 
 
 
 2012/8/31 JLSilva jljlsi...@yahoo.com.br
mailto:jljlsilva%40yahoo.com.br 
 
 **
 
 
 Pessoal, bom dia.
 
 Oracle10gR2 10.2.0.5.0 Enterprise Edition em Linux RHEL 5.6.
 
 Gostaria de verificar se alguém conhece algum método para verificar em
uma
 trigger se somente uma coluna está sendo modificada.
 Ou seja, a tabela tem N colunas. Atualmente, eu estou verificando todas
as
 colunas para saber se alguma foi modificada.
 O problema é que se uma nova coluna for adicionada na tabela, a trigger
 precisará ser modificada para verificar essa coluna também.
 Somente 1 coluna pode ser modificada, que é uma coluna de observações.
 
 Obrigado.
 JLSilva.
 
 
 
 
 
 -- 
 Att,
 
 
 [As partes desta mensagem que não continham texto foram removidas]
 
 
 
 
 
 --
 Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de
inteira responsabilidade de seus remetentes.
 Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
 --
 Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package »
Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO!
VISITE: http://www.oraclebr.com.br/ 
 -- Links do Yahoo!
Grupos
 
 



[As partes desta mensagem que não continham texto foram removidas]



Re: [oracle_br] Trigger verificar update de única colunas

2012-08-31 Por tôpico JLSilva
Olá, JLChiappa.

O banco é um Oracle10gR2 10.2.0.5.0 Enterprise Edition.

Ótima explicação sobre a funcionalidade de permissão por coluna.
Realmente, algo que dificilmente nos lembramos que existe e acabamos por não 
usar. (e eventualmente fazemos algo *Asnino*, mesmo)

Mas, novamente (como eu disse para o Milton), acredito que por eu ter dado 
poucos detalhes sobre a situação, esta não é a solução para o caso aqui.
Existe uma lógica para permitir ou não um update nas demais colunas. Inclusive, 
com queries em tabelas relacionadas, flags, datas etc. etc.
É algo relativamente complexo, que diz respeito às regras do negócio da 
empresa. Daí a necessidade de se escrever uma trigger.

Obrigado.
JoseLino Silva.

On Aug 31, 2012, at 12:59 PM, J. Laurindo Chiappa jlchia...@yahoo.com.br 
wrote:

  Boa tarde, xará JL (sou JL também, de José Laurindo)...
 Antes de responder um comentário : a não ser que a sua versão de banco seja 
 velhíssima e/ou limitada e não tenha o recurso, OU que haja alguma regra de 
 negócio que impeça, (vc não confirma nem nega isso) imho é ** Asnino **, 
 ignorância da grossa, tudo de Ruim mesmo se usar trigger (E portanto sofrer 
 com performance, sofrer com as atualizações de código como vc mesmo disse, 
 sofrer com os efeitos colaterais do trigger, etc) para simular algo que JÁ 
 EXISTE dar privilégio de colunas  : isso já existe há Muuuiiito tempo - 
 não lembro se isso veio no 9i ou no 10g, mas o ponto é que já existe, veja o 
 exemplo abaixo no final do e-mail num 10gR2 EE
 
 Caso Realmente por qquer motivo sério e intransponível vc não possa usar o 
 recurso, aí a resposta é : afaik não, não há num trigger PL/SQL como saber se 
 apenas uma dada coluna foi updateada, ou de se obter a lista de colunas 
 updateadas, nem nada do tipo, é mesmo fazer o que vc já deve estar fazendo, 
 imagino, que é :
 
  IFupdating('C1') 
 or updating('C2')
 or updating('C3')
 ...
  THEN
 raise_application_error(-codigodoerro, 'Só pode updatear coluna OBS!!');
   END IF;
 ...
 
 = O que vc Pode fazer é Automatizar a alteração do código da trigger quando 
 alguém fazer ALTER TABLE xxx ADD COLUMN ; uma opção pra isso (se possível no 
 seu caso) é vc Remover o direito de ALTER TABLE da pessoa, escrever uma 
 Procedure que faz a alteração E já altera o trigger , e dar pra pessoa apenas 
 o direito de Executar a procedure. Outra opção pode ser vc CAPTURAR os 
 comandos de DDL com trigger de DDL, e se o texto do comando é ALTER TABLE nnn 
 ADD COLUMN aí a trigger de DDL dispara um job que altera a trigger , coisa 
 assim...
 
 = Mas toda essa resposta está girando em cima de quebra-galhos e POGs, o 
 Correto e Profissional é usar o recurso do database nativo ... Segue o 
 exemplo :
 
 SYSTEM@O10GR2::SQLcreate table TAB_ALTER_OBS (c1 number, c2 varchar2(40), 
 obs varchar2(2000));
 
 Tabela criada.
 
 = priv de select, normal ...
 
 SYSTEM@O10GR2::SQLgrant select on TAB_ALTER_OBS to scott;
 
 Concess?o bem-sucedida.
 
 = o pulo do gato, priv apenas na Coluna ...
 
 SYSTEM@O10GR2::SQLgrant update (OBS) on TAB_ALTER_OBS to scott;
 
 Concess?o bem-sucedida.
 
 = uma massinha de dados :
 
 SYSTEM@O10GR2::SQLinsert into TAB_ALTER_OBS (c1,c2) values(1, 'Linha 1');
 
 1 linha criada.
 
 SYSTEM@O10GR2::SQLinsert into TAB_ALTER_OBS (c1,c2) values(2, 'Linha 2');
 
 1 linha criada.
 
 SYSTEM@O10GR2::SQLcommit;
 
 Commit concluido.
 
 SYSTEM@O10GR2::SQLgrant create synonym to scott;
 
 Concess?o bem-sucedida.
 
 SYSTEM@O10GR2::SQLconn scott/tiger
 Conectado.
 
 SCOTT@O10GR2::SQLcreate synonym TAB_ALTER_OBS for SYSTEM.TAB_ALTER_OBS;
 
 Sinonimo criado.
 
 = o SELECT vai ok ...
 
 SCOTT@O10GR2::SQLselect * from TAB_ALTER_OBS;
 
C1 C2
 -- 
 OBS
 --
 --
 --
 --
 --
 ---
 1 Linha 1
 
 
 2 Linha 2
 
 
 
 = UPDATE só na coluna permitida, OK...
 
 SCOTT@O10GR2::SQLupdate TAB_ALTER_OBS set OBS='Li a linha 1' where c1=1;
 
 1 linha atualizada.
 
 SCOTT@O10GR2::SQLcommit;
 
 Commit concluido.
 
 = UPDATE numa coluna 

Re: [oracle_br] Trigger verificar update de única colunas

2012-08-31 Por tôpico JLSilva
Etore,
Essa foi uma ótima solução! Simples e eficaz!
Existe uma ótima lógica: se foi recebido um update, logo algo foi alterado.
Apesar de que não obrigatoriamente, pois poderia ter alterado para o mesmo 
valor..
Mas, não teria sentido alterar algo para o mesmo valor.
E se foi alterado para o mesmo valor, seria algo desnecessário.

Vou validar com a equipe se isso pode ser implementado.
Não sei se a aplicação faz algo desse tipo (atualizar a coluna para o mesmo 
valor).

Digo isto porque já vi aplicações que, devido à linguagem de programação 
utilizada, framework etc., o update sempre é feito sobre todas as colunas da 
tabela, mesmo para aquelas que não foram modificadas.

On Aug 31, 2012, at 5:21 PM, Schiavini et...@schiavini.inf.br wrote:

 Aí fica simples, basta testar se a observação não foi alterada.
 Se não tiver sido, alguma outra coluna foi. 
 E podem se acrescidas colunas a vontade na tabela a posteriori.
 
 create trigger trigger before  update on tabela for each row
 begin
 if :new.observacao = :old.observacao
 then
 raise …
 end if;
 end;
 
 
 CREATE TRIGGER Nome_da_sua_triggerAFTER (ou BEFORE) UPDATEON
 nome_da_sua_tabela FOR EACH ROW
 BEGIN
 
 
 
 From: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] On
 Behalf Of JLSilva
 Sent: Friday, August 31, 2012 3:42 PM
 To: oracle_br@yahoogrupos.com.br
 Subject: Re: [oracle_br] Trigger verificar update de única colunas
 
 
 Milton,
 Acho que minha explicação não ficou muito clara, mesmo.
 Na verdade, o que eu gostaria é o inverso: se estiver atualizando *somente*
 a coluna observação (as demais não foram modificadas), então não precisa
 disparar a trigger. Mas, se estiver atualizando qualquer outra coluna, aí
 sim tem que disparar a trigger.
 
 On Aug 31, 2012, at 12:00 PM, Milton Bastos Henriquis Jr.
 miltonbas...@gmail.com mailto:miltonbastos%40gmail.com  wrote:
 
 Seria isso?
 
 CREATE TRIGGER Nome_da_sua_triggerAFTER (ou BEFORE) UPDATE OF campo_1,
 campo_2 ON nome_da_sua_tabela FOR EACH ROW BEGIN 
 
 
 
 
 
 
 
 
 2012/8/31 JLSilva jljlsi...@yahoo.com.br
 mailto:jljlsilva%40yahoo.com.br 
 
 **
 
 
 Pessoal, bom dia.
 
 Oracle10gR2 10.2.0.5.0 Enterprise Edition em Linux RHEL 5.6.
 
 Gostaria de verificar se alguém conhece algum método para verificar em
 uma
 trigger se somente uma coluna está sendo modificada.
 Ou seja, a tabela tem N colunas. Atualmente, eu estou verificando todas
 as
 colunas para saber se alguma foi modificada.
 O problema é que se uma nova coluna for adicionada na tabela, a trigger
 precisará ser modificada para verificar essa coluna também.
 Somente 1 coluna pode ser modificada, que é uma coluna de observações.
 
 Obrigado.
 JLSilva.
 
 
 
 
 
 -- 
 Att,
 
 
 [As partes desta mensagem que não continham texto foram removidas]
 
 
 
 
 
 --
 Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de
 inteira responsabilidade de seus remetentes.
 Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
 --
 Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package »
 Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO!
 VISITE: http://www.oraclebr.com.br/ 
 -- Links do Yahoo!
 Grupos
 
 
 
 
 
 [As partes desta mensagem que não continham texto foram removidas]
 
 
 
 
 
 --
 Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira 
 responsabilidade de seus remetentes.
 Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
 --
 Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » 
 Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: 
 http://www.oraclebr.com.br/  
 
  Links do Yahoo! Grupos
 
 





--
Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--
Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » 
Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: 
http://www.oraclebr.com.br

Re: [oracle_br] Trigger para registrar tentativa de login

2011-11-29 Por tôpico JLSilva
Capin, obrigado pela resposta, mas a ideia é outra.

Imagine que:
1. um usuário tente conectar muitas vezes com senha incorreta: quero registrar 
isto (osuser, username, máquina etc.).
2. um usuário inexistente tenta conectar no banco: quero registrar isto 
(osuser, username - mesmo sendo inexistente, máquina etc.).

A trigger desse link nào serve para o meu objetivo.

Para entender melhor: preciso fazer algo semelhante à auditoria do enterprise 
edition (audit session whenever not successful), mas no Oracle Standard Edition.

Valeu.

On Nov 29, 2011, at 14:20 , Fernando Franquini 'capin' wrote:

 Aqui tem um exemplo de alterar sessao com a trigger de logon.
 
 http://franquini.wordpress.com/2011/07/19/trigger-de-logon/
 
 Somente modificar para anteder a sua necessidade.
 
 Att,
 capin
 
 2011/11/29 JLSilva jljlsi...@yahoo.com.br
 
 Pessoal, alguém teria uma trigger que consiga registrar o nome do usuário
 quando ocorre falha no login?
 As funções ora_login_user e sys_context('USERENV','SESSION_USER') não
 registram nenhum valor quando ocorre erro de login (trigger AFTER
 SERVERERROR ON DATABASE).
 Consegui registrar todas as demais informações (osuser, machine,
 ipaddress), exceto o nome do usuário.
 Obrigado.
 
 Oracle11gR2 11.2.0.2.0 Standard Edition.
 
 
 
 
 --
 Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de
 inteira responsabilidade de seus remetentes.
 Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
 
 --
 Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package »
 Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO!
 VISITE: http://www.oraclebr.com.br/
 
 Links do Yahoo! Grupos
 
 
 
 
 
 -- 
 Fernando Franquini - Capin
 Bacharel em Ciencias da Computacao - UFSC
 Analista de Sistemas e de Banco de Dados / DBA
 Contatos: fernando.franqu...@gmail.com / 48.9902.4047
 Florianópolis - SC - Brasil
 http://franquini.wordpress.com/
 http://franquini.wordpress.com/
 http://br.linkedin.com/in/capin
 
 
 [As partes desta mensagem que não continham texto foram removidas]
 
 
 
 
 
 --
 Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira 
 responsabilidade de seus remetentes.
 Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
 --
 Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » 
 Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: 
 http://www.oraclebr.com.br/  
 
  Links do Yahoo! Grupos
 
 



Re: [oracle_br] Trigger para registrar tentativa de login

2011-11-29 Por tôpico Marcos de Moura Gonçalves
Boa tarde JLSilva,

Experimenta SYS_CONTEXT ('USERENV', 'CURRENT_USER').

[]s

Marcos

Em 29 de novembro de 2011 13:47, JLSilva jljlsi...@yahoo.com.br escreveu:

 **


 Pessoal, alguém teria uma trigger que consiga registrar o nome do usuário
 quando ocorre falha no login?
 As funções ora_login_user e sys_context('USERENV','SESSION_USER') não
 registram nenhum valor quando ocorre erro de login (trigger AFTER
 SERVERERROR ON DATABASE).
 Consegui registrar todas as demais informações (osuser, machine,
 ipaddress), exceto o nome do usuário.
 Obrigado.

 Oracle11gR2 11.2.0.2.0 Standard Edition.
 



[As partes desta mensagem que não continham texto foram removidas]





--
Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--
Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » 
Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: 
http://www.oraclebr.com.br/  

 Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/

* Para sair deste grupo, envie um e-mail para:
oracle_br-unsubscr...@yahoogrupos.com.br

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html




Re: [oracle_br] Trigger para registrar tentativa de login

2011-11-29 Por tôpico Marcos de Moura Gonçalves
Engraçado cara, eu fiz exatamente isso e trouxe o usuário da conexão...
Talvez seja porquê a minha trigger está no usuário SYS. Experimenta criá-la
para o usuário SYS.

Em 29 de novembro de 2011 15:40, JLSilva jljlsi...@yahoo.com.br escreveu:

 **


 Marcos, é por aí, mas o sys_context('USERENV','CURRENT_USER') retornou o
 usuário proprietário da trigger.
 Precisaria de uma função que retornasse o usuário informado no login.
 Valeu!


 On Nov 29, 2011, at 15:33 , Marcos de Moura Gonçalves wrote:

  Boa tarde JLSilva,
 
  Experimenta SYS_CONTEXT ('USERENV', 'CURRENT_USER').
 
  []s
 
  Marcos
 
  Em 29 de novembro de 2011 13:47, JLSilva jljlsi...@yahoo.com.br
 escreveu:
 
  **

 
 
  Pessoal, alguém teria uma trigger que consiga registrar o nome do
 usuário
  quando ocorre falha no login?
  As funções ora_login_user e sys_context('USERENV','SESSION_USER') não
  registram nenhum valor quando ocorre erro de login (trigger AFTER
  SERVERERROR ON DATABASE).
  Consegui registrar todas as demais informações (osuser, machine,
  ipaddress), exceto o nome do usuário.
  Obrigado.
 
  Oracle11gR2 11.2.0.2.0 Standard Edition.
 
 
 
 
  [As partes desta mensagem que não continham texto foram removidas]
 
 
 
  
 
  --
  Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de
 inteira responsabilidade de seus remetentes.
  Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
  --
  Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package »
 Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO!
 VISITE: http://www.oraclebr.com.br/
  -- Links do
 Yahoo! Grupos
 
 

  



[As partes desta mensagem que não continham texto foram removidas]





--
Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--
Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » 
Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: 
http://www.oraclebr.com.br/  

 Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/

* Para sair deste grupo, envie um e-mail para:
oracle_br-unsubscr...@yahoogrupos.com.br

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html




Re: [oracle_br] Trigger para registrar tentativa de login

2011-11-29 Por tôpico JLSilva
Ah, entendi.
Você deve estar fazendo uma trigger de login, comum.
Veja meu processo e veja se é isto que você está fazendo:

connect / as sysdba

drop table log_falha_logon_tt purge;
create table log_falha_logon_tt as
select
 --ORA_LOGIN_USER   SESSION_USER,
 sys_context('USERENV','CURRENT_USER')SESSION_USER,
 --sys_context('USERENV','SESSION_USER')SESSION_USER,
 --sys_context('USERENV','SESSION_USERID')  SESSION_USERID,
 sys_context('USERENV','AUTHENTICATION_TYPE') AUTHENTICATION_TYPE,
 ORA_DATABASE_NAMEDATABASE_NAME,
 ORA_INSTANCE_NUM INSTANCE_NUM,
 ORA_SERVER_ERROR(1)  SERVER_ERROR,
 sysdate  HORA_OCORR,
 sys_context('USERENV','IP_ADDRESS')  IP_ADDRESS,
 sys_context('USERENV','HOST')HOST,
 sys_context('USERENV','TERMINAL')TERMINAL,
 sys_context('USERENV','OS_USER') OS_USER,
 sys_context('USERENV','NETWORK_PROTOCOL')NETWORK_PROTOCOL
from dual
where 1=2;

create or replace trigger tr_falha_logon_tt
AFTER SERVERERROR ON DATABASE
declare
BEGIN
IF IS_SERVERERROR(1017) THEN
 insert into log_falha_logon_tt
 (
   SESSION_USER,
   AUTHENTICATION_TYPE,
   DATABASE_NAME,
   INSTANCE_NUM,
   SERVER_ERROR,
   HORA_OCORR,
   IP_ADDRESS,
   HOST,
   TERMINAL,
   OS_USER,
   NETWORK_PROTOCOL
 )
 values
 (
   --ORA_LOGIN_USER,
   sys_context('USERENV','CURRENT_USER'),
   --sys_context('USERENV','SESSION_USER'),
   --sys_context('USERENV','SESSION_USERID'),
   sys_context('USERENV','AUTHENTICATION_TYPE'),
   ORA_DATABASE_NAME,
   ORA_INSTANCE_NUM,
   ORA_SERVER_ERROR(1),
   sysdate,
   sys_context('USERENV','IP_ADDRESS'),
   sys_context('USERENV','HOST'),
   sys_context('USERENV','TERMINAL'),
   sys_context('USERENV','OS_USER'),
   sys_context('USERENV','NETWORK_PROTOCOL')
 );
END IF;
END;
/

connect abc123/abc123
connect / as sysdba

set linesize 999 pagesize 1000
column SESSION_USER format a15
column SESSION_USERID format a15
column AUTHENTICATION_TYPE format a15
column DATABASE_NAME format a15
column INSTANCE_NUM format 999
column SERVER_ERROR format 99
column IP_ADDRESS format a15
column HOST format a35
column TERMINAL format a15
column OS_USER format a15
column NETWORK_PROTOCOL format a15
select * from log_falha_logon_tt order by hora_ocorr;


On Nov 29, 2011, at 15:43 , Marcos de Moura Gonçalves wrote:

 Engraçado cara, eu fiz exatamente isso e trouxe o usuário da conexão...
 Talvez seja porquê a minha trigger está no usuário SYS. Experimenta criá-la
 para o usuário SYS.
 
 Em 29 de novembro de 2011 15:40, JLSilva jljlsi...@yahoo.com.br escreveu:
 
 **
 
 
 Marcos, é por aí, mas o sys_context('USERENV','CURRENT_USER') retornou o
 usuário proprietário da trigger.
 Precisaria de uma função que retornasse o usuário informado no login.
 Valeu!
 
 
 On Nov 29, 2011, at 15:33 , Marcos de Moura Gonçalves wrote:
 
 Boa tarde JLSilva,
 
 Experimenta SYS_CONTEXT ('USERENV', 'CURRENT_USER').
 
 []s
 
 Marcos
 
 Em 29 de novembro de 2011 13:47, JLSilva jljlsi...@yahoo.com.br
 escreveu:
 
 **
 
 
 
 Pessoal, alguém teria uma trigger que consiga registrar o nome do
 usuário
 quando ocorre falha no login?
 As funções ora_login_user e sys_context('USERENV','SESSION_USER') não
 registram nenhum valor quando ocorre erro de login (trigger AFTER
 SERVERERROR ON DATABASE).
 Consegui registrar todas as demais informações (osuser, machine,
 ipaddress), exceto o nome do usuário.
 Obrigado.
 
 Oracle11gR2 11.2.0.2.0 Standard Edition.
 
 
 
 
 [As partes desta mensagem que não continham texto foram removidas]
 
 
 
 
 
 --
 Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de
 inteira responsabilidade de seus remetentes.
 Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
 --
 Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package »
 Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO!
 VISITE: http://www.oraclebr.com.br/
 -- Links do
 Yahoo! Grupos
 
 
 
 
 
 
 
 [As partes desta mensagem que não continham texto foram removidas]
 
 
 
 
 
 --
 Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira 
 responsabilidade de seus remetentes.
 Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
 --
 Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » 
 Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: 
 

Re: [oracle_br] Trigger para registrar tentativa de login

2011-11-29 Por tôpico Marcos de Moura Gonçalves
Cara, a minha trigger é muito parecida com a sua, o mesmo conceito. Fiz
essa trigger a um tempo já, e lembro que li alguma coisa sobre a diferença
entre essa trigger estar ou não no usuário SYS. O motivo, honestamente, não
lembro, mas lembro que minha tabela de log ficava dentro do meu schema, mas
a trigger eu criei dentro do schema sys. Experimenta dropar a sua trigger e
recompilá-la, igualzinha, apenas especificando:
create or replace trigger SYS.tr_falha_logon_tt

Em 29 de novembro de 2011 15:49, JLSilva jljlsi...@yahoo.com.br escreveu:

 **


 Ah, entendi.
 Você deve estar fazendo uma trigger de login, comum.
 Veja meu processo e veja se é isto que você está fazendo:

 connect / as sysdba

 drop table log_falha_logon_tt purge;
 create table log_falha_logon_tt as
 select
 --ORA_LOGIN_USER SESSION_USER,
 sys_context('USERENV','CURRENT_USER') SESSION_USER,
 --sys_context('USERENV','SESSION_USER') SESSION_USER,
 --sys_context('USERENV','SESSION_USERID') SESSION_USERID,
 sys_context('USERENV','AUTHENTICATION_TYPE') AUTHENTICATION_TYPE,
 ORA_DATABASE_NAME DATABASE_NAME,
 ORA_INSTANCE_NUM INSTANCE_NUM,
 ORA_SERVER_ERROR(1) SERVER_ERROR,
 sysdate HORA_OCORR,
 sys_context('USERENV','IP_ADDRESS') IP_ADDRESS,
 sys_context('USERENV','HOST') HOST,
 sys_context('USERENV','TERMINAL') TERMINAL,
 sys_context('USERENV','OS_USER') OS_USER,
 sys_context('USERENV','NETWORK_PROTOCOL') NETWORK_PROTOCOL
 from dual
 where 1=2;

 create or replace trigger tr_falha_logon_tt
 AFTER SERVERERROR ON DATABASE
 declare
 BEGIN
 IF IS_SERVERERROR(1017) THEN
 insert into log_falha_logon_tt
 (
 SESSION_USER,
 AUTHENTICATION_TYPE,
 DATABASE_NAME,
 INSTANCE_NUM,
 SERVER_ERROR,
 HORA_OCORR,
 IP_ADDRESS,
 HOST,
 TERMINAL,
 OS_USER,
 NETWORK_PROTOCOL
 )
 values
 (
 --ORA_LOGIN_USER,
 sys_context('USERENV','CURRENT_USER'),
 --sys_context('USERENV','SESSION_USER'),
 --sys_context('USERENV','SESSION_USERID'),
 sys_context('USERENV','AUTHENTICATION_TYPE'),
 ORA_DATABASE_NAME,
 ORA_INSTANCE_NUM,
 ORA_SERVER_ERROR(1),
 sysdate,
 sys_context('USERENV','IP_ADDRESS'),
 sys_context('USERENV','HOST'),
 sys_context('USERENV','TERMINAL'),
 sys_context('USERENV','OS_USER'),
 sys_context('USERENV','NETWORK_PROTOCOL')
 );
 END IF;
 END;
 /

 connect abc123/abc123
 connect / as sysdba

 set linesize 999 pagesize 1000
 column SESSION_USER format a15
 column SESSION_USERID format a15
 column AUTHENTICATION_TYPE format a15
 column DATABASE_NAME format a15
 column INSTANCE_NUM format 999
 column SERVER_ERROR format 99
 column IP_ADDRESS format a15
 column HOST format a35
 column TERMINAL format a15
 column OS_USER format a15
 column NETWORK_PROTOCOL format a15
 select * from log_falha_logon_tt order by hora_ocorr;


 On Nov 29, 2011, at 15:43 , Marcos de Moura Gonçalves wrote:

  Engraçado cara, eu fiz exatamente isso e trouxe o usuário da conexão...
  Talvez seja porquê a minha trigger está no usuário SYS. Experimenta
 criá-la
  para o usuário SYS.
 
  Em 29 de novembro de 2011 15:40, JLSilva jljlsi...@yahoo.com.br
 escreveu:
 
  **

 
 
  Marcos, é por aí, mas o sys_context('USERENV','CURRENT_USER') retornou o
  usuário proprietário da trigger.
  Precisaria de uma função que retornasse o usuário informado no login.
  Valeu!
 
 
  On Nov 29, 2011, at 15:33 , Marcos de Moura Gonçalves wrote:
 
  Boa tarde JLSilva,
 
  Experimenta SYS_CONTEXT ('USERENV', 'CURRENT_USER').
 
  []s
 
  Marcos
 
  Em 29 de novembro de 2011 13:47, JLSilva jljlsi...@yahoo.com.br
  escreveu:
 
  **
 
 
 
  Pessoal, alguém teria uma trigger que consiga registrar o nome do
  usuário
  quando ocorre falha no login?
  As funções ora_login_user e sys_context('USERENV','SESSION_USER') não
  registram nenhum valor quando ocorre erro de login (trigger AFTER
  SERVERERROR ON DATABASE).
  Consegui registrar todas as demais informações (osuser, machine,
  ipaddress), exceto o nome do usuário.
  Obrigado.
 
  Oracle11gR2 11.2.0.2.0 Standard Edition.
 
 
 
 
  [As partes desta mensagem que não continham texto foram removidas]
 
 
 
  
 
  --
  Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de
  inteira responsabilidade de seus remetentes.
  Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
  --
  Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package »
  Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO
 ESPAÇO!
  VISITE: http://www.oraclebr.com.br/
  -- Links do
  Yahoo! Grupos
 
 
 
 
 
 
 
  [As partes desta mensagem que não continham texto foram removidas]
 
 
 
  
 
  --
  Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de
 inteira responsabilidade de seus remetentes.
  Acesse: 

Re: [oracle_br] Trigger para registrar tentativa de login

2011-11-29 Por tôpico JLSilva
Olha, não entendo qual seria a diferença. A trigger e a tabela já está no 
schema SYS.
De qualquer forma, executei este procedimento, mas o resultado foi exatamente o 
mesmo, ou seja, o CURRENT_USER retorna o SYS e o SESSION_USER retorna nulo, 
independente de existir ou não no banco o usuário informado no login.

Se tiver mais alguma dica, agradeço!

connect / as sysdba

create user jlsilva identified by jlsilva quota unlimited on users;
grant create session, create table to jlsilva;

drop table jlsilva.log_falha_logon_tt purge;
create table jlsilva.log_falha_logon_tt as
select
  --ORA_LOGIN_USER   SESSION_USER,
  sys_context('USERENV','CURRENT_USER')SESSION_USER,
  --sys_context('USERENV','SESSION_USER')SESSION_USER,
  --sys_context('USERENV','SESSION_USERID')  SESSION_USERID,
  sys_context('USERENV','AUTHENTICATION_TYPE') AUTHENTICATION_TYPE,
  ORA_DATABASE_NAMEDATABASE_NAME,
  ORA_INSTANCE_NUM INSTANCE_NUM,
  ORA_SERVER_ERROR(1)  SERVER_ERROR,
  sysdate  HORA_OCORR,
  sys_context('USERENV','IP_ADDRESS')  IP_ADDRESS,
  sys_context('USERENV','HOST')HOST,
  sys_context('USERENV','TERMINAL')TERMINAL,
  sys_context('USERENV','OS_USER') OS_USER,
  sys_context('USERENV','NETWORK_PROTOCOL')NETWORK_PROTOCOL
from dual
where 1=2;

create or replace trigger sys.tr_falha_logon_tt
AFTER SERVERERROR ON DATABASE
declare
BEGIN
IF IS_SERVERERROR(1017) THEN
  insert into jlsilva.log_falha_logon_tt
  (
SESSION_USER,
AUTHENTICATION_TYPE,
DATABASE_NAME,
INSTANCE_NUM,
SERVER_ERROR,
HORA_OCORR,
IP_ADDRESS,
HOST,
TERMINAL,
OS_USER,
NETWORK_PROTOCOL
  )
  values
  (
--ORA_LOGIN_USER,
sys_context('USERENV','CURRENT_USER'),
--sys_context('USERENV','SESSION_USER'),
--sys_context('USERENV','SESSION_USERID'),
sys_context('USERENV','AUTHENTICATION_TYPE'),
ORA_DATABASE_NAME,
ORA_INSTANCE_NUM,
ORA_SERVER_ERROR(1),
sysdate,
sys_context('USERENV','IP_ADDRESS'),
sys_context('USERENV','HOST'),
sys_context('USERENV','TERMINAL'),
sys_context('USERENV','OS_USER'),
sys_context('USERENV','NETWORK_PROTOCOL')
  );
END IF;
END;
/

connect abc123/abc123
connect / as sysdba

set linesize 999 pagesize 1000
column SESSION_USERformat a15
column SESSION_USERID  format a15
column AUTHENTICATION_TYPE format a15
column DATABASE_NAME   format a15
column INSTANCE_NUMformat 999
column SERVER_ERRORformat 99
column IP_ADDRESS  format a15
column HOSTformat a35
column TERMINALformat a15
column OS_USER format a15
column NETWORK_PROTOCOLformat a15
select * from jlsilva.log_falha_logon_tt order by hora_ocorr;

On Nov 29, 2011, at 15:55 , Marcos de Moura Gonçalves wrote:

 Cara, a minha trigger é muito parecida com a sua, o mesmo conceito. Fiz
 essa trigger a um tempo já, e lembro que li alguma coisa sobre a diferença
 entre essa trigger estar ou não no usuário SYS. O motivo, honestamente, não
 lembro, mas lembro que minha tabela de log ficava dentro do meu schema, mas
 a trigger eu criei dentro do schema sys. Experimenta dropar a sua trigger e
 recompilá-la, igualzinha, apenas especificando:
 create or replace trigger SYS.tr_falha_logon_tt
 
 Em 29 de novembro de 2011 15:49, JLSilva jljlsi...@yahoo.com.br escreveu:
 
 **
 
 
 Ah, entendi.
 Você deve estar fazendo uma trigger de login, comum.
 Veja meu processo e veja se é isto que você está fazendo:
 
 connect / as sysdba
 
 drop table log_falha_logon_tt purge;
 create table log_falha_logon_tt as
 select
 --ORA_LOGIN_USER SESSION_USER,
 sys_context('USERENV','CURRENT_USER') SESSION_USER,
 --sys_context('USERENV','SESSION_USER') SESSION_USER,
 --sys_context('USERENV','SESSION_USERID') SESSION_USERID,
 sys_context('USERENV','AUTHENTICATION_TYPE') AUTHENTICATION_TYPE,
 ORA_DATABASE_NAME DATABASE_NAME,
 ORA_INSTANCE_NUM INSTANCE_NUM,
 ORA_SERVER_ERROR(1) SERVER_ERROR,
 sysdate HORA_OCORR,
 sys_context('USERENV','IP_ADDRESS') IP_ADDRESS,
 sys_context('USERENV','HOST') HOST,
 sys_context('USERENV','TERMINAL') TERMINAL,
 sys_context('USERENV','OS_USER') OS_USER,
 sys_context('USERENV','NETWORK_PROTOCOL') NETWORK_PROTOCOL
 from dual
 where 1=2;
 
 create or replace trigger tr_falha_logon_tt
 AFTER SERVERERROR ON DATABASE
 declare
 BEGIN
 IF IS_SERVERERROR(1017) THEN
 insert into log_falha_logon_tt
 (
 SESSION_USER,
 AUTHENTICATION_TYPE,
 DATABASE_NAME,
 INSTANCE_NUM,
 SERVER_ERROR,
 HORA_OCORR,
 IP_ADDRESS,
 HOST,
 TERMINAL,
 OS_USER,
 NETWORK_PROTOCOL
 )
 values
 (
 --ORA_LOGIN_USER,
 sys_context('USERENV','CURRENT_USER'),
 --sys_context('USERENV','SESSION_USER'),
 --sys_context('USERENV','SESSION_USERID'),
 sys_context('USERENV','AUTHENTICATION_TYPE'),
 ORA_DATABASE_NAME,
 ORA_INSTANCE_NUM,
 ORA_SERVER_ERROR(1),
 sysdate,
 

Re: [oracle_br] Trigger para registrar tentativa de login

2011-11-29 Por tôpico Marcos de Moura Gonçalves
Realmente, não percebi que no seu script vc se conecta como /. Eu vi o
create trigger sem especificar o owner e achei que ficava em um outro owner.

 Não sei se ajuda, mas segue o código do trigger e tabela q eu fiz na época:

CREATE TABLE marcos.erro_logon
(dt_erro DATE DEFAULT SYSDATE
,txt_oracle_user VARCHAR2(30)
,txt_ip VARCHAR2(15)
,txt_maquina VARCHAR2(50)
,txt_os_user VARCHAR2(50)
,txt_software VARCHAR2(50)
,txt_tipo_autenticacao VARCHAR2(50)
,txt_erro VARCHAR2(100))
/
CREATE OR REPLACE TRIGGER SYS.trg_as_erro_logon
   AFTER SERVERERROR ON DATABASE
BEGIN
   IF (   is_servererror (1004)
   OR is_servererror (1005)
   OR is_servererror (1017)
   OR is_servererror (1035)
   OR is_servererror (1045)
  )
   THEN
  INSERT INTO marcos.erro_logon
  (txt_oracle_user,
   txt_ip,
   txt_maquina,
   txt_os_user,
   txt_software,
   txt_tipo_autenticacao,
   txt_erro
  )
   VALUES (SYS_CONTEXT ('USERENV', 'CURRENT_USER'),
   SYS_CONTEXT ('USERENV', 'IP_ADDRESS'),
   SYS_CONTEXT ('USERENV', 'HOST'),
   SYS_CONTEXT ('USERENV', 'OS_USER'),
   SYS_CONTEXT ('USERENV', 'MODULE'),
   SYS_CONTEXT ('USERENV', 'AUTHENTICATION_TYPE'),
   DBMS_UTILITY.format_error_stack
  );
  COMMIT;
   END IF;
END trg_as_erro_logon;
/

Erros logados:
1004: ORA-01004: default username feature not supported; logon denied
1005: ORA-01005: null password given; logon denied
1017: ORA-01017: invalid username/password; logon denied
1035: ORA-01035: ORACLE only available to users with RESTRICTED SESSION
privilege
1045: ORA-01045: user ... lacks CREATE SESSION privilege; logon denied
[]s

Marcos

Em 29 de novembro de 2011 16:08, JLSilva jljlsi...@yahoo.com.br escreveu:

 **


 Olha, não entendo qual seria a diferença. A trigger e a tabela já está no
 schema SYS.
 De qualquer forma, executei este procedimento, mas o resultado foi
 exatamente o mesmo, ou seja, o CURRENT_USER retorna o SYS e o SESSION_USER
 retorna nulo, independente de existir ou não no banco o usuário informado
 no login.

 Se tiver mais alguma dica, agradeço!

 connect / as sysdba

 create user jlsilva identified by jlsilva quota unlimited on users;
 grant create session, create table to jlsilva;

 drop table jlsilva.log_falha_logon_tt purge;
 create table jlsilva.log_falha_logon_tt as

 select
 --ORA_LOGIN_USER SESSION_USER,
 sys_context('USERENV','CURRENT_USER') SESSION_USER,
 --sys_context('USERENV','SESSION_USER') SESSION_USER,
 --sys_context('USERENV','SESSION_USERID') SESSION_USERID,
 sys_context('USERENV','AUTHENTICATION_TYPE') AUTHENTICATION_TYPE,
 ORA_DATABASE_NAME DATABASE_NAME,
 ORA_INSTANCE_NUM INSTANCE_NUM,
 ORA_SERVER_ERROR(1) SERVER_ERROR,
 sysdate HORA_OCORR,
 sys_context('USERENV','IP_ADDRESS') IP_ADDRESS,
 sys_context('USERENV','HOST') HOST,
 sys_context('USERENV','TERMINAL') TERMINAL,
 sys_context('USERENV','OS_USER') OS_USER,
 sys_context('USERENV','NETWORK_PROTOCOL') NETWORK_PROTOCOL
 from dual
 where 1=2;

 create or replace trigger sys.tr_falha_logon_tt

 AFTER SERVERERROR ON DATABASE
 declare
 BEGIN
 IF IS_SERVERERROR(1017) THEN
 insert into jlsilva.log_falha_logon_tt

 (
 SESSION_USER,
 AUTHENTICATION_TYPE,
 DATABASE_NAME,
 INSTANCE_NUM,
 SERVER_ERROR,
 HORA_OCORR,
 IP_ADDRESS,
 HOST,
 TERMINAL,
 OS_USER,
 NETWORK_PROTOCOL
 )
 values
 (
 --ORA_LOGIN_USER,
 sys_context('USERENV','CURRENT_USER'),
 --sys_context('USERENV','SESSION_USER'),
 --sys_context('USERENV','SESSION_USERID'),
 sys_context('USERENV','AUTHENTICATION_TYPE'),
 ORA_DATABASE_NAME,
 ORA_INSTANCE_NUM,
 ORA_SERVER_ERROR(1),
 sysdate,
 sys_context('USERENV','IP_ADDRESS'),
 sys_context('USERENV','HOST'),
 sys_context('USERENV','TERMINAL'),
 sys_context('USERENV','OS_USER'),
 sys_context('USERENV','NETWORK_PROTOCOL')
 );
 END IF;
 END;
 /

 connect abc123/abc123
 connect / as sysdba

 set linesize 999 pagesize 1000
 column SESSION_USER format a15
 column SESSION_USERID format a15
 column AUTHENTICATION_TYPE format a15
 column DATABASE_NAME format a15
 column INSTANCE_NUM format 999
 column SERVER_ERROR format 99
 column IP_ADDRESS format a15
 column HOST format a35
 column TERMINAL format a15
 column OS_USER format a15
 column NETWORK_PROTOCOL format a15
 select * from jlsilva.log_falha_logon_tt order by hora_ocorr;


 On Nov 29, 2011, at 15:55 , Marcos de Moura Gonçalves wrote:

  Cara, a minha trigger é muito parecida com a sua, o mesmo conceito. Fiz
  essa trigger a um tempo já, e lembro que li alguma coisa sobre a
 diferença
  entre essa trigger estar ou não no usuário SYS. O motivo, honestamente,
 não
  lembro, mas lembro que minha tabela de log ficava dentro do meu schema,
 mas
  a trigger eu criei dentro do schema sys. Experimenta dropar a sua
 trigger e
  recompilá-la, igualzinha, apenas especificando:
  create or 

Re: [oracle_br] Trigger para registrar tentativa de login

2011-11-29 Por tôpico Marcos de Moura Gonçalves
Um outro detalhe: eu reparei no seu script que vc ainda está conectado como
SYS quando tenta fazer connect abc123/abc123. Pode ser esse o motivo de
estar gravando SYS na tabela de log. Experimenta abrir outro putty e fazer
sqlplus abc123/abc123 pra ver o q grava.

Em 29 de novembro de 2011 16:12, Marcos de Moura Gonçalves 
mgmar...@gmail.com escreveu:

 Realmente, não percebi que no seu script vc se conecta como /. Eu vi o
 create trigger sem especificar o owner e achei que ficava em um outro owner.

  Não sei se ajuda, mas segue o código do trigger e tabela q eu fiz na
 época:

 CREATE TABLE marcos.erro_logon
 (dt_erro DATE DEFAULT SYSDATE
 ,txt_oracle_user VARCHAR2(30)
 ,txt_ip VARCHAR2(15)
 ,txt_maquina VARCHAR2(50)
 ,txt_os_user VARCHAR2(50)
 ,txt_software VARCHAR2(50)
 ,txt_tipo_autenticacao VARCHAR2(50)
 ,txt_erro VARCHAR2(100))
 /
 CREATE OR REPLACE TRIGGER SYS.trg_as_erro_logon
AFTER SERVERERROR ON DATABASE
 BEGIN
IF (   is_servererror (1004)
OR is_servererror (1005)
OR is_servererror (1017)
OR is_servererror (1035)
OR is_servererror (1045)
   )
THEN
   INSERT INTO marcos.erro_logon
   (txt_oracle_user,
txt_ip,
txt_maquina,
txt_os_user,
txt_software,
txt_tipo_autenticacao,
txt_erro
   )
VALUES (SYS_CONTEXT ('USERENV', 'CURRENT_USER'),
SYS_CONTEXT ('USERENV', 'IP_ADDRESS'),
SYS_CONTEXT ('USERENV', 'HOST'),
SYS_CONTEXT ('USERENV', 'OS_USER'),
SYS_CONTEXT ('USERENV', 'MODULE'),
SYS_CONTEXT ('USERENV', 'AUTHENTICATION_TYPE'),
DBMS_UTILITY.format_error_stack
   );
   COMMIT;
END IF;
 END trg_as_erro_logon;
 /

 Erros logados:
 1004: ORA-01004: default username feature not supported; logon denied
 1005: ORA-01005: null password given; logon denied
 1017: ORA-01017: invalid username/password; logon denied
 1035: ORA-01035: ORACLE only available to users with RESTRICTED SESSION
 privilege
 1045: ORA-01045: user ... lacks CREATE SESSION privilege; logon denied
 []s

 Marcos

 Em 29 de novembro de 2011 16:08, JLSilva jljlsi...@yahoo.com.brescreveu:

 **


 Olha, não entendo qual seria a diferença. A trigger e a tabela já está no
 schema SYS.
 De qualquer forma, executei este procedimento, mas o resultado foi
 exatamente o mesmo, ou seja, o CURRENT_USER retorna o SYS e o SESSION_USER
 retorna nulo, independente de existir ou não no banco o usuário informado
 no login.

 Se tiver mais alguma dica, agradeço!

 connect / as sysdba

 create user jlsilva identified by jlsilva quota unlimited on users;
 grant create session, create table to jlsilva;

 drop table jlsilva.log_falha_logon_tt purge;
 create table jlsilva.log_falha_logon_tt as

 select
 --ORA_LOGIN_USER SESSION_USER,
 sys_context('USERENV','CURRENT_USER') SESSION_USER,
 --sys_context('USERENV','SESSION_USER') SESSION_USER,
 --sys_context('USERENV','SESSION_USERID') SESSION_USERID,
 sys_context('USERENV','AUTHENTICATION_TYPE') AUTHENTICATION_TYPE,
 ORA_DATABASE_NAME DATABASE_NAME,
 ORA_INSTANCE_NUM INSTANCE_NUM,
 ORA_SERVER_ERROR(1) SERVER_ERROR,
 sysdate HORA_OCORR,
 sys_context('USERENV','IP_ADDRESS') IP_ADDRESS,
 sys_context('USERENV','HOST') HOST,
 sys_context('USERENV','TERMINAL') TERMINAL,
 sys_context('USERENV','OS_USER') OS_USER,
 sys_context('USERENV','NETWORK_PROTOCOL') NETWORK_PROTOCOL
 from dual
 where 1=2;

 create or replace trigger sys.tr_falha_logon_tt

 AFTER SERVERERROR ON DATABASE
 declare
 BEGIN
 IF IS_SERVERERROR(1017) THEN
 insert into jlsilva.log_falha_logon_tt

 (
 SESSION_USER,
 AUTHENTICATION_TYPE,
 DATABASE_NAME,
 INSTANCE_NUM,
 SERVER_ERROR,
 HORA_OCORR,
 IP_ADDRESS,
 HOST,
 TERMINAL,
 OS_USER,
 NETWORK_PROTOCOL
 )
 values
 (
 --ORA_LOGIN_USER,
 sys_context('USERENV','CURRENT_USER'),
 --sys_context('USERENV','SESSION_USER'),
 --sys_context('USERENV','SESSION_USERID'),
 sys_context('USERENV','AUTHENTICATION_TYPE'),
 ORA_DATABASE_NAME,
 ORA_INSTANCE_NUM,
 ORA_SERVER_ERROR(1),
 sysdate,
 sys_context('USERENV','IP_ADDRESS'),
 sys_context('USERENV','HOST'),
 sys_context('USERENV','TERMINAL'),
 sys_context('USERENV','OS_USER'),
 sys_context('USERENV','NETWORK_PROTOCOL')
 );
 END IF;
 END;
 /

 connect abc123/abc123
 connect / as sysdba

 set linesize 999 pagesize 1000
 column SESSION_USER format a15
 column SESSION_USERID format a15
 column AUTHENTICATION_TYPE format a15
 column DATABASE_NAME format a15
 column INSTANCE_NUM format 999
 column SERVER_ERROR format 99
 column IP_ADDRESS format a15
 column HOST format a35
 column TERMINAL format a15
 column OS_USER format a15
 column NETWORK_PROTOCOL format a15
 select * from jlsilva.log_falha_logon_tt order by hora_ocorr;


 On Nov 29, 2011, at 15:55 , Marcos de Moura Gonçalves wrote:

  Cara, a minha trigger é muito parecida 

Re: [oracle_br] Trigger para registrar tentativa de login

2011-11-29 Por tôpico Marcos de Moura Gonçalves
Mais uma pergunta: o usuário abc123 existe? A situação que eu logava era pq
queria saber quem estava bloqueando o usuário da aplicação o tempo todo por
excesso de tentativas de login com senha errada. No meu caso, o usuário
sempre existia, só a senha era errada. Não sei o que acontece qdo tenta
logar com usuário que não existe no banco...

Em 29 de novembro de 2011 16:29, Marcos de Moura Gonçalves 
mgmar...@gmail.com escreveu:

 Um outro detalhe: eu reparei no seu script que vc ainda está conectado
 como SYS quando tenta fazer connect abc123/abc123. Pode ser esse o motivo
 de estar gravando SYS na tabela de log. Experimenta abrir outro putty e
 fazer sqlplus abc123/abc123 pra ver o q grava.

 Em 29 de novembro de 2011 16:12, Marcos de Moura Gonçalves 
 mgmar...@gmail.com escreveu:

  Realmente, não percebi que no seu script vc se conecta como /. Eu vi o
 create trigger sem especificar o owner e achei que ficava em um outro owner.

  Não sei se ajuda, mas segue o código do trigger e tabela q eu fiz na
 época:

 CREATE TABLE marcos.erro_logon
 (dt_erro DATE DEFAULT SYSDATE
 ,txt_oracle_user VARCHAR2(30)
 ,txt_ip VARCHAR2(15)
 ,txt_maquina VARCHAR2(50)
 ,txt_os_user VARCHAR2(50)
 ,txt_software VARCHAR2(50)
 ,txt_tipo_autenticacao VARCHAR2(50)
 ,txt_erro VARCHAR2(100))
 /
 CREATE OR REPLACE TRIGGER SYS.trg_as_erro_logon
AFTER SERVERERROR ON DATABASE
 BEGIN
IF (   is_servererror (1004)
OR is_servererror (1005)
OR is_servererror (1017)
OR is_servererror (1035)
OR is_servererror (1045)
   )
THEN
   INSERT INTO marcos.erro_logon
   (txt_oracle_user,
txt_ip,
txt_maquina,
txt_os_user,
txt_software,
txt_tipo_autenticacao,
txt_erro
   )
VALUES (SYS_CONTEXT ('USERENV', 'CURRENT_USER'),
SYS_CONTEXT ('USERENV', 'IP_ADDRESS'),
SYS_CONTEXT ('USERENV', 'HOST'),
SYS_CONTEXT ('USERENV', 'OS_USER'),
SYS_CONTEXT ('USERENV', 'MODULE'),
SYS_CONTEXT ('USERENV', 'AUTHENTICATION_TYPE'),
DBMS_UTILITY.format_error_stack
   );
   COMMIT;
END IF;
 END trg_as_erro_logon;
 /

 Erros logados:
 1004: ORA-01004: default username feature not supported; logon denied
 1005: ORA-01005: null password given; logon denied
 1017: ORA-01017: invalid username/password; logon denied
 1035: ORA-01035: ORACLE only available to users with RESTRICTED SESSION
 privilege
 1045: ORA-01045: user ... lacks CREATE SESSION privilege; logon denied
 []s

 Marcos

 Em 29 de novembro de 2011 16:08, JLSilva jljlsi...@yahoo.com.brescreveu:

 **


 Olha, não entendo qual seria a diferença. A trigger e a tabela já está
 no schema SYS.
 De qualquer forma, executei este procedimento, mas o resultado foi
 exatamente o mesmo, ou seja, o CURRENT_USER retorna o SYS e o SESSION_USER
 retorna nulo, independente de existir ou não no banco o usuário informado
 no login.

 Se tiver mais alguma dica, agradeço!

 connect / as sysdba

 create user jlsilva identified by jlsilva quota unlimited on users;
 grant create session, create table to jlsilva;

 drop table jlsilva.log_falha_logon_tt purge;
 create table jlsilva.log_falha_logon_tt as

 select
 --ORA_LOGIN_USER SESSION_USER,
 sys_context('USERENV','CURRENT_USER') SESSION_USER,
 --sys_context('USERENV','SESSION_USER') SESSION_USER,
 --sys_context('USERENV','SESSION_USERID') SESSION_USERID,
 sys_context('USERENV','AUTHENTICATION_TYPE') AUTHENTICATION_TYPE,
 ORA_DATABASE_NAME DATABASE_NAME,
 ORA_INSTANCE_NUM INSTANCE_NUM,
 ORA_SERVER_ERROR(1) SERVER_ERROR,
 sysdate HORA_OCORR,
 sys_context('USERENV','IP_ADDRESS') IP_ADDRESS,
 sys_context('USERENV','HOST') HOST,
 sys_context('USERENV','TERMINAL') TERMINAL,
 sys_context('USERENV','OS_USER') OS_USER,
 sys_context('USERENV','NETWORK_PROTOCOL') NETWORK_PROTOCOL
 from dual
 where 1=2;

 create or replace trigger sys.tr_falha_logon_tt

 AFTER SERVERERROR ON DATABASE
 declare
 BEGIN
 IF IS_SERVERERROR(1017) THEN
 insert into jlsilva.log_falha_logon_tt

 (
 SESSION_USER,
 AUTHENTICATION_TYPE,
 DATABASE_NAME,
 INSTANCE_NUM,
 SERVER_ERROR,
 HORA_OCORR,
 IP_ADDRESS,
 HOST,
 TERMINAL,
 OS_USER,
 NETWORK_PROTOCOL
 )
 values
 (
 --ORA_LOGIN_USER,
 sys_context('USERENV','CURRENT_USER'),
 --sys_context('USERENV','SESSION_USER'),
 --sys_context('USERENV','SESSION_USERID'),
 sys_context('USERENV','AUTHENTICATION_TYPE'),
 ORA_DATABASE_NAME,
 ORA_INSTANCE_NUM,
 ORA_SERVER_ERROR(1),
 sysdate,
 sys_context('USERENV','IP_ADDRESS'),
 sys_context('USERENV','HOST'),
 sys_context('USERENV','TERMINAL'),
 sys_context('USERENV','OS_USER'),
 sys_context('USERENV','NETWORK_PROTOCOL')
 );
 END IF;
 END;
 /

 connect abc123/abc123
 connect / as sysdba

 set linesize 999 pagesize 1000
 column SESSION_USER format a15
 column SESSION_USERID format a15
 column 

Re: [oracle_br] Trigger para registrar tentativa de login

2011-11-29 Por tôpico Marcos de Moura Gonçalves
Pois é, muito parecida. Eu guardei esse código, mas não trabalho mais no
ambiente onde ela era usada. Onde eu tô agora nem tenho Oracle pra
testar... Mas o resultado que eu obtia, com certeza, era o usuário da
tentativa errada de login, e não SYS...

Em 29 de novembro de 2011 16:31, JLSilva jljlsi...@yahoo.com.br escreveu:

 **


 Marcos, realmente muito semelhante sua trigger.
 provavelmente me baseei nos mesmos exemplos.. rsrs..
 mas, seguinte.. o TXT_ORACLE_USER sempre retorna SYS, porque a trigger
 executa no contexto do owner dela.
 pelo menos é o que está ocorrendo aqui no banco onde estou testando.
 será q você conseguiu um resultado diferente nessa coluna?


 On Nov 29, 2011, at 16:12 , Marcos de Moura Gonçalves wrote:

  Realmente, não percebi que no seu script vc se conecta como /. Eu vi o
  create trigger sem especificar o owner e achei que ficava em um outro
 owner.
 
  Não sei se ajuda, mas segue o código do trigger e tabela q eu fiz na
 época:
 
  CREATE TABLE marcos.erro_logon
  (dt_erro DATE DEFAULT SYSDATE
  ,txt_oracle_user VARCHAR2(30)
  ,txt_ip VARCHAR2(15)
  ,txt_maquina VARCHAR2(50)
  ,txt_os_user VARCHAR2(50)
  ,txt_software VARCHAR2(50)
  ,txt_tipo_autenticacao VARCHAR2(50)
  ,txt_erro VARCHAR2(100))
  /
  CREATE OR REPLACE TRIGGER SYS.trg_as_erro_logon
  AFTER SERVERERROR ON DATABASE
  BEGIN
  IF ( is_servererror (1004)
  OR is_servererror (1005)
  OR is_servererror (1017)
  OR is_servererror (1035)
  OR is_servererror (1045)
  )
  THEN
  INSERT INTO marcos.erro_logon
  (txt_oracle_user,
  txt_ip,
  txt_maquina,
  txt_os_user,
  txt_software,
  txt_tipo_autenticacao,
  txt_erro
  )
  VALUES (SYS_CONTEXT ('USERENV', 'CURRENT_USER'),
  SYS_CONTEXT ('USERENV', 'IP_ADDRESS'),
  SYS_CONTEXT ('USERENV', 'HOST'),
  SYS_CONTEXT ('USERENV', 'OS_USER'),
  SYS_CONTEXT ('USERENV', 'MODULE'),
  SYS_CONTEXT ('USERENV', 'AUTHENTICATION_TYPE'),
  DBMS_UTILITY.format_error_stack
  );
  COMMIT;
  END IF;
  END trg_as_erro_logon;
  /
 
  Erros logados:
  1004: ORA-01004: default username feature not supported; logon denied
  1005: ORA-01005: null password given; logon denied
  1017: ORA-01017: invalid username/password; logon denied
  1035: ORA-01035: ORACLE only available to users with RESTRICTED SESSION
  privilege
  1045: ORA-01045: user ... lacks CREATE SESSION privilege; logon denied
  []s
 
  Marcos
 
  Em 29 de novembro de 2011 16:08, JLSilva jljlsi...@yahoo.com.br
 escreveu:
 
  **

 
 
  Olha, não entendo qual seria a diferença. A trigger e a tabela já está
 no
  schema SYS.
  De qualquer forma, executei este procedimento, mas o resultado foi
  exatamente o mesmo, ou seja, o CURRENT_USER retorna o SYS e o
 SESSION_USER
  retorna nulo, independente de existir ou não no banco o usuário
 informado
  no login.
 
  Se tiver mais alguma dica, agradeço!
 
  connect / as sysdba
 
  create user jlsilva identified by jlsilva quota unlimited on users;
  grant create session, create table to jlsilva;
 
  drop table jlsilva.log_falha_logon_tt purge;
  create table jlsilva.log_falha_logon_tt as
 
  select
  --ORA_LOGIN_USER SESSION_USER,
  sys_context('USERENV','CURRENT_USER') SESSION_USER,
  --sys_context('USERENV','SESSION_USER') SESSION_USER,
  --sys_context('USERENV','SESSION_USERID') SESSION_USERID,
  sys_context('USERENV','AUTHENTICATION_TYPE') AUTHENTICATION_TYPE,
  ORA_DATABASE_NAME DATABASE_NAME,
  ORA_INSTANCE_NUM INSTANCE_NUM,
  ORA_SERVER_ERROR(1) SERVER_ERROR,
  sysdate HORA_OCORR,
  sys_context('USERENV','IP_ADDRESS') IP_ADDRESS,
  sys_context('USERENV','HOST') HOST,
  sys_context('USERENV','TERMINAL') TERMINAL,
  sys_context('USERENV','OS_USER') OS_USER,
  sys_context('USERENV','NETWORK_PROTOCOL') NETWORK_PROTOCOL
  from dual
  where 1=2;
 
  create or replace trigger sys.tr_falha_logon_tt
 
  AFTER SERVERERROR ON DATABASE
  declare
  BEGIN
  IF IS_SERVERERROR(1017) THEN
  insert into jlsilva.log_falha_logon_tt
 
  (
  SESSION_USER,
  AUTHENTICATION_TYPE,
  DATABASE_NAME,
  INSTANCE_NUM,
  SERVER_ERROR,
  HORA_OCORR,
  IP_ADDRESS,
  HOST,
  TERMINAL,
  OS_USER,
  NETWORK_PROTOCOL
  )
  values
  (
  --ORA_LOGIN_USER,
  sys_context('USERENV','CURRENT_USER'),
  --sys_context('USERENV','SESSION_USER'),
  --sys_context('USERENV','SESSION_USERID'),
  sys_context('USERENV','AUTHENTICATION_TYPE'),
  ORA_DATABASE_NAME,
  ORA_INSTANCE_NUM,
  ORA_SERVER_ERROR(1),
  sysdate,
  sys_context('USERENV','IP_ADDRESS'),
  sys_context('USERENV','HOST'),
  sys_context('USERENV','TERMINAL'),
  sys_context('USERENV','OS_USER'),
  sys_context('USERENV','NETWORK_PROTOCOL')
  );
  END IF;
  END;
  /
 
  connect abc123/abc123
  connect / as sysdba
 
  set linesize 999 pagesize 1000
  column SESSION_USER format a15
  column SESSION_USERID format a15
  column AUTHENTICATION_TYPE format a15
  column DATABASE_NAME format a15
  column INSTANCE_NUM format 999
  column SERVER_ERROR format 99
  column IP_ADDRESS format a15
  column HOST format a35
  column TERMINAL format a15
  column OS_USER format a15
  column 

Re: [oracle_br] Trigger para registrar tentativa de login

2011-11-29 Por tôpico Marcos de Moura Gonçalves
O ORA_LOGIN_USER retorna o login do usuário para outros erros, que não
erros de login... Acontece que no erro de login, na prática, o cliente não
fez login, por isso o ORA_LOGIN_USER não retorna nada... Só por
curiosidade, se vc tentar logar com um usuário que existe e tem grant de
create session, mas coloca a senha errada, o CURRENT_USER não traz o nome
do usuário?

Em 29 de novembro de 2011 16:49, JLSilva jljlsi...@yahoo.com.br escreveu:

 **


 Marcos, fiz os testes desconectando e tentando conectar diretamente com um
 usuário que não existe ou que não tenha permissão de create session.
 Sua trigger funciona da mesma forma que a minha: o SYS_CONTEXT ('USERENV',
 'CURRENT_USER') retorna o usuário SYS e as demais funções para pegar o nome
 do usuário do login retornam nulo.
 O que mais me incomoda é que a documentação diz que o ORA_LOGIN_USER
 deveria conter valor no evento SERVERERROR.
 E até tem valor, exceto quando é um erro de conexão ao banco de dados.
 Sua trigger tem uma evolução: ela registra a mensagem completa de erro
 através da função DBMS_UTILITY.format_error_stack.
 Desta forma, se o erro for, por exemplo, ORA-01045, aparece o nome do
 usuário aqui:
 ORA-01045: user JLSILVA lacks CREATE SESSION privilege; logon denied
 Mas, no caso do usuário inexistente, não é mostrado o nome do usuário que
 tentou a conexão. A mensagem fica assim:

 ORA-01017: invalid username/password; logon denied
 E era justamente esta a informaçào que mais me interessaria! rsrs..
 Tamo quase chegando lá..


 On Nov 29, 2011, at 16:32 , Marcos de Moura Gonçalves wrote:

  Mais uma pergunta: o usuário abc123 existe? A situação que eu logava era
 pq
  queria saber quem estava bloqueando o usuário da aplicação o tempo todo
 por
  excesso de tentativas de login com senha errada. No meu caso, o usuário
  sempre existia, só a senha era errada. Não sei o que acontece qdo tenta
  logar com usuário que não existe no banco...
 
  Em 29 de novembro de 2011 16:29, Marcos de Moura Gonçalves 
  mgmar...@gmail.com escreveu:
 
  Um outro detalhe: eu reparei no seu script que vc ainda está conectado
  como SYS quando tenta fazer connect abc123/abc123. Pode ser esse o
 motivo
  de estar gravando SYS na tabela de log. Experimenta abrir outro putty e
  fazer sqlplus abc123/abc123 pra ver o q grava.
 
  Em 29 de novembro de 2011 16:12, Marcos de Moura Gonçalves 
  mgmar...@gmail.com escreveu:
 
  Realmente, não percebi que no seu script vc se conecta como /. Eu vi o
  create trigger sem especificar o owner e achei que ficava em um outro
 owner.
 
  Não sei se ajuda, mas segue o código do trigger e tabela q eu fiz na
  época:
 
  CREATE TABLE marcos.erro_logon
  (dt_erro DATE DEFAULT SYSDATE
  ,txt_oracle_user VARCHAR2(30)
  ,txt_ip VARCHAR2(15)
  ,txt_maquina VARCHAR2(50)
  ,txt_os_user VARCHAR2(50)
  ,txt_software VARCHAR2(50)
  ,txt_tipo_autenticacao VARCHAR2(50)
  ,txt_erro VARCHAR2(100))
  /
  CREATE OR REPLACE TRIGGER SYS.trg_as_erro_logon
  AFTER SERVERERROR ON DATABASE
  BEGIN
  IF ( is_servererror (1004)
  OR is_servererror (1005)
  OR is_servererror (1017)
  OR is_servererror (1035)
  OR is_servererror (1045)
  )
  THEN
  INSERT INTO marcos.erro_logon
  (txt_oracle_user,
  txt_ip,
  txt_maquina,
  txt_os_user,
  txt_software,
  txt_tipo_autenticacao,
  txt_erro
  )
  VALUES (SYS_CONTEXT ('USERENV', 'CURRENT_USER'),
  SYS_CONTEXT ('USERENV', 'IP_ADDRESS'),
  SYS_CONTEXT ('USERENV', 'HOST'),
  SYS_CONTEXT ('USERENV', 'OS_USER'),
  SYS_CONTEXT ('USERENV', 'MODULE'),
  SYS_CONTEXT ('USERENV', 'AUTHENTICATION_TYPE'),
  DBMS_UTILITY.format_error_stack
  );
  COMMIT;
  END IF;
  END trg_as_erro_logon;
  /
 
  Erros logados:
  1004: ORA-01004: default username feature not supported; logon denied
  1005: ORA-01005: null password given; logon denied
  1017: ORA-01017: invalid username/password; logon denied
  1035: ORA-01035: ORACLE only available to users with RESTRICTED SESSION
  privilege
  1045: ORA-01045: user ... lacks CREATE SESSION privilege; logon denied
  []s
 
  Marcos
 
  Em 29 de novembro de 2011 16:08, JLSilva jljlsi...@yahoo.com.br
 escreveu:
 
  **

 
 
  Olha, não entendo qual seria a diferença. A trigger e a tabela já está
  no schema SYS.
  De qualquer forma, executei este procedimento, mas o resultado foi
  exatamente o mesmo, ou seja, o CURRENT_USER retorna o SYS e o
 SESSION_USER
  retorna nulo, independente de existir ou não no banco o usuário
 informado
  no login.
 
  Se tiver mais alguma dica, agradeço!
 
  connect / as sysdba
 
  create user jlsilva identified by jlsilva quota unlimited on users;
  grant create session, create table to jlsilva;
 
  drop table jlsilva.log_falha_logon_tt purge;
  create table jlsilva.log_falha_logon_tt as
 
  select
  --ORA_LOGIN_USER SESSION_USER,
  sys_context('USERENV','CURRENT_USER') SESSION_USER,
  --sys_context('USERENV','SESSION_USER') SESSION_USER,
  --sys_context('USERENV','SESSION_USERID') SESSION_USERID,
  sys_context('USERENV','AUTHENTICATION_TYPE') AUTHENTICATION_TYPE,
 

Re: [oracle_br] Trigger ou audit ?

2011-08-31 Por tôpico rodrigobrar2...@gmail.com
Só atente ao fato de Auditoria onerar consideravelmente a tua base de
dados...tomar cuidado.

At.

Rodrigo


Em 31 de agosto de 2011 13:07, Marcos Braga braga.mar...@gmail.comescreveu:



 Olá José Carlos,

 Acredito que o AUDIT seria mais prático e mais rápido de implementar.

 Pelo fato de não ser uma necessidade permanente, o desenvolvimento de
 triggers poderia ser em oneroso.

 []s
 Braga

 2011/8/31 José Carlos Guerrieri guerrieri...@gmail.com

  **

 
 
  Bom dia.
 
  Estou com o seguinte problema:
 
  Atendendo à necessidade de um cliente cujo legado é a existência de
  inúmeros
  dblinks públicos criados com usuário e senha, preciso saber qual usuário
 da
  base faz uso destes dblinks para chegar à(s) outra(s) instância(s).
  A possível solução seria uma trigger ou ligar o audit ?
 
  Agradeço a quem possa ajudar.
 
  José Carlos
 

 [As partes desta mensagem que não continham texto foram removidas]

  



[As partes desta mensagem que não continham texto foram removidas]





--
Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--
Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » 
Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: 
http://www.oraclebr.com.br/  

 Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/

* Para sair deste grupo, envie um e-mail para:
oracle_br-unsubscr...@yahoogrupos.com.br

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html




Re: [oracle_br] TRIGGER

2011-08-11 Por tôpico Gerson Junior
Nem um nem outro.

Simplesmente chama a procedure.

create os replace trigger
begin
   sua_procedure;
end;
/

Só isso.

Abraço!!


Gerson S. de Vasconcelos Júnior
OCA DBA - Oracle Certified Associate
Fone: (81) 9816-0236
Msn: gerson.vasconce...@gmail.com
Skype: gersonvjunior
http://www.diaadiaoracle.com.br/


Em 11 de agosto de 2011 14:30, Carlos Pinto
carlos.pin...@yahoo.com.brescreveu:

 **


 Ola a todos, Posso executar uma PROCEDURE dentro de um TRIGGER?

 Como faço isso? Com o CALL ou EXECUTE?

 Obrigado

 Carlos Pinto

 [As partes desta mensagem que não continham texto foram removidas]

  



[As partes desta mensagem que não continham texto foram removidas]





--
Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--
Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » 
Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: 
http://www.oraclebr.com.br/  

 Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/

* Para sair deste grupo, envie um e-mail para:
oracle_br-unsubscr...@yahoogrupos.com.br

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html




RE: [oracle_br] TRIGGER

2011-08-11 Por tôpico Carlos Pinto
Mas da-me erro ao compilar


CREATE TRIGGER TRG_H_SII
AFTER INSERT
ON H_SII 
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW

BEGIN
CARLOS.PRO_X('10.0.0.1', '21', 'teste', 'teste', 'S', '/SII/')
END;




Carlos Pinto

-Mensagem original-
De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em
nome de Gerson Junior
Enviada: quinta-feira, 11 de Agosto de 2011 18:40
Para: oracle_br@yahoogrupos.com.br
Assunto: Re: [oracle_br] TRIGGER

Nem um nem outro.

Simplesmente chama a procedure.

create os replace trigger
begin
   sua_procedure;
end;
/

Só isso.

Abraço!!


Gerson S. de Vasconcelos Júnior
OCA DBA - Oracle Certified Associate
Fone: (81) 9816-0236
Msn: gerson.vasconce...@gmail.com
Skype: gersonvjunior
http://www.diaadiaoracle.com.br/


Em 11 de agosto de 2011 14:30, Carlos Pinto
carlos.pin...@yahoo.com.brescreveu:

 **


 Ola a todos, Posso executar uma PROCEDURE dentro de um TRIGGER?

 Como faço isso? Com o CALL ou EXECUTE?

 Obrigado

 Carlos Pinto

 [As partes desta mensagem que não continham texto foram removidas]

  



[As partes desta mensagem que não continham texto foram removidas]






--
Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 

--
Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure
» Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE:
http://www.oraclebr.com.br/  

 Links do Yahoo! Grupos




Re: [oracle_br] TRIGGER

2011-08-11 Por tôpico Álisson Zimermann
Tá colocando o ; depois da procedure?

BEGIN
CARLOS.PRO_X('10.0.0.1', '21', 'teste', 'teste', 'S', '/SII/')
- ?
END;

Em 11 de agosto de 2011 14:41, Carlos Pinto
carlos.pin...@yahoo.com.brescreveu:

 **


 Mas da-me erro ao compilar

 CREATE TRIGGER TRG_H_SII
 AFTER INSERT
 ON H_SII
 REFERENCING NEW AS NEW OLD AS OLD
 FOR EACH ROW

 BEGIN
 CARLOS.PRO_X('10.0.0.1', '21', 'teste', 'teste', 'S', '/SII/')
 END;

 Carlos Pinto

 -Mensagem original-
 De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em
 nome de Gerson Junior
 Enviada: quinta-feira, 11 de Agosto de 2011 18:40
 Para: oracle_br@yahoogrupos.com.br
 Assunto: Re: [oracle_br] TRIGGER


 Nem um nem outro.

 Simplesmente chama a procedure.

 create os replace trigger
 begin
 sua_procedure;
 end;
 /

 Só isso.

 Abraço!!

 Gerson S. de Vasconcelos Júnior
 OCA DBA - Oracle Certified Associate
 Fone: (81) 9816-0236
 Msn: gerson.vasconce...@gmail.com
 Skype: gersonvjunior
 http://www.diaadiaoracle.com.br/

 Em 11 de agosto de 2011 14:30, Carlos Pinto
 carlos.pin...@yahoo.com.brescreveu:

  **
 
 
  Ola a todos, Posso executar uma PROCEDURE dentro de um TRIGGER?
 
  Como faço isso? Com o CALL ou EXECUTE?
 
  Obrigado
 
  Carlos Pinto
 
  [As partes desta mensagem que não continham texto foram removidas]
 
 
 

 [As partes desta mensagem que não continham texto foram removidas]

 

 --
 --
 Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de
 inteira
 responsabilidade de seus remetentes.
 Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
 --
 --
 Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure
 » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE:
 http://www.oraclebr.com.br/
 --
  Links do Yahoo! Grupos

  



[As partes desta mensagem que não continham texto foram removidas]





--
Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--
Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » 
Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: 
http://www.oraclebr.com.br/  

 Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/

* Para sair deste grupo, envie um e-mail para:
oracle_br-unsubscr...@yahoogrupos.com.br

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html




Re: [oracle_br] TRIGGER

2011-08-11 Por tôpico Gerson Junior
Qual o erro? que ocorre pra você.




Gerson S. de Vasconcelos Júnior
OCA DBA - Oracle Certified Associate
Fone: (81) 9816-0236
Msn: gerson.vasconce...@gmail.com
Skype: gersonvjunior
http://www.diaadiaoracle.com.br/


Em 11 de agosto de 2011 14:41, Carlos Pinto
carlos.pin...@yahoo.com.brescreveu:

 **


 Mas da-me erro ao compilar

 CREATE TRIGGER TRG_H_SII
 AFTER INSERT
 ON H_SII
 REFERENCING NEW AS NEW OLD AS OLD
 FOR EACH ROW

 BEGIN
 CARLOS.PRO_X('10.0.0.1', '21', 'teste', 'teste', 'S', '/SII/')
 END;

 Carlos Pinto

 -Mensagem original-
 De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em
 nome de Gerson Junior
 Enviada: quinta-feira, 11 de Agosto de 2011 18:40
 Para: oracle_br@yahoogrupos.com.br
 Assunto: Re: [oracle_br] TRIGGER


 Nem um nem outro.

 Simplesmente chama a procedure.

 create os replace trigger
 begin
 sua_procedure;
 end;
 /

 Só isso.

 Abraço!!

 Gerson S. de Vasconcelos Júnior
 OCA DBA - Oracle Certified Associate
 Fone: (81) 9816-0236
 Msn: gerson.vasconce...@gmail.com
 Skype: gersonvjunior
 http://www.diaadiaoracle.com.br/

 Em 11 de agosto de 2011 14:30, Carlos Pinto
 carlos.pin...@yahoo.com.brescreveu:

  **
 
 
  Ola a todos, Posso executar uma PROCEDURE dentro de um TRIGGER?
 
  Como faço isso? Com o CALL ou EXECUTE?
 
  Obrigado
 
  Carlos Pinto
 
  [As partes desta mensagem que não continham texto foram removidas]
 
 
 

 [As partes desta mensagem que não continham texto foram removidas]

 

 --

 --
 Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de
 inteira
 responsabilidade de seus remetentes.
 Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
 --
 --
 Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure
 » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE:
 http://www.oraclebr.com.br/
 --
  Links do Yahoo! Grupos

  



[As partes desta mensagem que não continham texto foram removidas]





--
Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--
Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » 
Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: 
http://www.oraclebr.com.br/  

 Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/

* Para sair deste grupo, envie um e-mail para:
oracle_br-unsubscr...@yahoogrupos.com.br

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html




RE: [oracle_br] TRIGGER

2011-08-11 Por tôpico Carlos Pinto
Nao tinha colocado o ;

Mas continua a dar-me este erro  - PLS-00201: identifier 'CARLOS.PRO_X'
must be declared


 CREATE TRIGGER TRG_H_SII
 AFTER INSERT
 ON H_SII
 REFERENCING NEW AS NEW OLD AS OLD
 FOR EACH ROW

 BEGIN
 CARLOS.PRO_X('10.0.0.1', '21', 'teste', 'teste', 'S', '/SII/');
END;







Com os melhores cumprimentos, 
Carlos Pinto


-Mensagem original-
De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em
nome de Álisson Zimermann
Enviada: quinta-feira, 11 de Agosto de 2011 18:45
Para: oracle_br@yahoogrupos.com.br
Assunto: Re: [oracle_br] TRIGGER

Tá colocando o ; depois da procedure?

BEGIN
CARLOS.PRO_X('10.0.0.1', '21', 'teste', 'teste', 'S', '/SII/')
- ?
END;

Em 11 de agosto de 2011 14:41, Carlos Pinto
carlos.pin...@yahoo.com.brescreveu:

 **


 Mas da-me erro ao compilar

 CREATE TRIGGER TRG_H_SII
 AFTER INSERT
 ON H_SII
 REFERENCING NEW AS NEW OLD AS OLD
 FOR EACH ROW

 BEGIN
 CARLOS.PRO_X('10.0.0.1', '21', 'teste', 'teste', 'S', '/SII/') END;

 Carlos Pinto

 -Mensagem original-
 De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] 
 Em nome de Gerson Junior
 Enviada: quinta-feira, 11 de Agosto de 2011 18:40
 Para: oracle_br@yahoogrupos.com.br
 Assunto: Re: [oracle_br] TRIGGER


 Nem um nem outro.

 Simplesmente chama a procedure.

 create os replace trigger
 begin
 sua_procedure;
 end;
 /

 Só isso.

 Abraço!!

 Gerson S. de Vasconcelos Júnior
 OCA DBA - Oracle Certified Associate
 Fone: (81) 9816-0236
 Msn: gerson.vasconce...@gmail.com
 Skype: gersonvjunior
 http://www.diaadiaoracle.com.br/

 Em 11 de agosto de 2011 14:30, Carlos Pinto
 carlos.pin...@yahoo.com.brescreveu:

  **
 
 
  Ola a todos, Posso executar uma PROCEDURE dentro de um TRIGGER?
 
  Como faço isso? Com o CALL ou EXECUTE?
 
  Obrigado
 
  Carlos Pinto
 
  [As partes desta mensagem que não continham texto foram removidas]
 
 
 

 [As partes desta mensagem que não continham texto foram removidas]

 

 --
 --
 Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de
 inteira
 responsabilidade de seus remetentes.
 Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
 --
 --
 Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » 
 Procedure
 » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE:
 http://www.oraclebr.com.br/
 --
  Links do Yahoo! Grupos

  



[As partes desta mensagem que não continham texto foram removidas]






--
Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/

--
Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » 
Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO 
ESPAÇO! VISITE: http://www.oraclebr.com.br/

 Links do Yahoo! Grupos




Re: [oracle_br] TRIGGER

2011-08-11 Por tôpico Gerson Junior
Ele não está encontrando a sua procedure.

Algumas perguntas:

1 - A procedure PRO_X, realmente existe no schema CARLOS, ou CARLOS é uma
package?
2 - Se a trigger não está no mesmo schema, foi concedido privilégio de
execute para o schema dono da trigger?



Gerson S. de Vasconcelos Júnior
OCA DBA - Oracle Certified Associate
Fone: (81) 9816-0236
Msn: gerson.vasconce...@gmail.com
Skype: gersonvjunior
http://www.diaadiaoracle.com.br/


Em 11 de agosto de 2011 14:45, Carlos Pinto
carlos.pin...@yahoo.com.brescreveu:

 **


 Nao tinha colocado o ;

 Mas continua a dar-me este erro - PLS-00201: identifier 'CARLOS.PRO_X'
 must be declared

 CREATE TRIGGER TRG_H_SII
 AFTER INSERT
 ON H_SII
 REFERENCING NEW AS NEW OLD AS OLD
 FOR EACH ROW

 BEGIN
 CARLOS.PRO_X('10.0.0.1', '21', 'teste', 'teste', 'S', '/SII/');
 END;

 Com os melhores cumprimentos,
 Carlos Pinto

 -Mensagem original-
 De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em
 nome de Álisson Zimermann
 Enviada: quinta-feira, 11 de Agosto de 2011 18:45
 Para: oracle_br@yahoogrupos.com.br
 Assunto: Re: [oracle_br] TRIGGER

 Tá colocando o ; depois da procedure?

 BEGIN
 CARLOS.PRO_X('10.0.0.1', '21', 'teste', 'teste', 'S', '/SII/')
 - ?
 END;

 Em 11 de agosto de 2011 14:41, Carlos Pinto
 carlos.pin...@yahoo.com.brescreveu:

  **
 
 
  Mas da-me erro ao compilar
 
  CREATE TRIGGER TRG_H_SII
  AFTER INSERT
  ON H_SII
  REFERENCING NEW AS NEW OLD AS OLD
  FOR EACH ROW
 
  BEGIN
  CARLOS.PRO_X('10.0.0.1', '21', 'teste', 'teste', 'S', '/SII/') END;
 
  Carlos Pinto
 
  -Mensagem original-
  De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br]
  Em nome de Gerson Junior
  Enviada: quinta-feira, 11 de Agosto de 2011 18:40
  Para: oracle_br@yahoogrupos.com.br
  Assunto: Re: [oracle_br] TRIGGER
 
 
  Nem um nem outro.
 
  Simplesmente chama a procedure.
 
  create os replace trigger
  begin
  sua_procedure;
  end;
  /
 
  Só isso.
 
  Abraço!!
 
  Gerson S. de Vasconcelos Júnior
  OCA DBA - Oracle Certified Associate
  Fone: (81) 9816-0236
  Msn: gerson.vasconce...@gmail.com
  Skype: gersonvjunior
  http://www.diaadiaoracle.com.br/
 
  Em 11 de agosto de 2011 14:30, Carlos Pinto
  carlos.pin...@yahoo.com.brescreveu:
 
   **
  
  
   Ola a todos, Posso executar uma PROCEDURE dentro de um TRIGGER?
  
   Como faço isso? Com o CALL ou EXECUTE?
  
   Obrigado
  
   Carlos Pinto
  
   [As partes desta mensagem que não continham texto foram removidas]
  
  
  
 
  [As partes desta mensagem que não continham texto foram removidas]
 
  
 
  --
  --
  Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de
  inteira
  responsabilidade de seus remetentes.
  Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
  --
  --
  Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package »
  Procedure
  » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE:
  http://www.oraclebr.com.br/
  --
   Links do Yahoo! Grupos
 
 
 

 [As partes desta mensagem que não continham texto foram removidas]

 

 --
 --
 Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de
 inteira
 responsabilidade de seus remetentes.
 Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
 --
 --
 Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package »
 Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO
 ESPAÇO! VISITE: http://www.oraclebr.com.br/
 --
  Links do Yahoo! Grupos

  



[As partes desta mensagem que não continham texto foram removidas]





--
Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--
Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » 
Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: 
http://www.oraclebr.com.br

RE: [oracle_br] TRIGGER

2011-08-11 Por tôpico Carlos Pinto
Era Isso...PERMISSOES. Agora estou com erro na TRIGGER quando faço o
Insert


ORA-01003: no statement parsed
ORA-06512: at CARLOS.PRO_X, line 69
ORA-06512: at CARLOS.TRG_H_SII, line 3
ORA-04088: error during execution of trigger 'CARLOS.TRG_H_SII'



Com os melhores cumprimentos, 
Carlos Pinto


-Mensagem original-
De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em
nome de Gerson Junior
Enviada: quinta-feira, 11 de Agosto de 2011 19:08
Para: oracle_br@yahoogrupos.com.br
Assunto: Re: [oracle_br] TRIGGER

Ele não está encontrando a sua procedure.

Algumas perguntas:

1 - A procedure PRO_X, realmente existe no schema CARLOS, ou CARLOS é uma
package?
2 - Se a trigger não está no mesmo schema, foi concedido privilégio de
execute para o schema dono da trigger?



Gerson S. de Vasconcelos Júnior
OCA DBA - Oracle Certified Associate
Fone: (81) 9816-0236
Msn: gerson.vasconce...@gmail.com
Skype: gersonvjunior
http://www.diaadiaoracle.com.br/


Em 11 de agosto de 2011 14:45, Carlos Pinto
carlos.pin...@yahoo.com.brescreveu:

 **


 Nao tinha colocado o ;

 Mas continua a dar-me este erro - PLS-00201: identifier 'CARLOS.PRO_X'
 must be declared

 CREATE TRIGGER TRG_H_SII
 AFTER INSERT
 ON H_SII
 REFERENCING NEW AS NEW OLD AS OLD
 FOR EACH ROW

 BEGIN
 CARLOS.PRO_X('10.0.0.1', '21', 'teste', 'teste', 'S', '/SII/'); END;

 Com os melhores cumprimentos,
 Carlos Pinto

 -Mensagem original-
 De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] 
 Em nome de Álisson Zimermann
 Enviada: quinta-feira, 11 de Agosto de 2011 18:45
 Para: oracle_br@yahoogrupos.com.br
 Assunto: Re: [oracle_br] TRIGGER

 Tá colocando o ; depois da procedure?

 BEGIN
 CARLOS.PRO_X('10.0.0.1', '21', 'teste', 'teste', 'S', 
 '/SII/')
 - ?
 END;

 Em 11 de agosto de 2011 14:41, Carlos Pinto
 carlos.pin...@yahoo.com.brescreveu:

  **
 
 
  Mas da-me erro ao compilar
 
  CREATE TRIGGER TRG_H_SII
  AFTER INSERT
  ON H_SII
  REFERENCING NEW AS NEW OLD AS OLD
  FOR EACH ROW
 
  BEGIN
  CARLOS.PRO_X('10.0.0.1', '21', 'teste', 'teste', 'S', '/SII/') END;
 
  Carlos Pinto
 
  -Mensagem original-
  De: oracle_br@yahoogrupos.com.br 
  [mailto:oracle_br@yahoogrupos.com.br]
  Em nome de Gerson Junior
  Enviada: quinta-feira, 11 de Agosto de 2011 18:40
  Para: oracle_br@yahoogrupos.com.br
  Assunto: Re: [oracle_br] TRIGGER
 
 
  Nem um nem outro.
 
  Simplesmente chama a procedure.
 
  create os replace trigger
  begin
  sua_procedure;
  end;
  /
 
  Só isso.
 
  Abraço!!
 
  Gerson S. de Vasconcelos Júnior
  OCA DBA - Oracle Certified Associate
  Fone: (81) 9816-0236
  Msn: gerson.vasconce...@gmail.com
  Skype: gersonvjunior
  http://www.diaadiaoracle.com.br/
 
  Em 11 de agosto de 2011 14:30, Carlos Pinto
  carlos.pin...@yahoo.com.brescreveu:
 
   **
  
  
   Ola a todos, Posso executar uma PROCEDURE dentro de um TRIGGER?
  
   Como faço isso? Com o CALL ou EXECUTE?
  
   Obrigado
  
   Carlos Pinto
  
   [As partes desta mensagem que não continham texto foram removidas]
  
  
  
 
  [As partes desta mensagem que não continham texto foram removidas]
 
  
 
  --
  --
  Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de
  inteira
  responsabilidade de seus remetentes.
  Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
  --
  --
  Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » 
  Procedure
  » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO!
VISITE:
  http://www.oraclebr.com.br/
  --
   Links do Yahoo! Grupos
 
 
 

 [As partes desta mensagem que não continham texto foram removidas]

 

 --
 --
 Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de
 inteira
 responsabilidade de seus remetentes.
 Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
 --
 --
 Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » 
 Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO 
 ESPAÇO! VISITE: http://www.oraclebr.com.br/
 --
  Links do Yahoo! Grupos

  



[As partes desta mensagem que não continham texto foram removidas]






--
Atenção! As mensagens do grupo

Re: [oracle_br] TRIGGER

2011-08-11 Por tôpico Emerson Martins
Opa Carlos você deve estar declarando valores demais como parâmetro?Posta a
sua procedure também.
Como o Gerson falou era só declarar a sua procedure dentro do bloco, mas se
ela tem parâmetros a coisa muda.

Att

Emerson Martins
DBA Jr
82 9123-5504
82 9668-1283



Em 11 de agosto de 2011 14:45, Carlos Pinto
carlos.pin...@yahoo.com.brescreveu:

 **


 Nao tinha colocado o ;

 Mas continua a dar-me este erro - PLS-00201: identifier 'CARLOS.PRO_X'
 must be declared


 CREATE TRIGGER TRG_H_SII
 AFTER INSERT
 ON H_SII
 REFERENCING NEW AS NEW OLD AS OLD
 FOR EACH ROW

 BEGIN
 CARLOS.PRO_X('10.0.0.1', '21', 'teste', 'teste', 'S', '/SII/');
 END;

 Com os melhores cumprimentos,
 Carlos Pinto

 -Mensagem original-
 De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em
 nome de Álisson Zimermann
 Enviada: quinta-feira, 11 de Agosto de 2011 18:45

 Para: oracle_br@yahoogrupos.com.br
 Assunto: Re: [oracle_br] TRIGGER

 Tá colocando o ; depois da procedure?

 BEGIN
 CARLOS.PRO_X('10.0.0.1', '21', 'teste', 'teste', 'S', '/SII/')
 - ?
 END;

 Em 11 de agosto de 2011 14:41, Carlos Pinto
 carlos.pin...@yahoo.com.brescreveu:

  **
 
 
  Mas da-me erro ao compilar
 
  CREATE TRIGGER TRG_H_SII
  AFTER INSERT
  ON H_SII
  REFERENCING NEW AS NEW OLD AS OLD
  FOR EACH ROW
 
  BEGIN
  CARLOS.PRO_X('10.0.0.1', '21', 'teste', 'teste', 'S', '/SII/') END;
 
  Carlos Pinto
 
  -Mensagem original-
  De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br]
  Em nome de Gerson Junior
  Enviada: quinta-feira, 11 de Agosto de 2011 18:40
  Para: oracle_br@yahoogrupos.com.br
  Assunto: Re: [oracle_br] TRIGGER
 
 
  Nem um nem outro.
 
  Simplesmente chama a procedure.
 
  create os replace trigger
  begin
  sua_procedure;
  end;
  /
 
  Só isso.
 
  Abraço!!
 
  Gerson S. de Vasconcelos Júnior
  OCA DBA - Oracle Certified Associate
  Fone: (81) 9816-0236
  Msn: gerson.vasconce...@gmail.com
  Skype: gersonvjunior
  http://www.diaadiaoracle.com.br/
 
  Em 11 de agosto de 2011 14:30, Carlos Pinto
  carlos.pin...@yahoo.com.brescreveu:
 
   **
  
  
   Ola a todos, Posso executar uma PROCEDURE dentro de um TRIGGER?
  
   Como faço isso? Com o CALL ou EXECUTE?
  
   Obrigado
  
   Carlos Pinto
  
   [As partes desta mensagem que não continham texto foram removidas]
  
  
  
 
  [As partes desta mensagem que não continham texto foram removidas]
 
  
 
  --
  --
  Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de
  inteira
  responsabilidade de seus remetentes.
  Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
  --
  --
  Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package »
  Procedure
  » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE:
  http://www.oraclebr.com.br/
  --
   Links do Yahoo! Grupos
 
 
 

 [As partes desta mensagem que não continham texto foram removidas]

 

 --
 --
 Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de
 inteira
 responsabilidade de seus remetentes.
 Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
 --
 --
 Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package »
 Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO
 ESPAÇO! VISITE: http://www.oraclebr.com.br/
 --
  Links do Yahoo! Grupos

  



[As partes desta mensagem que não continham texto foram removidas]





--
Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--
Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » 
Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: 
http://www.oraclebr.com.br/  

 Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/

* Para sair deste grupo, envie

Re: [oracle_br] Trigger mutanting

2009-11-25 Por tôpico Arystydes
Olha, veja se consegue fazer isso via procedure !!!
Estou dando uma opinião no escuro (não sei do que se trata) mas, 
dependendo da situação, via aplicação pode chamar uma procedure em alguns 
casos.

Abraço,
Aristides

2009/11/25 Débora Acácio debby_ora...@yahoo.com.br



 Olá

 Estou tendo um problema numa trigger que estou alterando está dando
 erro de trigger mutanting... alguém poderia me ajudar ?

 Grata


 Debby :)



 __
 Veja quais são os assuntos do momento no Yahoo! +Buscados
 http://br.maisbuscados.yahoo.com

 [As partes desta mensagem que não continham texto foram removidas]






-- 
--


Eduardo


[As partes desta mensagem que não continham texto foram removidas]





--
Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
--
Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » 
Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! 
VISITE: http://www.oraclebr.com.br/

 
Links do Yahoo! Grupos




Re: [oracle_br] Trigger mutanting

2009-11-25 Por tôpico Débora Acácio

Faz só um select e por isso estava dando erro.
 
Fiz uma packege e alimentei duas variáveis pela trigger before... e na 
After eu valido com a package...
 
Já está tudo ok
Obrigada...
Debby :)
 

--- Em qua, 25/11/09, Eduardo eduardo.pa...@gmail.com escreveu:


De: Eduardo eduardo.pa...@gmail.com
Assunto: Re: [oracle_br] Trigger mutanting
Para: oracle_br@yahoogrupos.com.br
Data: Quarta-feira, 25 de Novembro de 2009, 11:53


ela está alterando a tabela que a dispara?



2009/11/25 Débora Acácio debby_ora...@yahoo.com.br



 Olá

 Estou tendo um problema numa trigger que estou alterando está dando
 erro de trigger mutanting... alguém poderia me ajudar ?

 Grata


 Debby :)



 __
 Veja quais são os assuntos do momento no Yahoo! +Buscados
 http://br.maisbuscados.yahoo.com

 [As partes desta mensagem que não continham texto foram removidas]

  




-- 
--


Eduardo


[As partes desta mensagem que não continham texto foram removidas]





--
Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--
Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » 
Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: 
http://www.oraclebr.com.br/  

 Links do Yahoo! Grupos





  

Veja quais são os assuntos do momento no Yahoo! +Buscados
http://br.maisbuscados.yahoo.com

[As partes desta mensagem que não continham texto foram removidas]



Re: [oracle_br] Trigger mutanting - Aristides

2009-11-25 Por tôpico Débora Acácio
Obrigada Aristides e todos que me responderam..
 
Fiz uma package e criei uma outra trigger AFTER e resolvi o problema...
 
Sds
 
Debby

--- Em qua, 25/11/09, Arystydes arysty...@bol.com.br escreveu:


De: Arystydes arysty...@bol.com.br
Assunto: Re: [oracle_br] Trigger mutanting
Para: oracle_br@yahoogrupos.com.br
Data: Quarta-feira, 25 de Novembro de 2009, 16:30


Olha, veja se consegue fazer isso via procedure !!!
Estou dando uma opinião no escuro (não sei do que se trata) mas, 
dependendo da situação, via aplicação pode chamar uma procedure em alguns 
casos.

Abraço,
Aristides

2009/11/25 Débora Acácio debby_ora...@yahoo.com.br



 Olá

 Estou tendo um problema numa trigger que estou alterando está dando
 erro de trigger mutanting... alguém poderia me ajudar ?

 Grata


 Debby :)



 __
 Veja quais são os assuntos do momento no Yahoo! +Buscados
 http://br.maisbuscados.yahoo.com

 [As partes desta mensagem que não continham texto foram removidas]






-- 
--


Eduardo


[As partes desta mensagem que não continham texto foram removidas]





--
Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
--
Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » 
Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! 
VISITE: http://www.oraclebr.com.br/

 
Links do Yahoo! Grupos






--
Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--
Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » 
Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: 
http://www.oraclebr.com.br/  

 Links do Yahoo! Grupos





  

Veja quais são os assuntos do momento no Yahoo! +Buscados
http://br.maisbuscados.yahoo.com

[As partes desta mensagem que não continham texto foram removidas]



Re: [oracle_br] TRIGGER chamando PROCEDURE

2009-09-14 Por tôpico José Eduardo Batista Juliano
Vc tem certeza que as colunas SAFRA, EMPRESA, FILIAL,OCMESTRE estão sendo
preenchidos na hora do insert e update? Pois voce pode estar passando
valores nulos pra procedure.

2009/9/14 Cesar Otoganizo da Horta cesarho...@triline.com.br



 Senhores,
 Boa Tarde

 Estou necessitando chamar uma “Procedure” através de uma trigger conforme
 exemplo abaixo:

 CREATE OR REPLACE TRIGGER NOME_TRIGGER
 AFTER INSERT OR UPDATE ON NOME_TABELA
 REFERENCING OLD AS OLD NEW AS NEW
 FOR EACH ROW
 BEGIN
 NOME_PROCEDURE(:NEW.SAFRA, :NEW.EMPRESA, :NEW.FILIAL, :NEW.OCMESTRE);
 END;

 Situação: A trigger NÃO apresenta nenhum erro, e a procedure não é
 executada.

 Alguém pode ajudar?

 Oracle Database 10g Release 10.2.0.4.0 - 64bit Production
 Linux Fedora 64btis

 Cesar O Horta

 




-- 
José Eduardo Batista Juliano
Cel (16)9189-2486
Híade Informática
Consultoria Oracle e desenvolvimento de sistemas.
Ribeirão Preto - SP


[As partes desta mensagem que não continham texto foram removidas]





--
Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--
Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » 
Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: 
http://www.oraclebr.com.br/  

 Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/

* Para sair deste grupo, envie um e-mail para:
oracle_br-unsubscr...@yahoogrupos.com.br

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html




Re: [oracle_br] Trigger para bloqueio de Acesso com PL/SQL ou SQL PLUS

2009-05-19 Por tôpico Duilio Bruniera Junior
E ai brow .
não sei se essa é a mesma trigger que voce ta falando , mais acho que pode
resolver o seu problema da uma olhada.
begin-
create or replace trigger on_logon
  after logon on database
declare
  v_sid number;
  v_isdba   varchar2(10);
  v_program varchar2(30);
begin
  execute immediate 'select distinct sid from sys.v_$mystat'
into v_sid;
  execute immediate 'select program from sys.v_$session where sid = :b1'
into v_program
using v_sid;
  select sys_context('userenv', 'ISDBA') into v_isdba from dual;
  if upper(v_program) = 'PLSQLDEV.EXE'  and v_isdba = 'FALSE' then  -- o
nome do programa tem que ser em maiusculo.
raise_application_error(-20001,'A Ferramenta PL/SQL Developer é limitada
apenas aos DBA'||chr(39)||'s',true);
  end if;
end;
/
end-

2009/5/19 candiurudba candiuru...@yahoo.com.br



 Bom dia coelgas, tudo bom ?

 Vi ha algum tempo atras em um forum, uma trigger que bloqueava acessos de
 usuário que estivessem se conectando com SQL PLUS ou PLSQL DEVELOPR por
 exemplo mas não me recordo com a mesma tinha sido desenvolvida...

 A ideia era bloquear acessos a determinados esquemas com a utilização de
 aplicação de desenvolvimento (SQL PLUS, PL/SQL DEVELOPER. ORACLE SQL
 SEVELOPER, TOAD E ETC).

 Minha ideia seria uma trigger que seria aplicada em um determinado usuário
 e, após o logon do mesmo, estes aplicativos fossem bloqueados.

 Alguem teria alguma luz sobre este assunto ? è justamente para evitar
 acessos indesejados na base de dados...

 abraços

  



[As partes desta mensagem que não continham texto foram removidas]



Re: [oracle_br] TRIGGER - ALTERNATIVA PARA ERRO TABLE TABLE_NAME IS MUTATING

2008-09-25 Por tôpico Alvaro Luiz Mansor Neto
Leonardo.
Manda a trigger do jeito q esta construida hj fazendo favor.
Abraço
Alvaro



Em 24/09/08, Leonardo Souza [EMAIL PROTECTED] escreveu:

   Bom dia srs,

 Estou construindo uma trigger na qual antes de atualizar/deletar um
 registro, tenho que dar um select na própria tabela que está sendo
 modificada, devido a executar joins em outras tabelas.

 Minha dúvida é:

 Como não posso executar uma instrução que necessito na tabela que está
 sendo
 alterada (ver erro abaixo), onde posso armazenar o registro em questão
 numa estrutura na qual possa dar joins em outras tabelas existentes???

 Se eu colocar em um tipo de collection, posso fazer isto: ???

 select
 t1.a,
 t1.b,
 t1.c,
 type_collection.a,
 type_collection.b
 from
 t1
 inner join type_collection 

 ERRO:
 --

 UPDATE WEB.CLIENTES SET DAT_COMPRA = TO_DATE('21/02/08', 'DD/MM/RR')
 WHERE
 ROWID = 'AAAKVQAAQAABpu9AAN'

 One error saving changes to table WEB.CLIENTES:
 Row 1: ORA-04091: table WEB.CLIENTES is mutating, trigger/function may not
 see it
 ORA-06512: at WEB.TRG_CLIENTES, line 58
 ORA-06512: at WEB.TRG_CLIENTES, line 204
 ORA-04088: error during execution of trigger 'WEB.TRG_CLIENTES'

 --

 Att,

 [As partes desta mensagem que não continham texto foram removidas]

 



[As partes desta mensagem que não continham texto foram removidas]



Re: [oracle_br] Trigger com update.

2008-09-24 Por tôpico Jean Carlo
Bom dia, Alvaro.

Muito Obrigado pela ajuda, acabei de fazer as alterações na trigger, conforme 
você me passou e funcionou perfeitamente.

Valeu mesmo.

--
att,
Jean Carlo Stein da Fonseca
Programador PL/SQL e Forms/Reports 6i Oracle.
DBA Oracle Jr. em busca do OCA.
Consultor Oracle Cecrisa/Portinari www.cecrisa.com.br
+55 (48) 9604-6138
Criciúma, Santa Catarina - Brasil


From: Alvaro Luiz Mansor Neto 
Sent: Monday, September 22, 2008 5:03 PM
To: oracle_br@yahoogrupos.com.br 
Subject: Re: [oracle_br] Trigger com update.


Jean. Tudo bem?
O código fica o seguinte:

SQL CREATE TABLE NPS_PROGR_PROXIMA ( FIMPROGR NUMBER, INIPROGR NUMBER,
lotenum NUMBER );

Table created

SQL
SQL CREATE OR REPLACE TRIGGER TGI_NPS_PROGR_PROXIMA_ATU_DATA
2 before UPDATE OF FIMPROGR, INIPROGR ON NPS_PROGR_PROXIMA
3 FOR EACH ROW
4 begin
5 if :old.lotenum = :new.lotenum and ((:new.fimprogr 
:old.fimprogr) or (:new.iniprogr  :old.iniprogr)) then
6 :new.fimprogr := :new.fimprogr;
7 :new.iniprogr := :new.iniprogr;
8 end if;
9 end;
10 /

Trigger created

SQL
SQL insert into NPS_PROGR_PROXIMA values ( 1,2,5 );

1 row inserted

SQL commit;

Commit complete

SQL select * from NPS_PROGR_PROXIMA;

FIMPROGR INIPROGR LOTENUM
-- -- --
1 2 5

SQL
SQL update NPS_PROGR_PROXIMA set fimprogr = 9, INIPROGR = 8 where lotenum =
5;

1 row updated

SQL COMMIT;

Commit complete

SQL select * from NPS_PROGR_PROXIMA;

FIMPROGR INIPROGR LOTENUM
-- -- --
9 8 5

SQL
SQL update NPS_PROGR_PROXIMA set fimprogr = 7, INIPROGR = 7 where lotenum =
7;

0 rows updated

SQL COMMIT;

Commit complete

SQL select * from NPS_PROGR_PROXIMA;

FIMPROGR INIPROGR LOTENUM
-- -- --
9 8 5

Abraço
Alvaro

Em 22/09/08, Jean Carlo [EMAIL PROTECTED] escreveu:

 Ai está.. está é a ultima que tentei rodar.. agora está dando erro de
 conflito de recurso por causa do pragma autonomous_transaction, mais pra
 dar tabela mutante só tirar o pragma.

 CREATE OR REPLACE TRIGGER
 CECRISA_MATRIZ.TGI_NPS_PROGR_PROXIMA_ATU_DATA AFTER
 UPDATE OF FIMPROGR, INIPROGR ON NPS_PROGR_PROXIMA FOR EACH ROW
 declare
 PRAGMA AUTONOMOUS_TRANSACTION;
 begin
 if (:new.fimprogr  :old.fimprogr) or (:new.iniprogr  :old.iniprogr)
 then
 update nps_progr_proxima
 set fimprogr=:new.fimprogr,
 iniprogr=:new.iniprogr
 where lotenum=:new.lotenum;
 end if;
 end;

 valeu Alvaro.

 --
 att,
 Jean Carlo Stein da Fonseca
 Programador PL/SQL e Forms/Reports 6i Oracle.
 DBA Oracle Jr. em busca do OCA.
 Consultor Oracle Cecrisa/Portinari www.cecrisa.com.br
 +55 (48) 9604-6138
 Criciúma, Santa Catarina - Brasil

 From: Alvaro Luiz Mansor Neto
 Sent: Monday, September 22, 2008 3:37 PM
 To: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br
 Subject: Re: [oracle_br] Trigger com update.

 Jean. Manda a sintaxe do create or replace da trigger tb para eu poder te
 dar um help.
 Abraço
 ALvaro

 Em 22/09/08, Jean Carlo [EMAIL PROTECTED]jcthebrother%40hotmail.com
 escreveu:
 
  Tenho uma Trigger com o seguinte sql:
 
  begin
  if (:new.fimprogr  :old.fimprogr) or (:new.iniprogr  :old.iniprogr)
  then
  update tabela
  set fimprogr=:new.fimprogr,
  iniprogr=:new.iniprogr
  where lotenum=:old.lotenum;
  end if;
  end;
 
  Essa trigger é acionada quando é atualizada um desses dois campos
 iniprogr
  ou fimprogr e presciso atualizar todos os registros que tem o mesmo
 lotenum
  do registro que estou atualizando.
  Porem qdo aciono o mesmo dá erro de tabela mutante pois atualiza o mesmo
  registro que estou alterando correto?
 
  Teria como fazer esse sql tirando o registro corrente Ou como posso
  resolver esse problema da tabela mutante??
 
  OBS.: tentei utilizar o pragma autonomous_transaction mais não funcionou.
 
  --
  att,
  Jean Carlo Stein da Fonseca
  Programador PL/SQL e Forms/Reports 6i Oracle.
  DBA Oracle Jr. em busca do OCA.
  Consultor Oracle Cecrisa/Portinari www.cecrisa.com.br
  +55 (48) 9604-6138
  Criciúma, Santa Catarina - Brasil
 
  [As partes desta mensagem que não continham texto foram removidas]
 
 
 

 [As partes desta mensagem que não continham texto foram removidas]

 [As partes desta mensagem que não continham texto foram removidas]

 


[As partes desta mensagem que não continham texto foram removidas]



 

[As partes desta mensagem que não continham texto foram removidas]



Re: [oracle_br] Trigger com update.

2008-09-24 Por tôpico Alvaro Luiz Mansor Neto
Isso aí ...
A trigger do jeito q estava estava errada pois o update é feito de outra
maneira dentro de uma trigger como vc pôde observar. E dentro de uma trigger
para não dar tabela mutante é só não referenciar no comando DML feito a
tabela q a trigger esta referenciando ok ? Essa referencia já é implicita,
ou seja, ela é feita automaticamente. Más precisando estamos aí.
[ ]s
Alvaro


Em 24/09/08, Jean Carlo [EMAIL PROTECTED] escreveu:

   Bom dia, Alvaro.

 Muito Obrigado pela ajuda, acabei de fazer as alterações na trigger,
 conforme você me passou e funcionou perfeitamente.

 Valeu mesmo.

 --
 att,
 Jean Carlo Stein da Fonseca
 Programador PL/SQL e Forms/Reports 6i Oracle.
 DBA Oracle Jr. em busca do OCA.
 Consultor Oracle Cecrisa/Portinari www.cecrisa.com.br
 +55 (48) 9604-6138
 Criciúma, Santa Catarina - Brasil

 From: Alvaro Luiz Mansor Neto
 Sent: Monday, September 22, 2008 5:03 PM
 To: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br
 Subject: Re: [oracle_br] Trigger com update.

 Jean. Tudo bem?
 O código fica o seguinte:

 SQL CREATE TABLE NPS_PROGR_PROXIMA ( FIMPROGR NUMBER, INIPROGR NUMBER,
 lotenum NUMBER );

 Table created

 SQL
 SQL CREATE OR REPLACE TRIGGER TGI_NPS_PROGR_PROXIMA_ATU_DATA
 2 before UPDATE OF FIMPROGR, INIPROGR ON NPS_PROGR_PROXIMA
 3 FOR EACH ROW
 4 begin
 5 if :old.lotenum = :new.lotenum and ((:new.fimprogr 
 :old.fimprogr) or (:new.iniprogr  :old.iniprogr)) then
 6 :new.fimprogr := :new.fimprogr;
 7 :new.iniprogr := :new.iniprogr;
 8 end if;
 9 end;
 10 /

 Trigger created

 SQL
 SQL insert into NPS_PROGR_PROXIMA values ( 1,2,5 );

 1 row inserted

 SQL commit;

 Commit complete

 SQL select * from NPS_PROGR_PROXIMA;

 FIMPROGR INIPROGR LOTENUM
 -- -- --
 1 2 5

 SQL
 SQL update NPS_PROGR_PROXIMA set fimprogr = 9, INIPROGR = 8 where lotenum
 =
 5;

 1 row updated

 SQL COMMIT;

 Commit complete

 SQL select * from NPS_PROGR_PROXIMA;

 FIMPROGR INIPROGR LOTENUM
 -- -- --
 9 8 5

 SQL
 SQL update NPS_PROGR_PROXIMA set fimprogr = 7, INIPROGR = 7 where lotenum
 =
 7;

 0 rows updated

 SQL COMMIT;

 Commit complete

 SQL select * from NPS_PROGR_PROXIMA;

 FIMPROGR INIPROGR LOTENUM
 -- -- --
 9 8 5

 Abraço
 Alvaro

 Em 22/09/08, Jean Carlo [EMAIL PROTECTED]jcthebrother%40hotmail.com
 escreveu:
 
  Ai está.. está é a ultima que tentei rodar.. agora está dando erro de
  conflito de recurso por causa do pragma autonomous_transaction, mais
 pra
  dar tabela mutante só tirar o pragma.
 
  CREATE OR REPLACE TRIGGER
  CECRISA_MATRIZ.TGI_NPS_PROGR_PROXIMA_ATU_DATA AFTER
  UPDATE OF FIMPROGR, INIPROGR ON NPS_PROGR_PROXIMA FOR EACH ROW
  declare
  PRAGMA AUTONOMOUS_TRANSACTION;
  begin
  if (:new.fimprogr  :old.fimprogr) or (:new.iniprogr  :old.iniprogr)
  then
  update nps_progr_proxima
  set fimprogr=:new.fimprogr,
  iniprogr=:new.iniprogr
  where lotenum=:new.lotenum;
  end if;
  end;
 
  valeu Alvaro.
 
  --
  att,
  Jean Carlo Stein da Fonseca
  Programador PL/SQL e Forms/Reports 6i Oracle.
  DBA Oracle Jr. em busca do OCA.
  Consultor Oracle Cecrisa/Portinari www.cecrisa.com.br
  +55 (48) 9604-6138
  Criciúma, Santa Catarina - Brasil
 
  From: Alvaro Luiz Mansor Neto
  Sent: Monday, September 22, 2008 3:37 PM
  To: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.broracle_br%
 40yahoogrupos.com.br
  Subject: Re: [oracle_br] Trigger com update.
 
  Jean. Manda a sintaxe do create or replace da trigger tb para eu poder
 te
  dar um help.
  Abraço
  ALvaro
 
  Em 22/09/08, Jean Carlo [EMAIL PROTECTED]jcthebrother%40hotmail.com
 jcthebrother%40hotmail.com
  escreveu:
  
   Tenho uma Trigger com o seguinte sql:
  
   begin
   if (:new.fimprogr  :old.fimprogr) or (:new.iniprogr  :old.iniprogr)
   then
   update tabela
   set fimprogr=:new.fimprogr,
   iniprogr=:new.iniprogr
   where lotenum=:old.lotenum;
   end if;
   end;
  
   Essa trigger é acionada quando é atualizada um desses dois campos
  iniprogr
   ou fimprogr e presciso atualizar todos os registros que tem o mesmo
  lotenum
   do registro que estou atualizando.
   Porem qdo aciono o mesmo dá erro de tabela mutante pois atualiza o
 mesmo
   registro que estou alterando correto?
  
   Teria como fazer esse sql tirando o registro corrente Ou como posso
   resolver esse problema da tabela mutante??
  
   OBS.: tentei utilizar o pragma autonomous_transaction mais não
 funcionou.
  
   --
   att,
   Jean Carlo Stein da Fonseca
   Programador PL/SQL e Forms/Reports 6i Oracle.
   DBA Oracle Jr. em busca do OCA.
   Consultor Oracle Cecrisa/Portinari www.cecrisa.com.br
   +55 (48) 9604-6138
   Criciúma, Santa Catarina - Brasil
  
   [As partes desta mensagem que não continham texto foram removidas]
  
  
  
 
  [As partes desta mensagem que não continham texto foram removidas]
 
  [As partes desta mensagem que não continham texto foram removidas]
 
 
 

 [As partes desta mensagem que não continham texto foram removidas]

 [As partes desta

Re: [oracle_br] Trigger com update.

2008-09-22 Por tôpico Alvaro Luiz Mansor Neto
Jean. Manda a sintaxe do create or replace da trigger tb para eu poder te
dar um help.
Abraço
ALvaro


Em 22/09/08, Jean Carlo [EMAIL PROTECTED] escreveu:

   Tenho uma Trigger com o seguinte sql:

 begin
 if (:new.fimprogr  :old.fimprogr) or (:new.iniprogr  :old.iniprogr)
 then
 update tabela
 set fimprogr=:new.fimprogr,
 iniprogr=:new.iniprogr
 where lotenum=:old.lotenum;
 end if;
 end;

 Essa trigger é acionada quando é atualizada um desses dois campos iniprogr
 ou fimprogr e presciso atualizar todos os registros que tem o mesmo lotenum
 do registro que estou atualizando.
 Porem qdo aciono o mesmo dá erro de tabela mutante pois atualiza o mesmo
 registro que estou alterando correto?

 Teria como fazer esse sql tirando o registro corrente Ou como posso
 resolver esse problema da tabela mutante??

 OBS.: tentei utilizar o pragma autonomous_transaction mais não funcionou.

 --
 att,
 Jean Carlo Stein da Fonseca
 Programador PL/SQL e Forms/Reports 6i Oracle.
 DBA Oracle Jr. em busca do OCA.
 Consultor Oracle Cecrisa/Portinari www.cecrisa.com.br
 +55 (48) 9604-6138
 Criciúma, Santa Catarina - Brasil

 [As partes desta mensagem que não continham texto foram removidas]

 



[As partes desta mensagem que não continham texto foram removidas]



Re: [oracle_br] Trigger com update.

2008-09-22 Por tôpico Jean Carlo
Ai está.. está é a ultima que tentei rodar.. agora está dando erro de conflito 
de recurso por causa do pragma autonomous_transaction, mais pra dar tabela 
mutante só tirar o pragma.

CREATE OR REPLACE TRIGGER 
CECRISA_MATRIZ.TGI_NPS_PROGR_PROXIMA_ATU_DATA AFTER
UPDATE OF FIMPROGR, INIPROGR ON NPS_PROGR_PROXIMA FOR EACH ROW declare
PRAGMA AUTONOMOUS_TRANSACTION;
begin
  if (:new.fimprogr  :old.fimprogr) or (:new.iniprogr  :old.iniprogr) then
update nps_progr_proxima
set fimprogr=:new.fimprogr,
iniprogr=:new.iniprogr
where lotenum=:new.lotenum;
  end if;
end;

valeu Alvaro.

--
att,
Jean Carlo Stein da Fonseca
Programador PL/SQL e Forms/Reports 6i Oracle.
DBA Oracle Jr. em busca do OCA.
Consultor Oracle Cecrisa/Portinari www.cecrisa.com.br
+55 (48) 9604-6138
Criciúma, Santa Catarina - Brasil


From: Alvaro Luiz Mansor Neto 
Sent: Monday, September 22, 2008 3:37 PM
To: oracle_br@yahoogrupos.com.br 
Subject: Re: [oracle_br] Trigger com update.


Jean. Manda a sintaxe do create or replace da trigger tb para eu poder te
dar um help.
Abraço
ALvaro

Em 22/09/08, Jean Carlo [EMAIL PROTECTED] escreveu:

 Tenho uma Trigger com o seguinte sql:

 begin
 if (:new.fimprogr  :old.fimprogr) or (:new.iniprogr  :old.iniprogr)
 then
 update tabela
 set fimprogr=:new.fimprogr,
 iniprogr=:new.iniprogr
 where lotenum=:old.lotenum;
 end if;
 end;

 Essa trigger é acionada quando é atualizada um desses dois campos iniprogr
 ou fimprogr e presciso atualizar todos os registros que tem o mesmo lotenum
 do registro que estou atualizando.
 Porem qdo aciono o mesmo dá erro de tabela mutante pois atualiza o mesmo
 registro que estou alterando correto?

 Teria como fazer esse sql tirando o registro corrente Ou como posso
 resolver esse problema da tabela mutante??

 OBS.: tentei utilizar o pragma autonomous_transaction mais não funcionou.

 --
 att,
 Jean Carlo Stein da Fonseca
 Programador PL/SQL e Forms/Reports 6i Oracle.
 DBA Oracle Jr. em busca do OCA.
 Consultor Oracle Cecrisa/Portinari www.cecrisa.com.br
 +55 (48) 9604-6138
 Criciúma, Santa Catarina - Brasil

 [As partes desta mensagem que não continham texto foram removidas]

 


[As partes desta mensagem que não continham texto foram removidas]



 

[As partes desta mensagem que não continham texto foram removidas]



Re: [oracle_br] Trigger com update.

2008-09-22 Por tôpico Alvaro Luiz Mansor Neto
Jean. Tudo bem?
O código fica o seguinte:


SQL CREATE TABLE NPS_PROGR_PROXIMA ( FIMPROGR NUMBER, INIPROGR NUMBER,
lotenum NUMBER  );

Table created

SQL
SQL CREATE OR REPLACE TRIGGER TGI_NPS_PROGR_PROXIMA_ATU_DATA
  2  before UPDATE OF FIMPROGR, INIPROGR ON NPS_PROGR_PROXIMA
  3  FOR EACH ROW
  4  begin
  5  if :old.lotenum = :new.lotenum and ((:new.fimprogr 
:old.fimprogr) or (:new.iniprogr  :old.iniprogr)) then
  6:new.fimprogr := :new.fimprogr;
  7:new.iniprogr := :new.iniprogr;
  8  end if;
  9  end;
 10  /

Trigger created

SQL
SQL insert into NPS_PROGR_PROXIMA values ( 1,2,5 );

1 row inserted

SQL commit;

Commit complete

SQL select * from NPS_PROGR_PROXIMA;

  FIMPROGR   INIPROGRLOTENUM
-- -- --
 1  2  5

SQL
SQL update NPS_PROGR_PROXIMA set fimprogr = 9, INIPROGR = 8 where lotenum =
5;

1 row updated

SQL COMMIT;

Commit complete

SQL select * from NPS_PROGR_PROXIMA;

  FIMPROGR   INIPROGRLOTENUM
-- -- --
 9  8  5

SQL
SQL update NPS_PROGR_PROXIMA set fimprogr = 7, INIPROGR = 7 where lotenum =
7;

0 rows updated

SQL COMMIT;

Commit complete

SQL select * from NPS_PROGR_PROXIMA;

  FIMPROGR   INIPROGRLOTENUM
-- -- --
 9  8  5

Abraço
Alvaro


Em 22/09/08, Jean Carlo [EMAIL PROTECTED] escreveu:

   Ai está.. está é a ultima que tentei rodar.. agora está dando erro de
 conflito de recurso por causa do pragma autonomous_transaction, mais pra
 dar tabela mutante só tirar o pragma.

 CREATE OR REPLACE TRIGGER
 CECRISA_MATRIZ.TGI_NPS_PROGR_PROXIMA_ATU_DATA AFTER
 UPDATE OF FIMPROGR, INIPROGR ON NPS_PROGR_PROXIMA FOR EACH ROW
 declare
 PRAGMA AUTONOMOUS_TRANSACTION;
 begin
 if (:new.fimprogr  :old.fimprogr) or (:new.iniprogr  :old.iniprogr)
 then
 update nps_progr_proxima
 set fimprogr=:new.fimprogr,
 iniprogr=:new.iniprogr
 where lotenum=:new.lotenum;
 end if;
 end;

 valeu Alvaro.

 --
 att,
 Jean Carlo Stein da Fonseca
 Programador PL/SQL e Forms/Reports 6i Oracle.
 DBA Oracle Jr. em busca do OCA.
 Consultor Oracle Cecrisa/Portinari www.cecrisa.com.br
 +55 (48) 9604-6138
 Criciúma, Santa Catarina - Brasil

 From: Alvaro Luiz Mansor Neto
 Sent: Monday, September 22, 2008 3:37 PM
 To: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br
 Subject: Re: [oracle_br] Trigger com update.

 Jean. Manda a sintaxe do create or replace da trigger tb para eu poder te
 dar um help.
 Abraço
 ALvaro

 Em 22/09/08, Jean Carlo [EMAIL PROTECTED]jcthebrother%40hotmail.com
 escreveu:
 
  Tenho uma Trigger com o seguinte sql:
 
  begin
  if (:new.fimprogr  :old.fimprogr) or (:new.iniprogr  :old.iniprogr)
  then
  update tabela
  set fimprogr=:new.fimprogr,
  iniprogr=:new.iniprogr
  where lotenum=:old.lotenum;
  end if;
  end;
 
  Essa trigger é acionada quando é atualizada um desses dois campos
 iniprogr
  ou fimprogr e presciso atualizar todos os registros que tem o mesmo
 lotenum
  do registro que estou atualizando.
  Porem qdo aciono o mesmo dá erro de tabela mutante pois atualiza o mesmo
  registro que estou alterando correto?
 
  Teria como fazer esse sql tirando o registro corrente Ou como posso
  resolver esse problema da tabela mutante??
 
  OBS.: tentei utilizar o pragma autonomous_transaction mais não funcionou.
 
  --
  att,
  Jean Carlo Stein da Fonseca
  Programador PL/SQL e Forms/Reports 6i Oracle.
  DBA Oracle Jr. em busca do OCA.
  Consultor Oracle Cecrisa/Portinari www.cecrisa.com.br
  +55 (48) 9604-6138
  Criciúma, Santa Catarina - Brasil
 
  [As partes desta mensagem que não continham texto foram removidas]
 
 
 

 [As partes desta mensagem que não continham texto foram removidas]

 [As partes desta mensagem que não continham texto foram removidas]

 



[As partes desta mensagem que não continham texto foram removidas]



Re: [oracle_br] Trigger after logon

2008-09-16 Por tôpico Rodrigo Mufalani

   Boa tarde Bruno,

 SELECT Upper(Module)
   INTO Programa
   FROM V$SESSION
  WHERE AUDSID = USERENV('sessionid');

   Na boa, program pode ser mudado por um simples rename no EXE, um
usuário mais malandrinho faz bypass nisso mole.

create or replace trigger SYS.TRG_TESTE
after logon on database
  declare
Programa varchar2(100);
  begin
  SELECT Upper(Program)
INTO Programa
FROM V$SESSION
   WHERE AUDSID = USERENV('sessionid');

if Programa = 'TESTE.EXE' then
raise_application_error(-20001, 'Não pode entrar');
end if;
  end;
/

Atenciosamente,

Rodrigo Mufalani
OCP 10g  11g
[EMAIL PROTECTED]
http://mufalani.blogspot.com



 Mensagem Original:
 Data: 14:49:13 16/09/2008
 De: Bruno Fantin [EMAIL PROTECTED]
 Assunto: [oracle_br] Trigger after logon

 Galera.

 Estou tentanto usar uma trigger aftor logon para limitar acessos ao 
 banco. Mas não esta dando certo. O que estou fazendo de errado?

 create or replace trigger TRG_TESTE
   after logon on database
 declare
   Programa varchar2(100);
 begin
 SELECT Upper(Program)
   INTO Programa
   FROM V$SESSION
  WHERE AUDSID = USERENV('sessionid');

   if Programa = 'TESTE.EXE' then
   raise_application_error(-20001, 'Não pode entrar');
   end if;
 end;

 [As partes desta mensagem que não continham texto foram removidas]


 

 --
 Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de 
 inteira responsabilidade de seus remetentes.
 Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
 --
 Funções, Procedures, propostas de emprego - O GRUPO ORACLE_BR TEM 
 SEU PROPRIO ESPAÇO! VISITE: http://www.oraclebr.com.br/
 
  Links do Yahoo! 
 Grupos









Na Oi Internet você ganha ou ganha. Além de acesso grátis com
qualidade, você pode ter contas ilimitadas de email com 1 giga cada uma,
suporte grátis e muito mais. Baixe grátis o Discador Oi em
http://www.oi.com.br/discador e comece a ganhar.

Agora, se o seu negócio é voar alto na internet,
assine Oi Internet Banda Larga e ganhe o modem grátis. Clique em
http://www.oi.com.br/bandalarga e aproveite essa moleza!





Re: [oracle_br] Trigger after logon

2008-09-16 Por tôpico Bruno Fantin
Rodrigo.

Obrigado pela atenção, mas no meu caso, não preciso se preocupar com esse 
mudança no nome do exe.

E mesmo criando a triggre para o SYS não deu certo.

Eu criei um log na triggre, ele entra nela, faz o select certo, retorna o valor 
correto e entra no if, mas por algum motivo ele não dar o erro e nem corta a 
conexão.

Valeu.

Bruno Fantin.

  - Original Message - 
  From: Rodrigo Mufalani 
  To: oracle_br@yahoogrupos.com.br 
  Sent: Tuesday, September 16, 2008 3:00 PM
  Subject: Re: [oracle_br] Trigger after logon



  Boa tarde Bruno,

  SELECT Upper(Module)
  INTO Programa
  FROM V$SESSION
  WHERE AUDSID = USERENV('sessionid');

  Na boa, program pode ser mudado por um simples rename no EXE, um
  usuário mais malandrinho faz bypass nisso mole.

  create or replace trigger SYS.TRG_TESTE
  after logon on database
  declare
  Programa varchar2(100);
  begin
  SELECT Upper(Program)
  INTO Programa
  FROM V$SESSION
  WHERE AUDSID = USERENV('sessionid');

  if Programa = 'TESTE.EXE' then
  raise_application_error(-20001, 'Não pode entrar');
  end if;
  end;
  /

  Atenciosamente,

  Rodrigo Mufalani
  OCP 10g  11g
  [EMAIL PROTECTED]
  http://mufalani.blogspot.com

   Mensagem Original:
   Data: 14:49:13 16/09/2008
   De: Bruno Fantin [EMAIL PROTECTED]
   Assunto: [oracle_br] Trigger after logon

   Galera.
  
   Estou tentanto usar uma trigger aftor logon para limitar acessos ao 
   banco. Mas não esta dando certo. O que estou fazendo de errado?
  
   create or replace trigger TRG_TESTE
   after logon on database
   declare
   Programa varchar2(100);
   begin
   SELECT Upper(Program)
   INTO Programa
   FROM V$SESSION
   WHERE AUDSID = USERENV('sessionid');
  
   if Programa = 'TESTE.EXE' then
   raise_application_error(-20001, 'Não pode entrar');
   end if;
   end;
  
   [As partes desta mensagem que não continham texto foram removidas]
  
  
   
  
   --
   Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de 
   inteira responsabilidade de seus remetentes.
   Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
   --
   Funções, Procedures, propostas de emprego - O GRUPO ORACLE_BR TEM 
   SEU PROPRIO ESPAÇO! VISITE: http://www.oraclebr.com.br/
   -- Links do Yahoo! 
   Grupos
  
  
  
  

  --
  Na Oi Internet você ganha ou ganha. Além de acesso grátis com
  qualidade, você pode ter contas ilimitadas de email com 1 giga cada uma,
  suporte grátis e muito mais. Baixe grátis o Discador Oi em
  http://www.oi.com.br/discador e comece a ganhar.

  Agora, se o seu negócio é voar alto na internet,
  assine Oi Internet Banda Larga e ganhe o modem grátis. Clique em
  http://www.oi.com.br/bandalarga e aproveite essa moleza!



   

[As partes desta mensagem que não continham texto foram removidas]



Re: [oracle_br] Trigger after logon

2008-09-16 Por tôpico Rodrigo Mufalani
Bruno,

Aqui tem uma pronta, acho que na sua só falta um exception, essa
manda e-mail para vc caso alguém esteja tentando acesso.

CREATE OR REPLACE TRIGGER SYS.user_login_trig
AFTER LOGON ON DATABASE
DECLARE
v_username   SYS.gv_$session.username%TYPE;
v_machineSYS.gv_$session.machine%TYPE;
v_commandSYS.gv_$session.command%TYPE;
v_programSYS.gv_$session.program%TYPE;
v_osuser SYS.gv_$session.osuser%TYPE;
v_module SYS.gv_$session.module%TYPE;
v_hora   NUMBER;
v_sidSYS.gv_$session.SID%TYPE;
v_serial#SYS.gv_$session.serial#%TYPE;
v_string  varchar2(1000);
v_connutl_smtp.connection;
v_crlfvarchar2 (2) := chr (13) || chr (10);
v_mesgvarchar2 (1000);
v_instanceSYS.v_$instance.INSTANCE_NAME%TYPE;

BEGIN
SELECT instance_name into v_instance from SYS.v_$instance;

SELECT username,
   machine,
   NVL (command, '0'),
   NVL (program, 'OAS10G'),
   TO_NUMBER (TO_CHAR (SYSDATE, 'HH24')),
 NVL (osuser, 'OAS10G'),
   MODULE,
   SID,
   serial#
  INTO v_username,
   v_machine,
   v_command,
   v_program,
   v_hora,
   v_osuser,
   v_module,
   v_sid,
   v_serial#
  FROM SYS.gv_$session
 WHERE audsid = USERENV ('SESSIONID')
   AND audsid != 0
   AND ROWNUM = 1;

   IF  ( v_username = 'USUARIO_SUA_APPS' AND UPPER(v_module) =
'TESTE.EXE') THEN  -- Bloqueia conexão e envia email

  v_conn := utl_smtp.open_connection ('ip_seu_servidor_correio', 25);
utl_smtp.helo (v_conn, 'ip_seu_servidor_correio');
utl_smtp.mail (v_conn, '[EMAIL PROTECTED]');
   utl_smtp.rcpt (v_conn, '[EMAIL PROTECTED]');
   utl_smtp.rcpt (v_conn, '[EMAIL PROTECTED]');
v_mesg :=
  'Date: '
   || to_char (sysdate, 'dd Mon yy hh24:mi:ss')
   || v_crlf
   || 'From: Mufalani  [EMAIL PROTECTED] '
   || v_crlf
   || 'Subject: Tentativa de acesso a base de dados'
   || v_crlf
   || ''
   || v_crlf
   ||
'***'
   || ''
   || v_crlf
   || ' O usuário ' || v_osuser|| '/'|| v_username|| ' tentou
acesso a base de dados da máquina '|| v_machine || ''
   || v_crlf
   || ' com o programa '|| v_program || ''
   || v_crlf
   || ' na instancia '|| v_instance || ''
   || v_crlf
   || ' Como ele nao deveria ter acesso foi negado!!! '
   || v_crlf
   || ''
   || v_crlf
   || 'Atenciosamente,'
   || v_crlf
   || 'Mufalani'
   || v_crlf
   ||
'***';
utl_smtp.data (v_conn, v_mesg);
utl_smtp.quit (v_conn);
  raise_application_error (-2, 'Não é permitido o acesso usando
este aplicativo!' );
END IF;
EXCEPTION
WHEN NO_DATA_FOUND THEN
   NULL;
END;
/

Atenciosamente,

Rodrigo Mufalani
OCP 10g  11g
[EMAIL PROTECTED]
http://mufalani.blogspot.com



 Mensagem Original:
 Data: 15:06:18 16/09/2008
 De: Bruno Fantin [EMAIL PROTECTED]
 Assunto: Re: [oracle_br] Trigger after logon

 Rodrigo.

 Obrigado pela atenção, mas no meu caso, não preciso se preocupar com 
 esse mudança no nome do exe.

 E mesmo criando a triggre para o SYS não deu certo.

 Eu criei um log na triggre, ele entra nela, faz o select certo, 
 retorna o valor correto e entra no if, mas por algum motivo ele não 
 dar o erro e nem corta a conexão.

 Valeu.

 Bruno Fantin.

   - Original Message -
   From: Rodrigo Mufalani
   To: oracle_br@yahoogrupos.com.br
   Sent: Tuesday, September 16, 2008 3:00 PM
   Subject: Re: [oracle_br] Trigger after logon



   Boa tarde Bruno,

   SELECT Upper(Module)
   INTO Programa
   FROM V$SESSION
   WHERE AUDSID = USERENV('sessionid');

   Na boa, program pode ser mudado por um simples rename no EXE, um
   usuário mais malandrinho faz bypass nisso mole.

   create or replace trigger SYS.TRG_TESTE
   after logon on database
   declare
   Programa varchar2(100);
   begin
   SELECT Upper(Program)
   INTO Programa
   FROM V$SESSION
   WHERE AUDSID = USERENV('sessionid');

   if Programa = 'TESTE.EXE' then
   raise_application_error(-20001, 'Não pode entrar');
   end if;
   end;
   /

   Atenciosamente,

   Rodrigo Mufalani
   OCP 10g  11g
   [EMAIL PROTECTED]
   http://mufalani.blogspot.com

Mensagem Original:
Data: 14:49:13 16/09/2008
De: Bruno Fantin [EMAIL PROTECTED]
Assunto: [oracle_br] Trigger after logon

Galera.
   
Estou tentanto usar uma trigger aftor logon para limitar acessos ao
banco. Mas não esta dando certo. O que estou fazendo de errado?
   
create or replace trigger TRG_TESTE
after logon on database
declare
Programa varchar2(100

Re: [oracle_br] Trigger after logon

2008-09-16 Por tôpico Bruno Fantin
Rodrigo

Com você essa triggre funciona?

Eu implantei ele dessa mesma forma, recebi o email mais ele não bloqueou o 
programa e nem retornou nenhuma mensagem por programa.

Só para constar. O banco é o 10g 10.2.0.4.0 standard e a aplicação que estou 
testando foi criada por mim mesmo, ele somente abre a conexão com o banco e faz 
um select simples.

Falou.

  - Original Message - 
  From: Rodrigo Mufalani 
  To: oracle_br@yahoogrupos.com.br 
  Sent: Tuesday, September 16, 2008 3:18 PM
  Subject: Re: [oracle_br] Trigger after logon


  Bruno,

  Aqui tem uma pronta, acho que na sua só falta um exception, essa
  manda e-mail para vc caso alguém esteja tentando acesso.

  CREATE OR REPLACE TRIGGER SYS.user_login_trig
  AFTER LOGON ON DATABASE
  DECLARE
  v_username SYS.gv_$session.username%TYPE;
  v_machine SYS.gv_$session.machine%TYPE;
  v_command SYS.gv_$session.command%TYPE;
  v_program SYS.gv_$session.program%TYPE;
  v_osuser SYS.gv_$session.osuser%TYPE;
  v_module SYS.gv_$session.module%TYPE;
  v_hora NUMBER;
  v_sid SYS.gv_$session.SID%TYPE;
  v_serial# SYS.gv_$session.serial#%TYPE;
  v_string varchar2(1000);
  v_conn utl_smtp.connection;
  v_crlf varchar2 (2) := chr (13) || chr (10);
  v_mesg varchar2 (1000);
  v_instance SYS.v_$instance.INSTANCE_NAME%TYPE;

  BEGIN
  SELECT instance_name into v_instance from SYS.v_$instance;

  SELECT username,
  machine,
  NVL (command, '0'),
  NVL (program, 'OAS10G'),
  TO_NUMBER (TO_CHAR (SYSDATE, 'HH24')),
  NVL (osuser, 'OAS10G'),
  MODULE,
  SID,
  serial#
  INTO v_username,
  v_machine,
  v_command,
  v_program,
  v_hora,
  v_osuser,
  v_module,
  v_sid,
  v_serial#
  FROM SYS.gv_$session
  WHERE audsid = USERENV ('SESSIONID')
  AND audsid != 0
  AND ROWNUM = 1;

  IF ( v_username = 'USUARIO_SUA_APPS' AND UPPER(v_module) =
  'TESTE.EXE') THEN -- Bloqueia conexão e envia email

  v_conn := utl_smtp.open_connection ('ip_seu_servidor_correio', 25);
  utl_smtp.helo (v_conn, 'ip_seu_servidor_correio');
  utl_smtp.mail (v_conn, '[EMAIL PROTECTED]');
  utl_smtp.rcpt (v_conn, '[EMAIL PROTECTED]');
  utl_smtp.rcpt (v_conn, '[EMAIL PROTECTED]');
  v_mesg :=
  'Date: '
  || to_char (sysdate, 'dd Mon yy hh24:mi:ss')
  || v_crlf
  || 'From: Mufalani [EMAIL PROTECTED] '
  || v_crlf
  || 'Subject: Tentativa de acesso a base de dados'
  || v_crlf
  || ''
  || v_crlf
  ||
  '***'
  || ''
  || v_crlf
  || ' O usuário ' || v_osuser|| '/'|| v_username|| ' tentou
  acesso a base de dados da máquina '|| v_machine || ''
  || v_crlf
  || ' com o programa '|| v_program || ''
  || v_crlf
  || ' na instancia '|| v_instance || ''
  || v_crlf
  || ' Como ele nao deveria ter acesso foi negado!!! '
  || v_crlf
  || ''
  || v_crlf
  || 'Atenciosamente,'
  || v_crlf
  || 'Mufalani'
  || v_crlf
  ||
  '***';
  utl_smtp.data (v_conn, v_mesg);
  utl_smtp.quit (v_conn);
  raise_application_error (-2, 'Não é permitido o acesso usando
  este aplicativo!' );
  END IF;
  EXCEPTION
  WHEN NO_DATA_FOUND THEN
  NULL;
  END;
  /

  Atenciosamente,

  Rodrigo Mufalani
  OCP 10g  11g
  [EMAIL PROTECTED]
  http://mufalani.blogspot.com

   Mensagem Original:
   Data: 15:06:18 16/09/2008
   De: Bruno Fantin [EMAIL PROTECTED]
   Assunto: Re: [oracle_br] Trigger after logon

   Rodrigo.
  
   Obrigado pela atenção, mas no meu caso, não preciso se preocupar com 
   esse mudança no nome do exe.
  
   E mesmo criando a triggre para o SYS não deu certo.
  
   Eu criei um log na triggre, ele entra nela, faz o select certo, 
   retorna o valor correto e entra no if, mas por algum motivo ele não 
   dar o erro e nem corta a conexão.
  
   Valeu.
  
   Bruno Fantin.
  
   - Original Message -
   From: Rodrigo Mufalani
   To: oracle_br@yahoogrupos.com.br
   Sent: Tuesday, September 16, 2008 3:00 PM
   Subject: Re: [oracle_br] Trigger after logon
  
  
  
   Boa tarde Bruno,
  
   SELECT Upper(Module)
   INTO Programa
   FROM V$SESSION
   WHERE AUDSID = USERENV('sessionid');
  
   Na boa, program pode ser mudado por um simples rename no EXE, um
   usuário mais malandrinho faz bypass nisso mole.
  
   create or replace trigger SYS.TRG_TESTE
   after logon on database
   declare
   Programa varchar2(100);
   begin
   SELECT Upper(Program)
   INTO Programa
   FROM V$SESSION
   WHERE AUDSID = USERENV('sessionid');
  
   if Programa = 'TESTE.EXE' then
   raise_application_error(-20001, 'Não pode entrar');
   end if;
   end;
   /
  
   Atenciosamente,
  
   Rodrigo Mufalani
   OCP 10g  11g
   [EMAIL PROTECTED]
   http://mufalani.blogspot.com
  
Mensagem Original:
Data: 14:49:13 16/09/2008
De: Bruno Fantin [EMAIL PROTECTED]
Assunto: [oracle_br] Trigger after logon
  
Galera.
   
Estou tentanto usar uma trigger aftor logon para limitar acessos ao
banco. Mas não esta dando certo. O que estou fazendo de errado?
   
create or replace

Re: [oracle_br] Trigger after logon

2008-09-16 Por tôpico Bruno Fantin
Descobrir porque não funciona.

Se o usuario for da rule DBA ela não funciona.

http://asktom.oracle.com/pls/asktom/f?p=100:11:0P11_QUESTION_ID:1844531724208

  - Original Message - 
  From: Bruno Fantin 
  To: oracle_br@yahoogrupos.com.br 
  Sent: Tuesday, September 16, 2008 3:48 PM
  Subject: Re: [oracle_br] Trigger after logon


  Rodrigo

  Com você essa triggre funciona?

  Eu implantei ele dessa mesma forma, recebi o email mais ele não bloqueou o 
programa e nem retornou nenhuma mensagem por programa.

  Só para constar. O banco é o 10g 10.2.0.4.0 standard e a aplicação que estou 
testando foi criada por mim mesmo, ele somente abre a conexão com o banco e faz 
um select simples.

  Falou.

  - Original Message - 
  From: Rodrigo Mufalani 
  To: oracle_br@yahoogrupos.com.br 
  Sent: Tuesday, September 16, 2008 3:18 PM
  Subject: Re: [oracle_br] Trigger after logon

  Bruno,

  Aqui tem uma pronta, acho que na sua só falta um exception, essa
  manda e-mail para vc caso alguém esteja tentando acesso.

  CREATE OR REPLACE TRIGGER SYS.user_login_trig
  AFTER LOGON ON DATABASE
  DECLARE
  v_username SYS.gv_$session.username%TYPE;
  v_machine SYS.gv_$session.machine%TYPE;
  v_command SYS.gv_$session.command%TYPE;
  v_program SYS.gv_$session.program%TYPE;
  v_osuser SYS.gv_$session.osuser%TYPE;
  v_module SYS.gv_$session.module%TYPE;
  v_hora NUMBER;
  v_sid SYS.gv_$session.SID%TYPE;
  v_serial# SYS.gv_$session.serial#%TYPE;
  v_string varchar2(1000);
  v_conn utl_smtp.connection;
  v_crlf varchar2 (2) := chr (13) || chr (10);
  v_mesg varchar2 (1000);
  v_instance SYS.v_$instance.INSTANCE_NAME%TYPE;

  BEGIN
  SELECT instance_name into v_instance from SYS.v_$instance;

  SELECT username,
  machine,
  NVL (command, '0'),
  NVL (program, 'OAS10G'),
  TO_NUMBER (TO_CHAR (SYSDATE, 'HH24')),
  NVL (osuser, 'OAS10G'),
  MODULE,
  SID,
  serial#
  INTO v_username,
  v_machine,
  v_command,
  v_program,
  v_hora,
  v_osuser,
  v_module,
  v_sid,
  v_serial#
  FROM SYS.gv_$session
  WHERE audsid = USERENV ('SESSIONID')
  AND audsid != 0
  AND ROWNUM = 1;

  IF ( v_username = 'USUARIO_SUA_APPS' AND UPPER(v_module) =
  'TESTE.EXE') THEN -- Bloqueia conexão e envia email

  v_conn := utl_smtp.open_connection ('ip_seu_servidor_correio', 25);
  utl_smtp.helo (v_conn, 'ip_seu_servidor_correio');
  utl_smtp.mail (v_conn, '[EMAIL PROTECTED]');
  utl_smtp.rcpt (v_conn, '[EMAIL PROTECTED]');
  utl_smtp.rcpt (v_conn, '[EMAIL PROTECTED]');
  v_mesg :=
  'Date: '
  || to_char (sysdate, 'dd Mon yy hh24:mi:ss')
  || v_crlf
  || 'From: Mufalani [EMAIL PROTECTED] '
  || v_crlf
  || 'Subject: Tentativa de acesso a base de dados'
  || v_crlf
  || ''
  || v_crlf
  ||
  '***'
  || ''
  || v_crlf
  || ' O usuário ' || v_osuser|| '/'|| v_username|| ' tentou
  acesso a base de dados da máquina '|| v_machine || ''
  || v_crlf
  || ' com o programa '|| v_program || ''
  || v_crlf
  || ' na instancia '|| v_instance || ''
  || v_crlf
  || ' Como ele nao deveria ter acesso foi negado!!! '
  || v_crlf
  || ''
  || v_crlf
  || 'Atenciosamente,'
  || v_crlf
  || 'Mufalani'
  || v_crlf
  ||
  '***';
  utl_smtp.data (v_conn, v_mesg);
  utl_smtp.quit (v_conn);
  raise_application_error (-2, 'Não é permitido o acesso usando
  este aplicativo!' );
  END IF;
  EXCEPTION
  WHEN NO_DATA_FOUND THEN
  NULL;
  END;
  /

  Atenciosamente,

  Rodrigo Mufalani
  OCP 10g  11g
  [EMAIL PROTECTED]
  http://mufalani.blogspot.com

   Mensagem Original:
   Data: 15:06:18 16/09/2008
   De: Bruno Fantin [EMAIL PROTECTED]
   Assunto: Re: [oracle_br] Trigger after logon

   Rodrigo.
  
   Obrigado pela atenção, mas no meu caso, não preciso se preocupar com 
   esse mudança no nome do exe.
  
   E mesmo criando a triggre para o SYS não deu certo.
  
   Eu criei um log na triggre, ele entra nela, faz o select certo, 
   retorna o valor correto e entra no if, mas por algum motivo ele não 
   dar o erro e nem corta a conexão.
  
   Valeu.
  
   Bruno Fantin.
  
   - Original Message -
   From: Rodrigo Mufalani
   To: oracle_br@yahoogrupos.com.br
   Sent: Tuesday, September 16, 2008 3:00 PM
   Subject: Re: [oracle_br] Trigger after logon
  
  
  
   Boa tarde Bruno,
  
   SELECT Upper(Module)
   INTO Programa
   FROM V$SESSION
   WHERE AUDSID = USERENV('sessionid');
  
   Na boa, program pode ser mudado por um simples rename no EXE, um
   usuário mais malandrinho faz bypass nisso mole.
  
   create or replace trigger SYS.TRG_TESTE
   after logon on database
   declare
   Programa varchar2(100);
   begin
   SELECT Upper(Program)
   INTO Programa
   FROM V$SESSION
   WHERE AUDSID = USERENV('sessionid');
  
   if Programa = 'TESTE.EXE' then
   raise_application_error(-20001, 'Não pode entrar');
   end if;
   end;
   /
  
   Atenciosamente,
  
   Rodrigo Mufalani
   OCP 10g  11g
   [EMAIL PROTECTED

Re: [oracle_br] Trigger after logon

2008-09-16 Por tôpico Rodrigo Mufalani

   Meu caro...

 Aí é de acordo com o teste

   IF (v_username = 'USUARIO_SUA_APPS' AND UPPER(v_module) =
'TESTE.EXE') THEN -- Bloqueia conexão e envia email

   No meu caso eu faço teste no usuário e no módulo como eu havia
lhe falado

   quando você se conecta via sqlplus e faz o select da trigger o
que aparece  como o EXE logado aparece o que?

   Se não tivesse funcionando, com certeza não iria mandar para o
fórum. Eu só alterei os dados para não divulgar dados da empresa,
mas essa trigger está em produção e funciona sem problemas para o
que eu quero.

   Acabei de realizar um teste... e recebí isso pelo sqlplus por
exemplo.

 ORA-00604: error ocurred at recursive SQL level 1
 ORA-2: Não é permitido o acesso usando este aplicativo!
 ORA-06512: at line 80

Atenciosamente,

Rodrigo Mufalani
OCP 10g  11g
[EMAIL PROTECTED]
http://mufalani.blogspot.com



 Mensagem Original:
 Data: 15:48:53 16/09/2008
 De: Bruno Fantin [EMAIL PROTECTED]
 Assunto: Re: [oracle_br] Trigger after logon

 Rodrigo

 Com você essa triggre funciona?

 Eu implantei ele dessa mesma forma, recebi o email mais ele não 
 bloqueou o programa e nem retornou nenhuma mensagem por programa.

 Só para constar. O banco é o 10g 10.2.0.4.0 standard e a aplicação 
 que estou testando foi criada por mim mesmo, ele somente abre a 
 conexão com o banco e faz um select simples.

 Falou.

   - Original Message -
   From: Rodrigo Mufalani
   To: oracle_br@yahoogrupos.com.br
   Sent: Tuesday, September 16, 2008 3:18 PM
   Subject: Re: [oracle_br] Trigger after logon


   Bruno,

   Aqui tem uma pronta, acho que na sua só falta um exception, essa
   manda e-mail para vc caso alguém esteja tentando acesso.

   CREATE OR REPLACE TRIGGER SYS.user_login_trig
   AFTER LOGON ON DATABASE
   DECLARE
   v_username SYS.gv_$session.username%TYPE;
   v_machine SYS.gv_$session.machine%TYPE;
   v_command SYS.gv_$session.command%TYPE;
   v_program SYS.gv_$session.program%TYPE;
   v_osuser SYS.gv_$session.osuser%TYPE;
   v_module SYS.gv_$session.module%TYPE;
   v_hora NUMBER;
   v_sid SYS.gv_$session.SID%TYPE;
   v_serial# SYS.gv_$session.serial#%TYPE;
   v_string varchar2(1000);
   v_conn utl_smtp.connection;
   v_crlf varchar2 (2) := chr (13) || chr (10);
   v_mesg varchar2 (1000);
   v_instance SYS.v_$instance.INSTANCE_NAME%TYPE;

   BEGIN
   SELECT instance_name into v_instance from SYS.v_$instance;

   SELECT username,
   machine,
   NVL (command, '0'),
   NVL (program, 'OAS10G'),
   TO_NUMBER (TO_CHAR (SYSDATE, 'HH24')),
   NVL (osuser, 'OAS10G'),
   MODULE,
   SID,
   serial#
   INTO v_username,
   v_machine,
   v_command,
   v_program,
   v_hora,
   v_osuser,
   v_module,
   v_sid,
   v_serial#
   FROM SYS.gv_$session
   WHERE audsid = USERENV ('SESSIONID')
   AND audsid != 0
   AND ROWNUM = 1;

   IF ( v_username = 'USUARIO_SUA_APPS' AND UPPER(v_module) =
   'TESTE.EXE') THEN -- Bloqueia conexão e envia email

   v_conn := utl_smtp.open_connection ('ip_seu_servidor_correio', 25);
   utl_smtp.helo (v_conn, 'ip_seu_servidor_correio');
   utl_smtp.mail (v_conn, '[EMAIL PROTECTED]');
   utl_smtp.rcpt (v_conn, '[EMAIL PROTECTED]');
   utl_smtp.rcpt (v_conn, '[EMAIL PROTECTED]');
   v_mesg :=
   'Date: '
   || to_char (sysdate, 'dd Mon yy hh24:mi:ss')
   || v_crlf
   || 'From: Mufalani [EMAIL PROTECTED] '
   || v_crlf
   || 'Subject: Tentativa de acesso a base de dados'
   || v_crlf
   || ''
   || v_crlf
   ||
   
 '***'
   || ''
   || v_crlf
   || ' O usuário ' || v_osuser|| '/'|| v_username|| ' tentou
   acesso a base de dados da máquina '|| v_machine || ''
   || v_crlf
   || ' com o programa '|| v_program || ''
   || v_crlf
   || ' na instancia '|| v_instance || ''
   || v_crlf
   || ' Como ele nao deveria ter acesso foi negado!!! '
   || v_crlf
   || ''
   || v_crlf
   || 'Atenciosamente,'
   || v_crlf
   || 'Mufalani'
   || v_crlf
   ||
   
 '***';
   utl_smtp.data (v_conn, v_mesg);
   utl_smtp.quit (v_conn);
   raise_application_error (-2, 'Não é permitido o acesso usando
   este aplicativo!' );
   END IF;
   EXCEPTION
   WHEN NO_DATA_FOUND THEN
   NULL;
   END;
   /

   Atenciosamente,

   Rodrigo Mufalani
   OCP 10g  11g
   [EMAIL PROTECTED]
   http://mufalani.blogspot.com

Mensagem Original:
Data: 15:06:18 16/09/2008
De: Bruno Fantin [EMAIL PROTECTED]
Assunto: Re: [oracle_br] Trigger after logon

Rodrigo.
   
Obrigado pela atenção, mas no meu caso, não preciso se preocupar com
esse mudança no nome do exe.
   
E mesmo criando a triggre para o SYS não deu certo.
   
Eu criei um log na triggre, ele entra nela, faz o select certo,
retorna o valor correto e entra no if, mas por algum motivo ele não
dar o erro e nem corta a conexão.
   
Valeu.
   
Bruno Fantin.
   
- Original Message -
From: Rodrigo

Re: [oracle_br] Trigger after logon

2008-09-16 Por tôpico Bruno Fantin
Rodrigo.

Muito obrigado pela ajuda, mais como mandei no email anterior, o problema é com 
o usuário que é DBA.

Sem mais.

Bruno Fantin.

  - Original Message - 
  From: Rodrigo Mufalani 
  To: oracle_br@yahoogrupos.com.br 
  Sent: Tuesday, September 16, 2008 5:35 PM
  Subject: Re: [oracle_br] Trigger after logon



  Meu caro...

  Aí é de acordo com o teste

  IF (v_username = 'USUARIO_SUA_APPS' AND UPPER(v_module) =
  'TESTE.EXE') THEN -- Bloqueia conexão e envia email

  No meu caso eu faço teste no usuário e no módulo como eu havia
  lhe falado

  quando você se conecta via sqlplus e faz o select da trigger o
  que aparece como o EXE logado aparece o que?

  Se não tivesse funcionando, com certeza não iria mandar para o
  fórum. Eu só alterei os dados para não divulgar dados da empresa,
  mas essa trigger está em produção e funciona sem problemas para o
  que eu quero.

  Acabei de realizar um teste... e recebí isso pelo sqlplus por
  exemplo.

  ORA-00604: error ocurred at recursive SQL level 1
  ORA-2: Não é permitido o acesso usando este aplicativo!
  ORA-06512: at line 80

  Atenciosamente,

  Rodrigo Mufalani
  OCP 10g  11g
  [EMAIL PROTECTED]
  http://mufalani.blogspot.com

   Mensagem Original:
   Data: 15:48:53 16/09/2008
   De: Bruno Fantin [EMAIL PROTECTED]
   Assunto: Re: [oracle_br] Trigger after logon

   Rodrigo
  
   Com você essa triggre funciona?
  
   Eu implantei ele dessa mesma forma, recebi o email mais ele não 
   bloqueou o programa e nem retornou nenhuma mensagem por programa.
  
   Só para constar. O banco é o 10g 10.2.0.4.0 standard e a aplicação 
   que estou testando foi criada por mim mesmo, ele somente abre a 
   conexão com o banco e faz um select simples.
  
   Falou.
  
   - Original Message -
   From: Rodrigo Mufalani
   To: oracle_br@yahoogrupos.com.br
   Sent: Tuesday, September 16, 2008 3:18 PM
   Subject: Re: [oracle_br] Trigger after logon
  
  
   Bruno,
  
   Aqui tem uma pronta, acho que na sua só falta um exception, essa
   manda e-mail para vc caso alguém esteja tentando acesso.
  
   CREATE OR REPLACE TRIGGER SYS.user_login_trig
   AFTER LOGON ON DATABASE
   DECLARE
   v_username SYS.gv_$session.username%TYPE;
   v_machine SYS.gv_$session.machine%TYPE;
   v_command SYS.gv_$session.command%TYPE;
   v_program SYS.gv_$session.program%TYPE;
   v_osuser SYS.gv_$session.osuser%TYPE;
   v_module SYS.gv_$session.module%TYPE;
   v_hora NUMBER;
   v_sid SYS.gv_$session.SID%TYPE;
   v_serial# SYS.gv_$session.serial#%TYPE;
   v_string varchar2(1000);
   v_conn utl_smtp.connection;
   v_crlf varchar2 (2) := chr (13) || chr (10);
   v_mesg varchar2 (1000);
   v_instance SYS.v_$instance.INSTANCE_NAME%TYPE;
  
   BEGIN
   SELECT instance_name into v_instance from SYS.v_$instance;
  
   SELECT username,
   machine,
   NVL (command, '0'),
   NVL (program, 'OAS10G'),
   TO_NUMBER (TO_CHAR (SYSDATE, 'HH24')),
   NVL (osuser, 'OAS10G'),
   MODULE,
   SID,
   serial#
   INTO v_username,
   v_machine,
   v_command,
   v_program,
   v_hora,
   v_osuser,
   v_module,
   v_sid,
   v_serial#
   FROM SYS.gv_$session
   WHERE audsid = USERENV ('SESSIONID')
   AND audsid != 0
   AND ROWNUM = 1;
  
   IF ( v_username = 'USUARIO_SUA_APPS' AND UPPER(v_module) =
   'TESTE.EXE') THEN -- Bloqueia conexão e envia email
  
   v_conn := utl_smtp.open_connection ('ip_seu_servidor_correio', 25);
   utl_smtp.helo (v_conn, 'ip_seu_servidor_correio');
   utl_smtp.mail (v_conn, '[EMAIL PROTECTED]');
   utl_smtp.rcpt (v_conn, '[EMAIL PROTECTED]');
   utl_smtp.rcpt (v_conn, '[EMAIL PROTECTED]');
   v_mesg :=
   'Date: '
   || to_char (sysdate, 'dd Mon yy hh24:mi:ss')
   || v_crlf
   || 'From: Mufalani [EMAIL PROTECTED] '
   || v_crlf
   || 'Subject: Tentativa de acesso a base de dados'
   || v_crlf
   || ''
   || v_crlf
   ||
   
   
'***'
   || ''
   || v_crlf
   || ' O usuário ' || v_osuser|| '/'|| v_username|| ' tentou
   acesso a base de dados da máquina '|| v_machine || ''
   || v_crlf
   || ' com o programa '|| v_program || ''
   || v_crlf
   || ' na instancia '|| v_instance || ''
   || v_crlf
   || ' Como ele nao deveria ter acesso foi negado!!! '
   || v_crlf
   || ''
   || v_crlf
   || 'Atenciosamente,'
   || v_crlf
   || 'Mufalani'
   || v_crlf
   ||
   
   
'***';
   utl_smtp.data (v_conn, v_mesg);
   utl_smtp.quit (v_conn);
   raise_application_error (-2, 'Não é permitido o acesso usando
   este aplicativo!' );
   END IF;
   EXCEPTION
   WHEN NO_DATA_FOUND THEN
   NULL;
   END;
   /
  
   Atenciosamente,
  
   Rodrigo Mufalani
   OCP 10g  11g
   [EMAIL PROTECTED]
   http://mufalani.blogspot.com
  
Mensagem Original:
Data: 15:06:18 16/09/2008
De: Bruno Fantin [EMAIL PROTECTED]
Assunto: Re: [oracle_br] Trigger after logon
  
Rodrigo.
   
Obrigado pela atenção, mas no meu caso, não preciso se preocupar

Re: [oracle_br] trigger em sql server

2008-07-03 Por tôpico Rosivaldo
Você pode utilizar os recursos de FGA (fine-grained auditing), dá uma
olhada em: 
http://download.oracle.com/docs/cd/B19306_01/network.102/b14266/auditing.htm#DBSEG525

Lá já tem muita coisa de exemplo, e isso é bastante poderoso, se
quiser pode até fazer auditoria em selects com cláusulas específicas.

2008/7/3 Eduardo [EMAIL PROTECTED]:

 Seria melhor você especificar a pergunta, senão não dá para entender o que
 você quer.

 - Original Message -
 From: fabiana_lopes123
 To: oracle_br@yahoogrupos.com.br
 Sent: Wednesday, July 02, 2008 3:09 PM
 Subject: [oracle_br] trigger em sql server

 Boa tarde a todos,

 Eu estou tentando fazer um trigger para auditoria em uma tabela, porém
 não achei comando equivalente ao deleting e ao inserting. Se alguem
 puder me ajudar eu agradeço.

 Obrigada =]

 --

 No virus found in this incoming message.
 Checked by AVG.
 Version: 7.5.526 / Virus Database: 270.4.3/1524 - Release Date: 28/6/2008
 19:42

 [As partes desta mensagem que não continham texto foram removidas]

 



-- 
Rosivaldo Azevedo Ramalho
mail/msn: [EMAIL PROTECTED]
web: http://rosivaldo.goodiez.net
+55 83 8893 8281


Re: [oracle_br] trigger em sql server

2008-07-02 Por tôpico José Costacurta
CREATE TRIGGER [TRIGGER NAME] ON [dbo].[TABELA]
FOR INSERT, UPDATE, DELETE
AS

Deixe apenas as opções que quiser


fabiana_lopes123 wrote:

 Boa tarde a todos,

 Eu estou tentando fazer um trigger para auditoria em uma tabela, porém
 não achei comando equivalente ao deleting e ao inserting. Se alguem
 puder me ajudar eu agradeço.

 Obrigada =]

  


Re: [oracle_br] trigger em sql server

2008-07-02 Por tôpico Eduardo

Seria melhor você especificar a pergunta, senão não dá para entender o que 
você quer.

  - Original Message - 
  From: fabiana_lopes123 
  To: oracle_br@yahoogrupos.com.br 
  Sent: Wednesday, July 02, 2008 3:09 PM
  Subject: [oracle_br] trigger em sql server


  Boa tarde a todos, 

  Eu estou tentando fazer um trigger para auditoria em uma tabela, porém 
  não achei comando equivalente ao deleting e ao inserting. Se alguem 
  puder me ajudar eu agradeço.

  Obrigada =]



   


--


  No virus found in this incoming message.
  Checked by AVG. 
  Version: 7.5.526 / Virus Database: 270.4.3/1524 - Release Date: 28/6/2008 
19:42


[As partes desta mensagem que não continham texto foram removidas]



Re: [oracle_br] Trigger para matar usuarios

2008-03-04 Por tôpico Flavio Cardoso
Voce nao precisa criar isso. 
Voce pode criar um PROFILE que tem o tempo maximo de conexão que voce quer que 
ele tenha. E depois definir esse profile como default dos usuarios que voce 
quer derrubar. Pode ainda configurar tempo máximo de idle, uso de CPU por 
usuario, sessao, uso de PGA por sessao, etc

Abcos!
Flavio 
Salvador/BA

  - Original Message - 
  From: Eduardo 
  To: oracle_br@yahoogrupos.com.br 
  Sent: Tuesday, March 04, 2008 2:30 PM
  Subject: [oracle_br] Trigger para matar usuarios


  Senhores,

  gostaria de criar uma trigger para derrubar os usuarios depois um certo
  tempo logado no banco.
  Alguém poderia me passar o caminho das pedras?

  create or replace trigger you_may_not_login

  after logon on database

  begin

   Aqui eu usaria a V$SESSION ?? Algum while??

  end if;

  end;

  Obrigado.

  [As partes desta mensagem que não continham texto foram removidas]



   

[As partes desta mensagem que não continham texto foram removidas]



Re: [oracle_br] Trigger para matar usuarios

2008-03-04 Por tôpico Rogério Falconi
manda mastigado que ele pode errar... na boa..

Em 04/03/08, Flavio Cardoso [EMAIL PROTECTED] escreveu:

   Voce nao precisa criar isso.
 Voce pode criar um PROFILE que tem o tempo maximo de conexão que voce quer
 que ele tenha. E depois definir esse profile como default dos usuarios que
 voce quer derrubar. Pode ainda configurar tempo máximo de idle, uso de CPU
 por usuario, sessao, uso de PGA por sessao, etc

 Abcos!
 Flavio
 Salvador/BA

 - Original Message -
 From: Eduardo
 To: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br
 Sent: Tuesday, March 04, 2008 2:30 PM
 Subject: [oracle_br] Trigger para matar usuarios

 Senhores,

 gostaria de criar uma trigger para derrubar os usuarios depois um certo
 tempo logado no banco.
 Alguém poderia me passar o caminho das pedras?

 create or replace trigger you_may_not_login

 after logon on database

 begin

  Aqui eu usaria a V$SESSION ?? Algum while??

 end if;

 end;

 Obrigado.

 [As partes desta mensagem que não continham texto foram removidas]

 [As partes desta mensagem que não continham texto foram removidas]

  



[As partes desta mensagem que não continham texto foram removidas]



Re: [oracle_br] Trigger para matar usuarios

2008-03-04 Por tôpico Flavio Cardoso
Tudo bem, 
Nesse site tá bem explicado:
http://www.psoug.org/reference/profiles.html

Lembre-se que voce deve colocar no seu init.ora  o seguinte parametro antes de 
usar essas opções:
RESOURCE_LIMIT=TRUE

Mas lembre-se: Use essa feature com cuidado!!

Abcos,
Flavio

  - Original Message - 
  From: Rogério Falconi 
  To: oracle_br@yahoogrupos.com.br 
  Sent: Tuesday, March 04, 2008 3:49 PM
  Subject: Re: [oracle_br] Trigger para matar usuarios


  manda mastigado que ele pode errar... na boa..

  Em 04/03/08, Flavio Cardoso [EMAIL PROTECTED] escreveu:
  
   Voce nao precisa criar isso.
   Voce pode criar um PROFILE que tem o tempo maximo de conexão que voce quer
   que ele tenha. E depois definir esse profile como default dos usuarios que
   voce quer derrubar. Pode ainda configurar tempo máximo de idle, uso de CPU
   por usuario, sessao, uso de PGA por sessao, etc
  
   Abcos!
   Flavio
   Salvador/BA
  
   - Original Message -
   From: Eduardo
   To: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br
   Sent: Tuesday, March 04, 2008 2:30 PM
   Subject: [oracle_br] Trigger para matar usuarios
  
   Senhores,
  
   gostaria de criar uma trigger para derrubar os usuarios depois um certo
   tempo logado no banco.
   Alguém poderia me passar o caminho das pedras?
  
   create or replace trigger you_may_not_login
  
   after logon on database
  
   begin
  
    Aqui eu usaria a V$SESSION ?? Algum while??
  
   end if;
  
   end;
  
   Obrigado.
  
   [As partes desta mensagem que não continham texto foram removidas]
  
   [As partes desta mensagem que não continham texto foram removidas]
  
   
  

  [As partes desta mensagem que não continham texto foram removidas]



   

[As partes desta mensagem que não continham texto foram removidas]



Re: [oracle_br] TRIGGER!!!!

2008-01-28 Por tôpico Gleyson Melo
Fala Manoel,

Se você estiver utilizando DIRECT PATH (parâmetro direct=true), então a
trigger não será executada.

Em 28/01/08, Manoel [EMAIL PROTECTED] escreveu:

   Saudações,

 Tenho um Sistema que faz carga de arquivos via sqlloder o dia todo
 uma duvida se ativar uma trigger ater insert para para atualizar um
 campo dessa mesma tabela onde as cargas poderei ter conflitos na
 gravação dessa tabela?

 Desde já grato pela atenção de todos

  




-- 
Atenciosamente,
Gleyson Melo
Oracle Database 10g Administrator Certified Professional


[As partes desta mensagem que não continham texto foram removidas]



Re: [oracle_br] Trigger

2007-05-12 Por tôpico Valdair Matos
Beleza Renato,

Segui sua proposta de solução e funcionou. Realmente os scripts de criação das 
tabelas que enviei estavam incompletos (conforme também citaram Bruno e 
Rafael), mas no banco estavam criados os campos corretamente. 

Renato Deggau [EMAIL PROTECTED] escreveu:  
Valdair
 
 algumas considerações:
 
 - o script que voce mandou de criação de tabelas não referencia a coluna
 CD_UF que voce usa na trigger;
 - voce tem certeza que a sua trigger compilou? Voce recebeu a msg Gatilho
 criado.? ou recebeu Advertência: Gatilho criado com erros de compilação.?
 o Codigo que voce mandou nao compila com as tabelas mandadas
 - finalmente, a proposta de solução do teu problema: no teu comando insert
 da trigger, para os campos da tabela atual que devem ser inseridos, voce
 deve referencia-los como :new, pois referencia-se ao valores da tabela atual
 que está sofrendo a inserção
 
 obs: tireu a UF da trigger abaixo pois nao constava da tabela
 
 CREATE OR REPLACE TRIGGER TRG_ONINSCIDADE BEFORE INSERT
 ON CIDADE
 FOR EACH ROW
 BEGIN
 INSERT INTO CIDADE2(CD_CID,NM_CID)
 VALUES(:new.CD_CID, :new.NM_CId);
 END TRG_ONINSCIDADE;
 
 Renato Deggau
 
 On 5/11/07, valdair_matos [EMAIL PROTECTED] wrote:
 
Olá, sou novato no grupo e também no oracle
 
  estou tentando aprender a criação e utilização de triggers
  nao consigo entender o que há de errado na trigger abaixo
 
  CREATE OR REPLACE TRIGGER UNISUL.TRG_ONINSCIDADE BEFORE INSERT
  ON UNISUL.CIDADE
  FOR EACH ROW
  BEGIN
  INSERT INTO UNISUL.CIDADE2(CD_CID,NM_CID,CD_UF)
  VALUES(UNISUL.CIDADE.CD_CID,UNISUL.CIDADE.NM_CID,UNISUL.CIDADE.CD_UF);
  END UNISUL.TRG_ONINSCIDADE;
 
  o código acima é um exemplo do que estou querendo fazer: quando
  inserir um registro em uma tabela automaticamente inserir o registro
  em uma segunda tabela.
 
  Consigo compilar, mas quando vou inserir um registro na tabela cidade
  ocorre o erro:
  ORA-04098: gatilho 'UNISUL.TRG_ONINSCIDADE' é inválido e a revalidação
  falhou
 
  codigo das tabelas
 
  Create table CIDADE (
  CD_CID Number(5,0) NOT NULL ,
  NM_CID Varchar2 (40) NOT NULL ,
  Constraint CIDADE_PK primary key (CD_CID)
  )
 
  Create table CIDADE2 (
  CD_CID Number(5,0) NOT NULL ,
  NM_CID Varchar2 (40) NOT NULL ,
  Constraint CIDADE_PK primary key (CD_CID)
  )
 
   
 
 
 [As partes desta mensagem que não continham texto foram removidas]
 
 
 
   




-
Valdair Matos 
Braço do Norte - SC - Brasil


 __
Fale com seus amigos  de graça com o novo Yahoo! Messenger 
http://br.messenger.yahoo.com/ 

[As partes desta mensagem que não continham texto foram removidas]



Re: [oracle_br] Trigger

2007-05-11 Por tôpico Rafael Alexandre Schmitt
Bom, você criou a tabela cidade2 com os campos cd_cid e nm_cid , e no insert 
você tenta inserir cd_cid,nm_cid e cd_uf (?) .
O campo cd_uf não existe na tabela cidade2 nem na tabela cidade.

--
Rafael Alexandre Schmitt
[EMAIL PROTECTED]  ||  www.hbtec.com.br
Blumenau - Santa Catarina

  - Original Message - 
  From: valdair_matos 
  To: oracle_br@yahoogrupos.com.br 
  Sent: Friday, May 11, 2007 1:02 AM
  Subject: [oracle_br] Trigger


  Olá, sou novato no grupo e também no oracle

  estou tentando aprender a criação e utilização de triggers
  nao consigo entender o que há de errado na trigger abaixo

  CREATE OR REPLACE TRIGGER UNISUL.TRG_ONINSCIDADE BEFORE INSERT
  ON UNISUL.CIDADE
  FOR EACH ROW
  BEGIN
  INSERT INTO UNISUL.CIDADE2(CD_CID,NM_CID,CD_UF)
  VALUES(UNISUL.CIDADE.CD_CID,UNISUL.CIDADE.NM_CID,UNISUL.CIDADE.CD_UF);
  END UNISUL.TRG_ONINSCIDADE;

  o código acima é um exemplo do que estou querendo fazer: quando
  inserir um registro em uma tabela automaticamente inserir o registro
  em uma segunda tabela.

  Consigo compilar, mas quando vou inserir um registro na tabela cidade
  ocorre o erro: 
  ORA-04098: gatilho 'UNISUL.TRG_ONINSCIDADE' é inválido e a revalidação
  falhou

  codigo das tabelas

  Create table CIDADE (
  CD_CID Number(5,0) NOT NULL ,
  NM_CID Varchar2 (40) NOT NULL ,
  Constraint CIDADE_PK primary key (CD_CID) 
  ) 

  Create table CIDADE2 (
  CD_CID Number(5,0) NOT NULL ,
  NM_CID Varchar2 (40) NOT NULL ,
  Constraint CIDADE_PK primary key (CD_CID) 
  ) 



   


--
  Esta mensagem foi verificada pelo E-mail Protegido Terra.
  Scan engine: McAfee VirusScan / Atualizado em 10/05/2007 / Versão: 5.1.00/5028
  Proteja o seu e-mail Terra: http://mail.terra.com.br/ 



[As partes desta mensagem que não continham texto foram removidas]



Re: [oracle_br] Trigger

2007-05-11 Por tôpico Renato Deggau
Valdair

algumas considerações:

- o script que voce mandou de criação de tabelas não referencia a coluna
CD_UF que voce usa na trigger;
- voce tem certeza que a sua trigger compilou? Voce recebeu a msg Gatilho
criado.? ou recebeu Advertência: Gatilho criado com erros de compilação.?
o Codigo que voce mandou nao compila com as tabelas mandadas
- finalmente, a proposta de solução do teu problema: no teu comando insert
da trigger, para os campos da tabela atual que devem ser inseridos, voce
deve referencia-los como :new, pois referencia-se ao valores da tabela atual
que está sofrendo a inserção

obs: tireu a UF da trigger abaixo pois nao constava da tabela

CREATE OR REPLACE TRIGGER TRG_ONINSCIDADE BEFORE INSERT
ON CIDADE
FOR EACH ROW
BEGIN
INSERT INTO CIDADE2(CD_CID,NM_CID)
VALUES(:new.CD_CID, :new.NM_CId);
END TRG_ONINSCIDADE;

Renato Deggau


On 5/11/07, valdair_matos [EMAIL PROTECTED] wrote:

   Olá, sou novato no grupo e também no oracle

 estou tentando aprender a criação e utilização de triggers
 nao consigo entender o que há de errado na trigger abaixo

 CREATE OR REPLACE TRIGGER UNISUL.TRG_ONINSCIDADE BEFORE INSERT
 ON UNISUL.CIDADE
 FOR EACH ROW
 BEGIN
 INSERT INTO UNISUL.CIDADE2(CD_CID,NM_CID,CD_UF)
 VALUES(UNISUL.CIDADE.CD_CID,UNISUL.CIDADE.NM_CID,UNISUL.CIDADE.CD_UF);
 END UNISUL.TRG_ONINSCIDADE;

 o código acima é um exemplo do que estou querendo fazer: quando
 inserir um registro em uma tabela automaticamente inserir o registro
 em uma segunda tabela.

 Consigo compilar, mas quando vou inserir um registro na tabela cidade
 ocorre o erro:
 ORA-04098: gatilho 'UNISUL.TRG_ONINSCIDADE' é inválido e a revalidação
 falhou

 codigo das tabelas

 Create table CIDADE (
 CD_CID Number(5,0) NOT NULL ,
 NM_CID Varchar2 (40) NOT NULL ,
 Constraint CIDADE_PK primary key (CD_CID)
 )

 Create table CIDADE2 (
 CD_CID Number(5,0) NOT NULL ,
 NM_CID Varchar2 (40) NOT NULL ,
 Constraint CIDADE_PK primary key (CD_CID)
 )

  



[As partes desta mensagem que não continham texto foram removidas]



Re: [oracle_br] Trigger ServerError ?

2007-05-02 Por tôpico Marcio Portes
Exemplo em
http://mportes.blogspot.com/2006/01/trigger-after-servererror.html

On 5/2/07, Welvis Douglas Silva Moreto [EMAIL PROTECTED] wrote:

   Olá, eu estou fazendo um trigger de SERVERERROR, eu eu gostaria de pegar
 o Sql que estava sendo executando no momento
 do erro, alguem sabe como eu posso fazer isso?
 att,
 Welvis Douglas
 Msn : [EMAIL PROTECTED] welvis_douglas%40hotmail.com

 __
 Fale com seus amigos de graça com o novo Yahoo! Messenger
 http://br.messenger.yahoo.com/

 [As partes desta mensagem que não continham texto foram removidas]

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


[As partes desta mensagem que não continham texto foram removidas]



Re: [oracle_br] Trigger para capturar erros

2007-04-20 Por tôpico rflribeiro
O alert e o dump não são o suficiente?

Reginaldo Ribeiro
Administrador de Bancos de Dados
Oracle Certified Associated 10g

DBcom IT Experts
skype: dbcom_it_experts
mobile: 551192344290 551196718255
e-mail: [EMAIL PROTECTED]
site: www.dbcom.com.br



Fábio Gibon - Comex System wrote:
 Alguém tem material sobre trigger para coletar erros do banco? (algo bem 
 objetivo com exemplos...)

 abraços

 Gibon



Re: [oracle_br] Trigger para capturar erros

2007-04-20 Por tôpico Marcio Portes
Um começo.
http://mportes.blogspot.com/2006/01/trigger-after-servererror.html

On 4/20/07, Fábio Gibon - Comex System [EMAIL PROTECTED] wrote:

 Alguém tem material sobre trigger para coletar erros do banco? (algo bem
 objetivo com exemplos...)

 abraços

 Gibon

 [As partes desta mensagem que não continham texto foram removidas]



 Apostilas » Dicas e Exemplos » Funções » Mundo Oracle » Package »
 Procedure » Scripts » Tutoriais acesse:
 http://www.oraclebr.com.br/codigo/ListaCodigo.php

 --
 Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de
 inteira responsabilidade de seus remetentes.
 Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/

 --
 O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE:
 http://www.oraclebr.com.br/

 
 Links do Yahoo! Grupos





-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


[As partes desta mensagem que não continham texto foram removidas]



Re: [oracle_br] Trigger para capturar erros

2007-04-20 Por tôpico Fábio Gibon - Comex System
infelizmente nao...estes já percorri de ponta a ponta... mas valeu...
  - Original Message - 
  From: rflribeiro 
  To: oracle_br@yahoogrupos.com.br 
  Sent: Friday, April 20, 2007 7:57 AM
  Subject: Re: [oracle_br] Trigger para capturar erros


  O alert e o dump não são o suficiente?

  Reginaldo Ribeiro
  Administrador de Bancos de Dados
  Oracle Certified Associated 10g
  
  DBcom IT Experts
  skype: dbcom_it_experts
  mobile: 551192344290 551196718255
  e-mail: [EMAIL PROTECTED]
  site: www.dbcom.com.br

  Fábio Gibon - Comex System wrote:
   Alguém tem material sobre trigger para coletar erros do banco? (algo bem 
objetivo com exemplos...)
  
   abraços
  
   Gibon
  


   

[As partes desta mensagem que não continham texto foram removidas]



Re: [oracle_br] Trigger para capturar erros

2007-04-20 Por tôpico Fábio Gibon - Comex System
show Marcio, era isto mesmo... blog adicionado aos favoritos... rs

Ah, assim como você adicionou o usuario (USER) eu precisava ter também o nome 
do programa e do terminal... vi a function SYSINFO, mas não obtive sucesso... 
sabe como eu obtenho estas informacoes, se é possível?

abração
Gibon
  - Original Message - 
  From: Marcio Portes 
  To: oracle_br@yahoogrupos.com.br 
  Sent: Friday, April 20, 2007 8:04 AM
  Subject: Re: [oracle_br] Trigger para capturar erros


  Um começo.
  http://mportes.blogspot.com/2006/01/trigger-after-servererror.html

  On 4/20/07, Fábio Gibon - Comex System [EMAIL PROTECTED] wrote:
  
   Alguém tem material sobre trigger para coletar erros do banco? (algo bem
   objetivo com exemplos...)
  
   abraços
  
   Gibon
  
   [As partes desta mensagem que não continham texto foram removidas]
  
  
  
   Apostilas » Dicas e Exemplos » Funções » Mundo Oracle » Package »
   Procedure » Scripts » Tutoriais acesse:
   http://www.oraclebr.com.br/codigo/ListaCodigo.php
  
   --
   Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de
   inteira responsabilidade de seus remetentes.
   Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
  
   --
   O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE:
   http://www.oraclebr.com.br/
  
   --
   Links do Yahoo! Grupos
  
  
  

  -- 
  Marcio Portes
  Material Tecnico em Portugues - http://mportes.blogspot.com
  Practical Learning Oracle -
  http://mportes.blogspot.com/2006/02/practical-learning-oracle.html

  [As partes desta mensagem que não continham texto foram removidas]



   

[As partes desta mensagem que não continham texto foram removidas]



Re: [oracle_br] Trigger para capturar erros

2007-04-20 Por tôpico Marcio Portes
v$session...

ops$marcio:LX10G select username, osuser, terminal, program from v$session
where username is not null;

USERNAME  OSUSER TERMINAL PROGRAM
- -- 

OPS$MARCIOmarcio pts/4[EMAIL PROTECTED] (TNS V1-V3)
SCH_PAY   marcio pts/2[EMAIL PROTECTED] (TNS V1-V3)

2 rows selected.


On 4/20/07, Fábio Gibon - Comex System [EMAIL PROTECTED] wrote:

   show Marcio, era isto mesmo... blog adicionado aos favoritos... rs

 Ah, assim como você adicionou o usuario (USER) eu precisava ter também o
 nome do programa e do terminal... vi a function SYSINFO, mas não obtive
 sucesso... sabe como eu obtenho estas informacoes, se é possível?

 abração
 Gibon
 - Original Message -
 From: Marcio Portes
 To: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br
 Sent: Friday, April 20, 2007 8:04 AM
 Subject: Re: [oracle_br] Trigger para capturar erros

 Um começo.
 http://mportes.blogspot.com/2006/01/trigger-after-servererror.html

 On 4/20/07, Fábio Gibon - Comex System [EMAIL 
 PROTECTED]gibon%40comexsystem.com.br
 wrote:
 
  Alguém tem material sobre trigger para coletar erros do banco? (algo bem
  objetivo com exemplos...)
 
  abraços
 
  Gibon
 
  [As partes desta mensagem que não continham texto foram removidas]
 
 
 
  Apostilas » Dicas e Exemplos » Funções » Mundo Oracle » Package »
  Procedure » Scripts » Tutoriais acesse:
  http://www.oraclebr.com.br/codigo/ListaCodigo.php
 
  --
  Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de
  inteira responsabilidade de seus remetentes.
  Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
 
  --
  O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE:
  http://www.oraclebr.com.br/
 
  --
  Links do Yahoo! Grupos
 
 
 

 --
 Marcio Portes
 Material Tecnico em Portugues - http://mportes.blogspot.com
 Practical Learning Oracle -
 http://mportes.blogspot.com/2006/02/practical-learning-oracle.html

 [As partes desta mensagem que não continham texto foram removidas]

 [As partes desta mensagem que não continham texto foram removidas]

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


[As partes desta mensagem que não continham texto foram removidas]



Re: [oracle_br] Trigger com mais de 60 linhas

2007-02-08 Por tôpico Andre Santos
Luana

Depois de tudo que o Chiappa explicou, creio que a maior razão disso ser
indicado pela Oracle é que é uma boa prática de programação: modularizar
(através de stored procedures) uma rotina que seria grande demais.

[ ]

André



Em 01/02/07, luananadielle [EMAIL PROTECTED] escreveu:

   Caros,

 estava pesquisando sobre o desempenho de triggers e verifiquei que a
 Oracle indica que triggers não tenham mais que 60 linhas, que, nesse
 caso,a trigger deve chamar procedures para executar o objetivo dela.
 Pesquisei na documentação da Oracle e a única coisa que encontrei foi
 essa afirmação, não existia nenhuma explicação do porque dessa
 dica. Gostaria de saber o porque dessa limitação..

 Se alguém souber me explicar ficaria agradecida..

 Atenciosamente,

 Luana Nadielle

 



[As partes desta mensagem que não continham texto foram removidas]



Re: [oracle_br] trigger acionada por erro

2006-11-29 Por tôpico Marcio Portes
Um bom começo poderia ser
http://mportes.blogspot.com/2006/01/trigger-after-servererror.html

On 11/29/06, Pablo Quadros [EMAIL PROTECTED] wrote:

   ola!

 alguem tem aí 1 trigger acionada por algum erro q envie 1 email para
 alguem ??
 []'s

 --
 Pablo Quadros
 Consultor de TI (Rede / Banco de dados)
 msn:[EMAIL PROTECTED] pablo%40ingleza.com.br
 gtalk:[EMAIL PROTECTED] pquadros%40gmail.com

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


[As partes desta mensagem que não continham texto foram removidas]



RE: [oracle_br] Trigger after insert

2006-10-26 Por tôpico Lorenzini Bruno
Porque você não faz em uma trigger só e chama um procedimento após o outro? 

 

Keep it Simple! :D

 

 

[[]]'s

 

 

-Original Message-
From: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] On Behalf Of 
Anderson
Sent: Thursday, October 26, 2006 9:42 AM
To: oracle_br@yahoogrupos.com.br
Subject: [oracle_br] Trigger after insert

 

Olá, sei que é possível ter dois triggers after insert, para serem 
disparados a partir de uma mesma tabela, para inserir dados em outras 
duas tabelas, por exemplo.

No Sybase, uma das cláusulas do comando 'create trigger' é o 'order', 
onde é possível definir a ordem de execução dos triggers.

Não encontrei uma cláusula semelhante no Oracle (10gR2).

É possível definir a ordem de execução dos triggers no Oracle? 
Se sim, como? 
Se não, existe algum 'workaround'?

PS.: Verifiquei que existe um object_id para cada trigger, mas a 
execução não segue esta ordem.

Anderson.



 



[As partes desta mensagem que não continham texto foram removidas]




Vem aí: ENPO-BR 2006 - Encontro Nacional de Profissionais Oracle
VISITE: http://www.enpo-br.org/ - Dia 11/11 Vagas Limitadas

Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine 
--
Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--
O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: http://www.oraclebr.com.br/  

  
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 



RE: [oracle_br] Trigger de auditoria

2006-10-23 Por tôpico Douglas Ortiz
Roberta, verifique se não é a falta do Commit;

 

Atte,

 

 

 

Douglas Ortiz

 

Core Competence Center - PostPaid

*  [EMAIL PROTECTED]

*: +55 11 8523-6143 

*: +55 11 2113-6391

  _  

From: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] On Behalf Of 
Roberta Berrondo
Sent: quarta-feira, 18 de outubro de 2006 12:40
To: Oracle - Grupos; Oracle-BR1; Oracle-BR2; OraOracle; Orcale-GPO
Subject: [oracle_br] Trigger de auditoria

 

Bom dia pessoal,
   
  Estou com um probleminha que talvez possam me ajudar:
  Tinha que criar uma trigger que auditasse todos que se logassem no banco de 
dados. para tal criei uma tabela de log com a seguinte estrutura:
  (logon_time  timestamp,
  username varchar2(30),
   Osuser varchar2(30),
   Machine varchar2(12),
   Terminal varchar2(16),
   Program varchar2(64),
   Client_info varchar2(64),
   Client_identifier varchar2(64))
   
  A segir criei a trigger log com o seguinte script:
   
  Create or replace trigger   logon_trigger 
AFTER LOGON ON DATABASE 
BEGIN 
insert into LOG 
   select logon_time, username, osuser, machine, terminal, program, 
client_info, client_identifier
   from sys.v_$session;
   
  End;
  /
   
  a tabela e a trigger foram criadas sem erros, porém quando tento consultar a 
tabela de log ela continua vazia, mesmo com vários usuários tendo se logado 
após a criação da trigger.
   
  O quê está acontecendo de errado?
   
  Grata pela atenção
   
  Roberta
   
   


-
Você quer respostas para suas perguntas? Ou você sabe muito e quer compartilhar 
seu conhecimento? Experimente o Yahoo! Respostas!

[As partes desta mensagem que não continham texto foram removidas]


 



[As partes desta mensagem que não continham texto foram removidas]




Vem aí: ENPO-BR 2006 - Encontro Nacional de Profissionais Oracle
VISITE: http://www.enpo-br.org/ - Dia 11/11 Vagas Limitadas

Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine 
--
Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--
O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: WWW.ORACLEBR.COM.BR 

  
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 



RE: [oracle_br] Trigger de auditoria

2006-10-18 Por tôpico Lorenzini Bruno
...

insert into LOG 
   select logon_time, username, osuser, machine, terminal, program, 
client_info, client_identifier
   from sys.v_$session;
   
  End;

...

 

Acho que faltou a where clause nessa trigger. Ele não está disparando nenhuma 
exceção?

 

[[]]'s

 

 

Bruno Lorenzini

 

 

-Original Message-
From: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] On Behalf Of 
Roberta Berrondo
Sent: Wednesday, October 18, 2006 11:40 AM
To: Oracle - Grupos; Oracle-BR1; Oracle-BR2; OraOracle; Orcale-GPO
Subject: [oracle_br] Trigger de auditoria

 

Bom dia pessoal,
   
  Estou com um probleminha que talvez possam me ajudar:
  Tinha que criar uma trigger que auditasse todos que se logassem no banco de 
dados. para tal criei uma tabela de log com a seguinte estrutura:
  (logon_time  timestamp,
  username varchar2(30),
   Osuser varchar2(30),
   Machine varchar2(12),
   Terminal varchar2(16),
   Program varchar2(64),
   Client_info varchar2(64),
   Client_identifier varchar2(64))
   
  A segir criei a trigger log com o seguinte script:
   
  Create or replace trigger   logon_trigger 
AFTER LOGON ON DATABASE 
BEGIN 
insert into LOG 
   select logon_time, username, osuser, machine, terminal, program, 
client_info, client_identifier
   from sys.v_$session;
   
  End;
  /
   
  a tabela e a trigger foram criadas sem erros, porém quando tento consultar a 
tabela de log ela continua vazia, mesmo com vários usuários tendo se logado 
após a criação da trigger.
   
  O quê está acontecendo de errado?
   
  Grata pela atenção
   
  Roberta
   
   


-
Você quer respostas para suas perguntas? Ou você sabe muito e quer compartilhar 
seu conhecimento? Experimente o Yahoo! Respostas!

[As partes desta mensagem que não continham texto foram removidas]


 



[As partes desta mensagem que não continham texto foram removidas]




Vem aí: ENPO-BR 2006 - Encontro Nacional de Profissionais Oracle
VISITE: http://www.enpo-br.org/ - Dia 11/11 Vagas Limitadas

Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine 
--
Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--
O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: WWW.ORACLEBR.COM.BR

  
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 



Re: [oracle_br] Trigger de Logon

2006-10-06 Por tôpico Cristian
Caro Berrondo,
  uso uma trigger AFTER LOGON ON DATABASE, não sei se funciona em todas 
as versões, no Oracle 10g funciona:



CREATE OR REPLACE TRIGGER SYS.BLOCK_TOOLS_FROM_PROD AFTER LOGON ON DATABASE
DECLARE
  v_prog   sys.v_$session.program%TYPE;
  ownersys.v_$session.username%TYPE;
  v_osuser sys.v_$session.osuser%TYPE;
BEGIN
  SELECT program, username, osuser
INTO v_prog, owner, v_osuser
FROM sys.v_$session
  WHERE  audsid = USERENV('SESSIONID')
AND  audsid != 0  -- Don't Check SYS Connections
AND  rownum = 1;  -- Parallel processes will have the same AUDSID's


   IF UPPER(owner) NOT IN ('usuarios_liberados'.)
   THEN

 IF UPPER(v_prog) LIKE '%TOAD%'  OR
UPPER(v_prog) LIKE '%T.O.A.D%'   OR  -- Toad
UPPER(v_prog) LIKE '%SQLNAV%'OR  -- SQL Navigator
UPPER(v_prog) LIKE '%PLSQLDEV%'  OR  -- PLSQL Developer
UPPER(v_prog) LIKE '%BUSOBJ%'OR  -- Business Objects
UPPER(v_prog) LIKE '%EXCEL%' OR  -- MS-Excel plug-in
UPPER(v_prog) LIKE '%SQLPLUS%'   OR  -- SQLPLUS
UPPER(v_prog) LIKE '%DEVELOPER%' OR  -- Oracle SQL Developer
UPPER(v_prog) LIKE '%IFBLD%' OR  -- Oracle Forms Developer 
Builder
UPPER(v_prog) LIKE '%RWBUILDER%' OR  -- Oracle Reports Builder
UPPER(v_prog) LIKE '%RAPTOR%'-- Oracle Raptor
 THEN
RAISE_APPLICATION_ERROR(-2, 'Development tools are not 
allowed on PRODUCTION DATABASE! ('||v_osuser||' - '||owner||' - 
'||v_prog||')');
 END IF;

  END IF;
EXCEPTION
WHEN NO_DATA_FOUND THEN NULL;
END;






abraços,
Cristian.



rberrondo wrote:
 Preciso fazer uma trigger para evento a nível
 de banco/instancia.
 Toda vez que uma conexão é estabelecida, faria a
 checagem de usuário, aplicação e IP, se não estivesse de acordo com as
 regras , mataria a sessão.
 Alguem teria algum scprit para isto?
 Grata
 R Berrondo
 AD



  



--
Atenção! As mensagens deste grupo são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--__
Vem aí: ENPO-BR 2006 - Encontro Nacional de Profissionais Oracle
VISITE: http://www.enpo-br.org/ - Dia 11/11 Vagas Limitadas
__
Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine  
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 




RE: [oracle_br] Trigger de atualização e i nserção.

2006-08-24 Por tôpico Claro, Eduardo
A maneira como você está criando a trigger está errada. Veja:

===

SQL create table teste_trigger( COD_PRODUTO NUMBER(10,0)
  2  ,
  3  DES_PRODUTO  VARCHAR2(30)
  4  , DT_ATUALIZACAODATE
  5  ,DT_INSERCAO   DATE
  6  )
  7  ;

Table created.

SQL CREATE OR REPLACE TRIGGER trigger_upd
  2  AFTER UPDATE
  3  ON teste_trigger
  4  REFERENCING NEW AS NEW OLD AS OLD
  5  FOR EACH ROW
  6  BEGIN
  7 UPDATE teste_trigger
  8SET dt_atualizacao = SYSDATE
  9  WHERE cod_produto = :OLD.cod_produto; 
 10  END; 
 11  /

Trigger created.

SQL 
SQL insert into teste_trigger (COD_PRODUTO,DES_PRODUTO) values (1,'x');

1 row created.

SQL select * from teste_trigger;

COD_PRODUTO DES_PRODUTODT_ATUALIZACAODT_INSERCAO
--- -- - -
  1 x

1 row selected.

SQL update teste_trigger set DES_PRODUTO='y' where COD_PRODUTO=1;
update teste_trigger set DES_PRODUTO='y' where COD_PRODUTO=1
   *
ERROR at line 1:
ORA-04091: a tabela TESTE_TRIGGER é mutante; talvez o gatilho/função não possa 
localizá-la
ORA-06512: em TRIGGER_UPD, line 2
ORA-04088: erro durante a execução do gatilho 'TRIGGER_UPD'


SQL CREATE OR REPLACE TRIGGER trigger_upd
  2  BEFORE UPDATE
  3  ON teste_trigger
  4  REFERENCING NEW AS NEW OLD AS OLD
  5  FOR EACH ROW
  6  BEGIN
  7  :NEW.DT_ATUALIZACAO := sysdate; 
  8  END; 
  9  /

Trigger created.

SQL 
SQL update teste_trigger set DES_PRODUTO='y' where COD_PRODUTO=1;

1 row updated.

SQL select * from teste_trigger;

COD_PRODUTO DES_PRODUTODT_ATUALIZACAODT_INSERCAO
--- -- - -
  1 y  24-AGO-2006 09:53

1 row selected.

===
 
Veja que na trigger eu troquei o evento por BEFORE UPDATE, e ao invés de um 
UPDATE, simplesmente disse que o valor novo é SYSDATE.

[]s

Eduardo Claro

-Original Message-
From: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] On Behalf Of Léo 
Vieira
Sent: Thursday, August 24, 2006 8:42 AM
To: oracle_br@yahoogrupos.com.br
Subject: [oracle_br] Trigger de atualização e inserção.

Bom dia Grupo,

tenho a seguinte tabela de teste:

NAMENull? Type
--- - -
COD_PRODUTO NOT NULL  NUMBER(10,0)
DES_PRODUTO NOT NULL  VARCHAR2(30)
DT_ATUALIZACAODATE
DT_INSERCAO   DATE

Quero criar duas triggers que façam o seguinte:
1 - Ao atualizar o registro é colocado sysdate na coluna DT_ATUALIZACAO
2 - Ao inserir um registro é colocado sysdate nas colunas DT_ATUALIZACAO e 
DT_INSERCAO.

Criei a seguinte trigger para UPDATE:

CREATE OR REPLACE TRIGGER trigger_upd
AFTER UPDATE
ON teste_trigger
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
BEGIN
   UPDATE teste_trigger
  SET dt_atualizacao = SYSDATE
WHERE cod_produto = :OLD.cod_produto; END; /

Porém quando atualizo registro nada acontece, o que tem de errado?
E para alterar a trigger para fazer a de inserção? 

Obrigado a todos

Leonardo Baliano








--
Atenção! As mensagens deste grupo são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
--__

OPORTUNIDADES DE TRABALHO, VAGAS, EMPREGOS PARA PROFISSIONAIS ORACLE VISITE: 
http://www.oraclebr.com.br/ 
__
Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine 
Links do Yahoo! Grupos




 




--
Atenção! As mensagens deste grupo são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--__

OPORTUNIDADES DE TRABALHO, VAGAS, EMPREGOS PARA PROFISSIONAIS ORACLE VISITE: 
http://www.oraclebr.com.br/
__
Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine  
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:

Re: [oracle_br] Trigger de atualização e inserção.

2006-08-24 Por tôpico marcofernandes . talent
Fala Léo, blz ?

Bom, no insert vc nem precisa se preocupar com isso !
Basta colocar um valor Default para a coluna como sysdate que será 
colocada
automaticamente a coluna de DT_INSERCAO. Fizemos isso aqui para auditoria.

Também criamos a coluna de DT_ATUALIZACAO mas essa a gente atualiza
na munheca nos pontos que temos update mas o melhor mesmo seria fazer
como vc fez (via trigger) pois aí não precisaria mexer na aplicação. Mas 
como
essa decisão aqui não foi minha o que se pode fazer né ?

Além dessas a gente colocou também o usuário que inseriu e o usuário que 
alterou.

Vamos lá... acho que essa trigger não tem tanto mistério.

create or replace trigger trigger_teste
  after update on tabela_A 
  for each row
declare
  -- caso queira colocar variáveis é aqui que põe
begin
  update tabela_A a
  set a.dt_atualizacao = sysdate
  where a.chave_primaria = :old.chave_primaria;
end trigger_teste;

Acho que é isso.

Abraço,
Marco.




Bom dia Grupo,

tenho a seguinte tabela de teste:

NAMENull? Type
--- - -
COD_PRODUTO NOT NULL  NUMBER(10,0)
DES_PRODUTO NOT NULL  VARCHAR2(30)
DT_ATUALIZACAODATE
DT_INSERCAO   DATE

Quero criar duas triggers que façam o seguinte:
1 - Ao atualizar o registro é colocado sysdate na coluna DT_ATUALIZACAO
2 - Ao inserir um registro é colocado sysdate nas colunas 
DT_ATUALIZACAO e DT_INSERCAO.

Criei a seguinte trigger para UPDATE:

CREATE OR REPLACE TRIGGER trigger_upd
AFTER UPDATE 
ON teste_trigger
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
BEGIN
   UPDATE teste_trigger
  SET dt_atualizacao = SYSDATE
WHERE cod_produto = :OLD.cod_produto;
END;
/

Porém quando atualizo registro nada acontece, o que tem de errado?
E para alterar a trigger para fazer a de inserção? 

Obrigado a todos

Leonardo Baliano






 



[As partes desta mensagem que não continham texto foram removidas]



--
Atenção! As mensagens deste grupo são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--__

OPORTUNIDADES DE TRABALHO, VAGAS, EMPREGOS PARA PROFISSIONAIS ORACLE VISITE: 
http://www.oraclebr.com.br/
__
Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine  
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 





RE: [oracle_br] Trigger: Erro

2006-08-02 Por tôpico Luis Cabral
Ola

Isso nao eh um erro em si, eh o comportamento normal do Oracle. Apos usar o 
raise_application_error num trigger, os erros 6512 e 4088 sao gerados em 
sequencia. Dessa forma vc pode saber em que trigger o erro ocorreu.

Uma solucao seria extrair e exibir apenas o 1º erro do error stack. Que 
ferramenta de front-end vc esta usando? Como vc esta exibindo o erro retornado 
(ou ele eh exibido automaticamente)?

Luis


From: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] On Behalf Of 
Alexandre Brum
Sent: 01 August 2006 21:50
To: oracle_br@yahoogrupos.com.br
Subject: [oracle_br] Trigger: Erro

Prezados

Criei o trigger de teste abaixo e ocorre o seguinte erro:

ERRO na linha 1:
ORA-20500: É obrigatório informar o Coordenador'
ORA-06512: em CMATBASE.TABTESTE_CHECA_AREANEG, line 12
ORA-04088: erro durante a execução do gatilho 'CMATBASE.TABTESTE_CHECA_AREANEG'

Ele chega entrar na condição e apresenta a mensagem correta, mas depois ocorre 
os erros: ORA-06512  e ORA-04088

Veja o trigger:

CREATE OR REPLACE TRIGGER tabteste_checa_areaneg
BEFORE UPDATE OR INSERT   ON CMATBASE.TABTESTE
FOR EACH ROW
DECLARE
    cCodNeg  CHAR(02);

BEGIN

 SELECT CodNeg
   INTO cCodNeg
   FROM CMATBASE.Segmento
   WHERE CodSeg = :NEW.codseg;

 IF cCodNeg  '08' AND :NEW.Coordenador IS NULL THEN
    Raise_Application_Error
  ( -20500,'É obrigatório informar o Coordenador' );

 END IF;

END;


Alguém tem alguma sugestão para a correção do erro ?

Um grande abraço.

Att.
Alexandre Brum


Um abraço.

Att.
Alexandre Brum
    
-
O Yahoo! está de cara nova. Venha conferir!

[As partes desta mensagem que não continham texto foram removidas]

 


--
Atenção! As mensagens deste grupo são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--__

Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine 
__
O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o 
link do mesmo para evitar trafego(pedidos) desnecessário. 
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 





RE: [oracle_br] Trigger: Erro

2006-08-02 Por tôpico Alexandre Brum
Valeu Luis 

Estava com esta suspeita.
É uma aplicação internet utilizando JAVA.
Vou alterar a classe para apresentar melhor este erro.

Obrigado !!!

Att.
 Alexandre Brum


Luis Cabral [EMAIL PROTECTED] escreveu:Ola
 
 Isso nao eh um erro em si, eh o comportamento normal do Oracle. Apos usar o 
raise_application_error num trigger, os erros 6512 e 4088 sao gerados em 
sequencia. Dessa forma vc pode saber em que trigger o erro ocorreu.
 
 Uma solucao seria extrair e exibir apenas o 1º erro do error stack. Que 
ferramenta de front-end vc esta usando? Como vc esta exibindo o erro retornado 
(ou ele eh exibido automaticamente)?
 
 Luis
 
 
 From: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] On Behalf Of 
Alexandre Brum
 Sent: 01 August 2006 21:50
 To: oracle_br@yahoogrupos.com.br
 Subject: [oracle_br] Trigger: Erro
 
 Prezados
 
 Criei o trigger de teste abaixo e ocorre o seguinte erro:
 
 ERRO na linha 1:
 ORA-20500: É obrigatório informar o Coordenador'
 ORA-06512: em CMATBASE.TABTESTE_CHECA_AREANEG, line 12
 ORA-04088: erro durante a execução do gatilho 'CMATBASE.TABTESTE_CHECA_AREANEG'
 
 Ele chega entrar na condição e apresenta a mensagem correta, mas depois ocorre 
os erros: ORA-06512  e ORA-04088
 
 Veja o trigger:
 
 CREATE OR REPLACE TRIGGER tabteste_checa_areaneg
 BEFORE UPDATE OR INSERT   ON CMATBASE.TABTESTE
 FOR EACH ROW
 DECLARE
 cCodNeg  CHAR(02);
 
 BEGIN
 
  SELECT CodNeg
INTO cCodNeg
FROM CMATBASE.Segmento
WHERE CodSeg = :NEW.codseg;
 
  IF cCodNeg  '08' AND :NEW.Coordenador IS NULL THEN
 Raise_Application_Error
   ( -20500,'É obrigatório informar o Coordenador' );
 
  END IF;
 
 END;
 
 
 Alguém tem alguma sugestão para a correção do erro ?
 
 Um grande abraço.
 
 Att.
 Alexandre Brum
 
 
 Um abraço.
 
 Att.
 Alexandre Brum
 
 -
 O Yahoo! está de cara nova. Venha conferir!
 
 [As partes desta mensagem que não continham texto foram removidas]
 
  
   


Um abraço.

Att.
 Alexandre Brum

-
 Você quer respostas para suas perguntas? Ou você sabe muito e quer 
compartilhar seu conhecimento? Experimente o Yahoo! Respostas!

[As partes desta mensagem que não continham texto foram removidas]



--
Atenção! As mensagens deste grupo são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--__

Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine 
__
O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o 
link do mesmo para evitar trafego(pedidos) desnecessário. 
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 





RE: [oracle_br] trigger de auditoria com nome do forms quando tiver

2006-07-11 Por tôpico Luis Cabral
Em vez de usar a dbms_application_info, vc poderia criar sua propria package 
com variaveis globais; mas isso nao seria necessariamente melhor, apenas mais 
independente do banco.

 

De qualquer forma eu sugeriria, nos Forms, chamar uma procedure wrapper em vez 
de chamar diretamente a dbms_application_info.set_module.

 

Mesmo que sua procedure wrapper nao faca nada mais que chamar a 
dbms_application_info. Isso porque se, no futuro, vc achar uma solucao melhor 
vc teria que mexer apenas num lugar em vez de em todos os forms que usam essa 
funcionalidade.

 

 

 



From: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] On Behalf Of alex 
borgmann
Sent: 10 July 2006 22:27
To: oracle_br@yahoogrupos.com.br
Subject: [oracle_br] trigger de auditoria com nome do forms quando tiver

 

Ola pessoal, 
   
  Oracle9i Enterprise Edition Release 9.2.0.7.0 - 64bit Production
   
  Forms [32 Bit] Version 9.0.4.0.19 (Production)
   
  Tenho umas triggers de auditorias de tabelas feitas estaticas. Uma trigger 
desenvolvida para cada tabela. Com nome do usuario que alterou, data, hora, 
etc, operacao (Insercao,exclusao, alteracao),. campos alterados, etc..
  Sei que ate tem como fazer a criacao destas auditorias dinamicamente ate ja 
foi feito no forum  mas como ja tinha pronto deixei assim mesmo.
  Agora me solicitaram que gostariam de saber qual  foi a tela (forms) (.fmb) 
que efetuou esta operacao, Pois temos telas de manutencao e outras de 
importacao,  e se for atualizado sql, plsql ,etc. nao precisa especificar.
   
  Pensei em fazer setando um modulo e acao com dbms_application dentro do forms.
   
  dbms_application_info.set_module('PROCESSO','MODULO_FORMS');
   
  e depois lendo na trigger
   
  dbms_application_info.read_module
   
   
  Acho que isto vai funcionar mas minha pergunta e a seguinte existe alguma 
solucao melhor ou mais elegante. 
   
  Desde ja agradeço a atencao

  

   
   


-
Do you Yahoo!?
Everyone is raving about the  all-new Yahoo! Mail Beta.

[As partes desta mensagem que não continham texto foram removidas]

 



[As partes desta mensagem que não continham texto foram removidas]



--
Atenção! As mensagens deste grupo são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--__

Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine 
__
O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o 
link do mesmo para evitar trafego(pedidos) desnecessário. 
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 




RE: [oracle_br] Trigger after create table

2006-07-04 Por tôpico Luis Cabral
Ola

Nao creio que seja possivel criar o trigger a que vc se refere, mas usando 
algumas funcoes acho que vc consegue determinar que objecto disparou o trigger 
e executar ou nao sua logica de acordo:


ora_dict_obj_name VARCHAR(30) Name of the dictionary object on which the DDL 
operation occurred

ora_dict_obj_owner VARCHAR(30) Owner of the dictionary object on which the DDL 
operation occurred

ora_dict_obj_type VARCHAR(20) Type of the dictionary object on which the DDL 
operation occurred



Veja mais detalhes no manual Application Developer's Guide - Fundamentals. 
Espero que ajude.

/lc




From: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] On Behalf Of 
Anderson
Sent: 03 July 2006 18:46
To: oracle_br@yahoogrupos.com.br
Subject: [oracle_br] Trigger after create table

É possível criar uma trigger after create table (somente)? 

Eu gostaria de conceder as devidas permissões às roles, por meio de uma 
trigger, automaticamente após cada create table. 

Tentei criar uma trigger after create, mas ela é executada após 
qualquer create. 

Alguém tem alguma idéia?




 


--
Atenção! As mensagens deste grupo são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--__

Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine 
__
O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o 
link do mesmo para evitar trafego(pedidos) desnecessário. 
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 




Re: [oracle_br] Trigger de um owner atualizando objeto de outro owner

2006-06-01 Por tôpico Luiz Claudio Felicio



Precisa dar grant update on objeto to owner.. Ou seja escola o objeto que precisa ser copilado, de permissão para o outro owner fazer isso..
 
 Boa sorte..
 Luiz Claudio 


 Tenho dois owner A e B e em um objeto do owner B quero compilar uma 
trigger deste owner para atualizar objetos do A. O banco não esta 
permitindo compilar a trigger avisando que não tem permissão, já 
coloquei a permissão GRANT CREATE ANY TRIGGER para os dois owner...





--
Atenção! As mensagens deste grupo são de acesso público e de inteira responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--__

Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine 
__
O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o link do mesmo para evitar trafego(pedidos) desnecessário. 
Links do Yahoo! Grupos










 __
Fale com seus amigos de graça com o novo Yahoo! Messenger 
http://br.messenger.yahoo.com/ 

[As partes desta mensagem que não continham texto foram removidas]







--
Atenção! As mensagens deste grupo são de acesso público e de inteira responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--__

Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine 
__
O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o link do mesmo para evitar trafego(pedidos) desnecessário.





  




  
Yahoo! Grupos, um serviço oferecido por:
  
  

PUBLICIDADE




  
  



  




  
Links do Yahoo! Grupos

Para visitar o site do seu grupo na web, acesse:http://br.groups.yahoo.com/group/oracle_br/
Para sair deste grupo, envie um e-mail para:[EMAIL PROTECTED]
O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do Yahoo!.











Re: [oracle_br] TRIGGER update

2006-05-26 Por tôpico Thiago Lazzarotto



Eu tenho uma situação semelhante, e fiz assim:
Criei uma package SPEC e coloquei uma variável de controle lá...
Então na procedure coloquei a variavel = 'X', por exemplo.

Na trigger eu coloco um IF no comeco testando se a variavel é  'X'.

Assim, os updates da procedure disparam a trigger mas nao fazem nada

No fim da procedure, tem que colocar a variavel := null;
Entendeu?

Thiago.

Gabriel Herdt escreveu:

 Bom dia pessoal!
 Eu criei um Stored procedure que da update e insert em uma tabela e
 update em outra esta funcionando muito bem.
 Só que agora eu estou precisando fazer uma trigger com a 1° tabela
 quando da After Update nela. Mas eu gostaria que os updates da Stored
 procedure não acionacem a trigger. Isso é possivel? Como?





 --
 Atenção! As mensagens deste grupo são de acesso público e de inteira 
 responsabilidade de seus remetentes.
 Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
 --__

 Este Grupo recebe o apoio da SQL Magazine - 
 www.devmedia.com.br/sqlmagazine
 __
 O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, 
 tenha o link do mesmo para evitar trafego(pedidos) desnecessário.


 *Yahoo! Grupos, um serviço oferecido por:*
 PUBLICIDADE


 
 *Links do Yahoo! Grupos*

 * Para visitar o site do seu grupo na web, acesse:
 http://br.groups.yahoo.com/group/oracle_br/
 
 * Para sair deste grupo, envie um e-mail para:
 [EMAIL PROTECTED]
 mailto:[EMAIL PROTECTED]
 
 * O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
 Serviço do Yahoo! http://br.yahoo.com/info/utos.html.



-- 







--
Atenção! As mensagens deste grupo são de acesso público e de inteira responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--__

Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine 
__
O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o link do mesmo para evitar trafego(pedidos) desnecessário.





  




  
Yahoo! Grupos, um serviço oferecido por:
  
  
PUBLICIDADE




  
  



  




  
Links do Yahoo! Grupos

Para visitar o site do seu grupo na web, acesse:http://br.groups.yahoo.com/group/oracle_br/
Para sair deste grupo, envie um e-mail para:[EMAIL PROTECTED]
O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do Yahoo!.












Re: [oracle_br] Trigger on dba_users

2005-12-16 Por tôpico Daniel Araújo de Castro
Márcio, muito obrigado pela resposta desconhecia estes parâmetros de
auditoria, com certeza uma mão na roda.No entanto além desta auditoria
eu preciso processar uma sp que executa uma série de ações no momento
exato da criação do user, conhece alguma forma pra isto ?

Obrigado.
Daniel A. D. Castro

On 12/15/05, Marcio Portes [EMAIL PROTECTED] wrote:
 Por que não audit trail?

 [EMAIL PROTECTED] show parameter audit

 NAME TYPEVALUE
  --- 
 --
 audit_file_dest  string  
 /u01/app/oracle/admin/LNX10GR2
  /adump
 audit_sys_operations boolean FALSE
 audit_syslog_level   string
 audit_trail  string  TRUE

 [EMAIL PROTECTED] audit create user
   2  /

 Audit succeeded.

 [EMAIL PROTECTED] grant create user to scott;

 Grant succeeded.

 [EMAIL PROTECTED] connect scott/tiger
 Connected.
 [EMAIL PROTECTED]
 [EMAIL PROTECTED]
 [EMAIL PROTECTED] create user a identified by a;

 User created.

 [EMAIL PROTECTED] connect /
 Connected.
 [EMAIL PROTECTED] create user b identified by b;

 User created.

 [EMAIL PROTECTED]
 [EMAIL PROTECTED] select os_username, username, timestamp, obj_name
   2from dba_audit_trail
   3  /

 OS_USERNAMEUSERNAME   TIMESTAMP 
 OBJ_NAME
 -- -- - 
 --
 marcio SCOTT  15-DEC-05 A
 marcio OPS$MARCIO 15-DEC-05 B

 2 rows selected.


 Daniel Araújo de Castro wrote:
  Lista,
  preciso monitorar a criação de users em uma determinada instance, uma
  trigger seria o ideal na dba_users, mas o objeto é uma view. Alguém já
  precisou ou sabe me informar a melhor prática para monitorar a criação
  de users ? A solução pensada é um job com baixa temporalilidade que me
  informar de forma comparativa os schemas criados.
 
  Desde já agradeço à atenção de todos.
  --
  Atenciosamente
  
  Daniel A. D. Castro
  +55-31-9776-8453
 
 
  --
  Atenção! As mensagens deste grupo são de acesso público e de inteira 
  responsabilidade de seus remetentes.
  Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
  --_
  Area de download do grupo - http://www.4shared.com/dir/101727/a4dcc423
  Links do Yahoo! Grupos
 
 
 
 
 
 
 
 
 

 --
 Marcio Portes
 http://mportes.blogspot.com


 --
 Atenção! As mensagens deste grupo são de acesso público e de inteira 
 responsabilidade de seus remetentes.
 Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
 --_
 Area de download do grupo - http://www.4shared.com/dir/101727/a4dcc423
 Links do Yahoo! Grupos










--
AtenciosamenteDaniel A. D. Castro+55-31-9776-8453


--
Atenção! As mensagens deste grupo são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--_
Area de download do grupo - http://www.4shared.com/dir/101727/a4dcc423  
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 




Re: [oracle_br] Trigger on dba_users

2005-12-16 Por tôpico Marcio Portes
Luis/Daniel,

Sim é possível capturar o evento de create e testar se o tipo de objeto é user 
e executar a procedure. Eu demonstrei o 
uso do audit porque não gosto de escrever código extra quando a funcionalidade 
já existe disponível.

Mesmo assim, fiz um exemplo. Image que log_user é a procedure que voce precisa 
executar logo após a criação do user.

[EMAIL PROTECTED] create table
   2  audit_usr (
   3  quem_criou  varchar2(30),
   4  quem_foi_criado varchar2(30),
   5  quando  date default sysdate
   6  );

Table created.

[EMAIL PROTECTED]
[EMAIL PROTECTED] create or replace
   2  procedure log_user(
   3  p_criou in varchar2,
   4  p_foi_criadoin varchar2
   5  )
   6  is
   7  begin
   8 insert into audit_usr ( quem_criou, quem_foi_criado )
   9values ( p_criou, p_foi_criado );
  10  end;
  11  /

Procedure created.

[EMAIL PROTECTED] show error
No errors.
[EMAIL PROTECTED]
[EMAIL PROTECTED] create or replace
   2  trigger trg_ac_audituser
   3 after create on database
   4  begin
   5 if ( ora_dict_obj_type = 'USER' )
   6 then
   7log_user( ora_login_user, ora_dict_obj_name );
   8 end if;
   9  end;
  10  /

Trigger created.

[EMAIL PROTECTED] show error
No errors.
[EMAIL PROTECTED] create user a identified by a;

User created.

[EMAIL PROTECTED]
[EMAIL PROTECTED] select * from audit_usr;

QUEM_CRIOU QUEM_FOI_CRIADOQUANDO
-- -- 
---
OPS$MARCIO A  16/12/2005 
15:04:44

1 row selected.


Luis Cabral wrote:
 Daniel
 
 Nas versoes mais recentes do banco existem os commandos:
 
 CREATE TRIGGER create_trigger AFTER CREATE ON DATABASE
 CREATE TRIGGER ddl_trigger AFTER DDL ON DATABASE
 
 ...mas nao tenho certeza se funcionam para create user. Voce pode usar as 
 funcoes abaixo dentro do trigger para tentar saber o que foi criado:
 
 ora_sysevent 
 ora_login_user
 ora_instance_num
 ora_database_name
 ora_dict_obj_type 
 ora_dict_obj_name
 ora_dict_obj_owner
 ora_is_creating_nested_table
 
 Talvez funcione (mas nao tenho certeza) se vc fizer algo assim dentro do 
 trigger:
 
 IF (ora_dict_obj_type = 'USER') THEN
 ...
 
 
 Se funcionar, nao esqueca de nos contar!
 
 
 
 
 -Original Message-
 From: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] On Behalf Of 
 Daniel Araújo de Castro
 Sent: 16 December 2005 15:35
 To: oracle_br@yahoogrupos.com.br
 Subject: Re: [oracle_br] Trigger on dba_users
 
 Márcio, muito obrigado pela resposta desconhecia estes parâmetros de
 auditoria, com certeza uma mão na roda.No entanto além desta auditoria
 eu preciso processar uma sp que executa uma série de ações no momento
 exato da criação do user, conhece alguma forma pra isto ?
 
 Obrigado.
 Daniel A. D. Castro

-- 
Marcio Portes
http://mportes.blogspot.com


--
Atenção! As mensagens deste grupo são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--_
Area de download do grupo - http://www.4shared.com/dir/101727/a4dcc423  
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 




Re: [oracle_br] Trigger on dba_users

2005-12-15 Por tôpico Marcio Portes
Por que não audit trail?

[EMAIL PROTECTED] show parameter audit

NAME TYPEVALUE
 --- --
audit_file_dest  string  /u01/app/oracle/admin/LNX10GR2
  /adump
audit_sys_operations boolean FALSE
audit_syslog_level   string
audit_trail  string  TRUE

[EMAIL PROTECTED] audit create user
   2  /

Audit succeeded.

[EMAIL PROTECTED] grant create user to scott;

Grant succeeded.

[EMAIL PROTECTED] connect scott/tiger
Connected.
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED] create user a identified by a;

User created.

[EMAIL PROTECTED] connect /
Connected.
[EMAIL PROTECTED] create user b identified by b;

User created.

[EMAIL PROTECTED]
[EMAIL PROTECTED] select os_username, username, timestamp, obj_name
   2from dba_audit_trail
   3  /

OS_USERNAMEUSERNAME   TIMESTAMP OBJ_NAME
-- -- - 
--
marcio SCOTT  15-DEC-05 A
marcio OPS$MARCIO 15-DEC-05 B

2 rows selected.


Daniel Araújo de Castro wrote:
 Lista,
 preciso monitorar a criação de users em uma determinada instance, uma
 trigger seria o ideal na dba_users, mas o objeto é uma view. Alguém já
 precisou ou sabe me informar a melhor prática para monitorar a criação
 de users ? A solução pensada é um job com baixa temporalilidade que me
 informar de forma comparativa os schemas criados.
 
 Desde já agradeço à atenção de todos.
 --
 Atenciosamente
 
 Daniel A. D. Castro
 +55-31-9776-8453
 
 
 --
 Atenção! As mensagens deste grupo são de acesso público e de inteira 
 responsabilidade de seus remetentes.
 Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
 --_
 Area de download do grupo - http://www.4shared.com/dir/101727/a4dcc423  
 Links do Yahoo! Grupos
 
 
 
 
  
 
 
 
 

-- 
Marcio Portes
http://mportes.blogspot.com


--
Atenção! As mensagens deste grupo são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--_
Area de download do grupo - http://www.4shared.com/dir/101727/a4dcc423  
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 




Re: [oracle_br] Trigger x Commit ! Help !!!

2005-11-08 Por tôpico Eduardo
Amigos,

Fiz alguns testes quando insert e updates via SQL´plus e a trigger funcionou, 
mas pela aplicação não. o problema é que a aplicação é de terceiros e eu não 
tenho o código fonte. Tentei tb mudar a trigger para BEFORE não adiantou.
Será que tem outra solucão???

Edu
  - Original Message - 
  From: Salvio Padlipskas 
  To: 'oracle_br@yahoogrupos.com.br' 
  Sent: Monday, November 07, 2005 9:22 AM
  Subject: RES: [oracle_br] Trigger x Commit ! Help !!!


  Eduardo,

  Uma trigger não aceita commit dentro de seu código. Como sugestão, veja
  como os seus inserts e updates estão sendo executados em sua aplicação
  (verifique como é realizado o fim da transação (commit e rollback) e 
  realize alguns testes no SQL*Plus (Insert e Update), que é a ferramenta
  universal da Oracle, servindo como orientação inicial.

  Outra sugestão é mudar o tempo de execução da trigger, passando para BEFORE.

  Faça os testes e poste as infs aqui posteriormente para que possamos 
  contribuir em sua necessidade. 

  [ ]'s
  Salvio Padlipskas

  -Mensagem original-
  De: Eduardo [mailto:[EMAIL PROTECTED]
  Enviada em: segunda-feira, 7 de novembro de 2005 10:39
  Para: oracle_br@yahoogrupos.com.br
  Assunto: [oracle_br] Trigger x Commit ! Help !!!


  Olá galera,

  Tenho a trigger abaixo,vou tentar explicar o problema, as alterações só
  commtam quando mais de uma linha sofre alterações, ou seja, a ultima linha
  sempre fica esperando um commit ou um novo disparo da trigger, tentei
  colocar um commit no final da trigger, mas nao aceita.
  Como resolvo isso???

  CREATE OR REPLACE TRIGGER GER_RESERVA4
  AFTER INSERT OR UPDATE OF IES_NFE_EMIT ON NFE_SUP_COMPL
  FOR EACH ROW
  BEGIN
  UPDATE FAT_NUMERO_SER SET NUM_NFF = (select NUM_NFF from fat_numero
  WHERE COD_EMPRESA = :NEW.COD_EMPRESA)
  END;
  /

  Eduardo Souza Pinho
  Depto - T.I / Sistemas
  DDR: 55 11 2146-9449
  Fone: 55 11 2146-9444
  Fax: 55 11 3871-3730
  [EMAIL PROTECTED]
  www.sonsun.com.br


  [As partes desta mensagem que não continham texto foram removidas]



  ORACLE_BR APOIA 2ºENPO-BR
  _
  O 2º Encontro Nacional de Profissionais Oracle realizado no dia 05/11/2005
  no auditório da FIAP em São Paulo foi melhor que a primeira. Confira no GPO
  (do nosso amigo Willian) http://www.profissionaloracle.com.br
  _
  Area de download oracle_br - http://www.4shared.com/dir/101727/a4dcc423  
  Links do Yahoo! Grupos









  [As partes desta mensagem que não continham texto foram removidas]



  ORACLE_BR APOIA 2ºENPO-BR 
_
  O 2º Encontro Nacional de Profissionais Oracle realizado no dia 05/11/2005 no 
auditório da FIAP em São Paulo foi melhor que a primeira. Confira no GPO (do 
nosso amigo Willian) http://www.profissionaloracle.com.br
  _
  Area de download oracle_br - http://www.4shared.com/dir/101727/a4dcc423 


Yahoo! Grupos, um serviço oferecido por: 
  PUBLICIDADE

   


--
  Links do Yahoo! Grupos

a.. Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/
  
b.. Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]
  
c.. O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço 
do Yahoo!. 



[As partes desta mensagem que não continham texto foram removidas]



ORACLE_BR APOIA 2ºENPO-BR 
_
O 2º Encontro Nacional de Profissionais Oracle realizado no dia 05/11/2005 no 
auditório da FIAP em São Paulo foi melhor que a primeira. Confira no GPO (do 
nosso amigo Willian) http://www.profissionaloracle.com.br
_
Area de download oracle_br - http://www.4shared.com/dir/101727/a4dcc423  
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 




Re: [oracle_br] Trigger mutante

2005-09-29 Por tôpico clediomar
Manda, bala.

CD
Rodolfo Nunez escreveu:

Opa Eu criei uma JProcedure para resolver o meu problema se quiser te passso
em private.

Abs,
Rodolfo

On 9/21/05, clediomar [EMAIL PROTECTED] wrote:
  

Alguém utiliza chave gerada com MD5 no Oracle.

existe algum package, função etc.

tipo MySQL select MD5(BLABALALA)


ORACLE_BR APOIA 2ºENPO-BR
_
O 2º Encontro Nacional de Profissionais Oracle será realizado no dia
05/11/2005 no auditório da FIAP em São Paulo. Serão apresentadas Palestras e
Cases dirigidos exclusivamente por profissionais especialistas e renomados
no mercado. Confira a programação no site do evento!
http://www.enpo-br.org/
_

Links do Yahoo! Grupos












[As partes desta mensagem que não continham texto foram removidas]



ORACLE_BR APOIA 2ºENPO-BR 
_
O 2º Encontro Nacional de Profissionais Oracle será realizado no dia 
05/11/2005 no auditório da FIAP em São Paulo. Serão apresentadas Palestras e 
Cases dirigidos exclusivamente por profissionais especialistas e renomados no 
mercado. Confira a programação no site do evento! http://www.enpo-br.org/
_
 
Links do Yahoo! Grupos




 




  




ORACLE_BR APOIA 2ºENPO-BR 
_
O 2º Encontro Nacional de Profissionais Oracle será realizado no dia 05/11/2005 
no auditório da FIAP em São Paulo. Serão apresentadas Palestras e Cases 
dirigidos exclusivamente por profissionais especialistas e renomados no 
mercado. Confira a programação no site do evento! http://www.enpo-br.org/
_
 
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 




Re: [oracle_br] Trigger - Sobreposição de Vigência (data)

2005-09-26 Por tôpico ronaldo Sales
Não sei se alguém vai ter algo do tipo pronto. Mas isso é facil de
desenvolver. Se quiser me escreve em PVT que eu te dou uma força.

Ronaldo.

Em 23/09/05, Tathyanna Pelegrinni[EMAIL PROTECTED] escreveu:
 Boa noite!


 alguém tem bons exemplos destes tipos de triggers?
  Exemplos de definiçoes:
  INCLUSAO
 Data de inicio de vigencia tem de ser maior que data corrente.
 Ao incluir uma nova vigencia, a vigencia anterior tem de ser finalizada,
 sendo que a data fim anterior sera um dia a
 menos que a nova data inicio de vigencia. (data fim vigencia anterior = nova
 data inicio - 1) (Implentacao via trigger).
 A data final de vigencia tem de ser obrigatoriamente maior que a data inicio
 de vigencia
ALTERACAO
 Somente podera ser alterado a data final de vigencia, desde que a data fim
 seja maior que data corrente.
EXCLUSAO
 N?o permitir exclus?o, se a vigencia estiver fechada, ou se a data final da
 vigencia estiver nula.
  ETC... ETC...
  Outras validaçoes, não mencionadas, são bem vindas tb, é claro! :))
  Obrigada.


 [As partes desta mensagem que não continham texto foram removidas]



 ORACLE_BR APOIA 2ºENPO-BR 
 _
 O 2º Encontro Nacional de Profissionais Oracle será realizado no dia 
 05/11/2005 no auditório da FIAP em São Paulo. Serão apresentadas Palestras e 
 Cases dirigidos exclusivamente por profissionais especialistas e renomados no 
 mercado. Confira a programação no site do evento! http://www.enpo-br.org/
 _

 Links do Yahoo! Grupos











--
Ronaldo Sales
Oracle Developer
Mestrando em Geoprocessamento


ORACLE_BR APOIA 2ºENPO-BR 
_
O 2º Encontro Nacional de Profissionais Oracle será realizado no dia 05/11/2005 
no auditório da FIAP em São Paulo. Serão apresentadas Palestras e Cases 
dirigidos exclusivamente por profissionais especialistas e renomados no 
mercado. Confira a programação no site do evento! http://www.enpo-br.org/
_
 
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 




  1   2   >