Ao usar o #CSSCAN foi retornado a critica “CSS-00107: Character set migration utility schema not installed”

select * from v$nls_parameters where parameter in (‘NLS_CHARACTERSET’,’NLS_LANGUAGE’);

— ALTER SESSION SET NLS_LANGUAGE = ‘AMERICAN’
— ALTER SESSION SET NLS_LANGUAGE = ‘BRAZILIAN PORTUGUESE’

–WE8ISO8859P1
–WE8MSWIN1252

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[oracle@srvrussia ~]$ csscan
 
Character Set Scanner v2.2 : Release 11.2.0.1.0 - Production on Sat Nov 26 09:58       :21 2016
 
Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.
 
Username: system
 
Password:
 
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
 
CSS-00107: Character set migration utility schema not installed
 
Scanner terminated unsuccessfully.

 

Para resolver é simples, basta conectar com usuário SYS, localizar o script (csminst.sql) conforme o diretório de instalação do Oracle e executar.

1
SQL> @/u01/app/oracle/product/11.2.0/db_1/rdbms/admin/csminst.sql

 

screenshot_1 Read More →

Oracle PL/SQL MAX Function

Exemplo prático;

Criando a tabela de funcionário.

<pre lang="sql" escaped="true">
create table FUNCIONARIO

(
NM_FUNCIONARIO VARCHAR2(150),
NR_CHAPA       NUMBER,
DT_CONTRATACAO DATE
)

</pre>

 

oracle_max_tb_funcionario

Exemplo de uso da função max para obter o maior número de chapa.

max

Tabela onde está os valores  salários e competências

<pre lang=’sql’ line=’1′>

create table BENTO.FUNC_SALARIO
(
DT_COMPETENCIA     DATE,
DT_INICIO_VIGENCIA DATE,
DT_FIM_VIGENCIA    DATE,
NR_CHAPA           NUMBER,
VL_SALARIO         NUMBER(15,2)
)

</pre>

 

max_salario

Imaginando uma situação onde é necessário demonstrar o salário em vigência atual.

<pre lang=’sql’ line=’1′>

select
a.NM_FUNCIONARIO
, a.nr_chapa
, b.VL_SALARIO
from
bento.funcionario a
, bento.func_salario b
where a.nr_chapa = b.NR_CHAPA
and b.dt_competencia = ( select max(c.DT_COMPETENCIA)
from bento.func_salario c
where c.NR_CHAPA  = b.nr_chapa
)

</pre>

 

max-maior-salario Situação onde é necessário demonstrar o valor de salário atual e o salário anterior.

valor-salario-anteior

 

 

RANK Function  OVER (PARTITION BY

 

,RANK() over (partition by   to_char(CI.DAT_REALIZACAO,’mm/yyyy’)                                      –,b.mes_ano_ref
ORDER by  CI.DAT_REALIZACAO) RANK

Irá mostrar a ordenação pelo ranking, exemplo:

11/04/2015 – 1

12/04/2015 – 2

13/04/2015 – 3

13/04/2015 – 3

15/04/2015 – 4

16/04/2015 – 5

16/04/2015 – 5

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)