Hoje me deparei com o erro; ORA-01476 divisor is equal to zero, em um relatório, onde existia o cálculo de divisão.

O problema: Divisão por 0 (zero)

0/0

 

Solução:

CASE

select
case WHEN 0 (var) = 0 then 0
else
50 / 1
end soma
from dual
Resultado: 0

select
case WHEN 1 (var) = 0 then 0
else
50 / 2
end soma
from dual

Resultado: 25

Fonte: http://dba-oracle.com/t_ora_01476_divisor_equa_to_zero.htm

http://stackoverflow.com/questions/15798910/oracle-divisor-is-equal-to-zero

(2014/10)

 

SELECT
NM_PESSOA, DT_NASCIMENTO, DS_EMAIL
FROM
PESSOA_FISICA_TB P
WHERE P.SEXO = ‘M’
AND (

(case when 2 = :PARAMETRO then P.TIPO end) in (1)
or
(case when 2 = :PARAMETRO then P.TIPO end) <> (1)

)

 

 

AND ((case when ‘S’ = :P_FERR then
1 end) = 1
or
(case when ‘N’ = :P_FERR then CE.NUM_CONTRATO end) <> (123)
)

O comando TRUNCATE é responsável por limpar os registros de uma tabela e fará isto de uma forma mais rápido que o comando DELETE.

Para usar o comando é necessário ter permissão.

SELECT count(*) FROM tabela_A;

4639
TRUNCATE TABLE tabela_A;

SELECT count(*) FROM tabela_A;
0

Oracle/PLSQL: Função TO_CHAR
Sintaxe da função;

TO_CHAR( value, [ format_mask ], [ nls_language ] )

exemplo com datas
TO_CHAR(sysdate, ‘yyyy/mm/dd’); retorno ‘2003/07/09’
TO_CHAR(sysdate, ‘Month DD, YYYY’); retorno ‘July 09, 2003’
TO_CHAR(sysdate, ‘FMMonth DD, YYYY’); retorno ‘July 9, 2003’
TO_CHAR(sysdate, ‘MON DDth, YYYY’); retorno ‘JUL 09TH, 2003’
TO_CHAR(sysdate, ‘FMMON DDth, YYYY’); retorno ‘JUL 9TH, 2003’
TO_CHAR(sysdate, ‘FMMon ddth, YYYY’); retorno ‘Jul 9th, 2003’

http://www.techonthenet.com/oracle/functions/to_char.php