Neste artigo estarei demonstrando como instalar o Banco de Dados Oracle 12c no Windows, incluindo a criação de um banco padrão.

Antes de instalar o software, o OUI (Oracle Universal Installer), fará algumas verificações automatizadas para garantir que o computador atenda aos requisitos básicos de hardware e software para a instalação do banco de Dados Oracle. Caso o computador não atenda aos requisitos, uma mensagem será apresentada.

Alguns requisitos básicos são:

Mínimo de 2GB de memória física
Pelo menos 10 GB de espaço em disco

Para começar é necessário fazer o download do Oracle 12c pelo link https://www.oracle.com/database/technologies/oracle-database-software-downloads.html

Após o download você deve descompactar os arquivos baixados;


Neste seção, você iniciará a instalação do Banco de Dados Oracle, acesse a pasta database que você extraiu na etapa anterior e clique duas vezes sobre setup, pode ser necessário permitir a execução do arquivo na UAC.

Na janela que será aberta digite seu endereço de e-mail e a senha do login no site da oracle para receber as notificações dos problemas de segurança por e-mail. Se você não quiser as notificações por e-mail desmarque a opção e clique em próximo.
Nesta Janela selecione uma das opções, em nosso tutorial Criamos e configuramos um banco de dados, então marque a primeira opção.
Escolha a opção de acordo a arquitetura da instalação, sendo; Classe Desktop/Laptop ou servidor.
Neste tutorial utilizaremos a opção Classe Desktop.
Segu
indo a recomendação, iremos marcar a opção para a criar um novo usuário no Windows com apenas os privilégios necessários para a execução da instância do banco de dados.
Nesta janela é realizado a configuração do local de instalação, observe que por padrão é criado um banco de dados chamado pdborcl. Na minha instalação estou alterando para “bento”, você pode deixar com o padrão ou alterar.
Digite a senha para a administração do Banco de Dados Oracle. Essa senha será utilizados posteriormente para login de administrador SYS e SYSTEM.
O instalador fará as verificações de pré requisitos.
Após as verificações de pré-requisito a janela com o resumo será apresentada, revisa todas as configurações e clique em instalar.
A janela de status será exibida. Esta etapa leva cerca de 15 minutos dependendo da configuração do computador.

Em seguida será aberta a tela do Assistente de Configuração do Banco de Dados.

Ao chegar em 100% será exibida a janela abaixo informando que terminou, caso queira abrir o gerenciamento de senhas para desbloquear outras contas clique no botão.
Após a

Ao terminar você poderá abrir o gerenciador e navegar a partir do endereço https://localhost:5500/em com o usuário SYS.

Após concluir clique em “Fechar”

https://localhost:5500/em

Agora você poderá analisar e verificar a partir dos serviços do Windows a execução dos serviço do Banco de Dados Oracle.

Abra o executar no menu iniciar ou com a tela de atalho Windows + R, e digite Services.msc

Caso reinicie o computador e não consiga acessar o banco de dados, verifique se os serviços estão ativos e funcionando.

Caso queira acessar de outros computadores será necessário liberar a porta 1521 ou 1522 no firewall, instalar o client do Oracle no outro computador e configurar o arquivo TNSNAMES.ora, que normalmente fica localizado em C:\app\OracleHomeUser\product\12.1.0\dbhome_1\NETWORK\ADMIN
Este é o arquivo da instalação do servidor, nas estações de trabalho é necessário ajustar o nome do HOST com o IP ou nome do computador.

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

 

 

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)

Olá hoje vou demonstrar como utilizar o gerador de dados do PL/SQL, uma funcionalidade bastante útil quando se precisa popular uma tabela para testes.

 

Criando a tabela

— Create table
create table TB_PESSOA_FISICA
(
nr_sequencia NUMBER,
nm_pessoa VARCHAR2(200),
dt_nascimento DATE,
sexo CHAR(1),
ds_rg VARCHAR2(40),
nr_cpf NUMBER(11),
ds_passaporte VARCHAR2(100),
nr_celular NUMBER,
ds_email VARCHAR2(100),
ds_site VARCHAR2(100)
)
tablespace DEV_DATA
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 5M
next 5M
minextents 1
maxextents unlimited
pctincrease 0
);
— Add comments to the columns
comment on column TB_PESSOA_FISICA.sexo
is ”’M”,”F”’;

 

Após abrir o PL/SQL Developer abrir a funcionalidade no menu ferramentas -> Data generator

gerador

 

A geração pode ser feita de 3 formas, sendo para teste visual, popular diretamente a tabela ou gerar um arquivo .sql, conforme exemplo abaixo.

Resultado em arquivo .sql

insert into DEV.TB_PESSOA_FISICA (NR_SEQUENCIA, NM_PESSOA, SEXO, DS_RG, DS_PASSAPORTE, NR_CELULAR, DS_EMAIL, DS_SITE)
values (676682, ‘Katie Basinger’, ‘?’, ‘702874840’, ‘BR-063921453’, 887188870, ‘biazrvr@zqhwdvj.com’, ‘www.uweovptrlr.com’);

insert into DEV.TB_PESSOA_FISICA (NR_SEQUENCIA, NM_PESSOA, SEXO, DS_RG, DS_PASSAPORTE, NR_CELULAR, DS_EMAIL, DS_SITE)
values (275765, ‘Matthew Emmerich’, ‘?’, ‘437142418’, ‘BR-259837828’, 068887587, ‘yriogou@ouspdgb.com’, ‘www.lmcjkxhgrq.com’);

insert into DEV.TB_PESSOA_FISICA (NR_SEQUENCIA, NM_PESSOA, SEXO, DS_RG, DS_PASSAPORTE, NR_CELULAR, DS_EMAIL, DS_SITE)
values (444395, ‘Leelee Lewis’, ‘?’, ‘712642762’, ‘BR-297344731’, 844415207, ‘dkbggnc@rfnwnyp.com’, ‘www.blngqslczo.com’);

insert into DEV.TB_PESSOA_FISICA (NR_SEQUENCIA, NM_PESSOA, SEXO, DS_RG, DS_PASSAPORTE, NR_CELULAR, DS_EMAIL, DS_SITE)
values (337775, ‘Sonny Bright’, ‘?’, ‘046284636’, ‘BR-389647948’, 551661358, ‘wuutgkw@tnoaivb.com’, ‘www.asztavilcd.com’);

insert into DEV.TB_PESSOA_FISICA (NR_SEQUENCIA, NM_PESSOA, SEXO, DS_RG, DS_PASSAPORTE, NR_CELULAR, DS_EMAIL, DS_SITE)
values (493276, ‘Gaby Tomlin’, ‘?’, ‘386886248’, ‘BR-599360178’, 076930526, ‘mdrgkbt@izlmwsz.com’, ‘www.blesssyuot.com’);

insert into DEV.TB_PESSOA_FISICA (NR_SEQUENCIA, NM_PESSOA, SEXO, DS_RG, DS_PASSAPORTE, NR_CELULAR, DS_EMAIL, DS_SITE)
values (586205, ‘Lila Furtado’, ‘?’, ‘665230936’, ‘BR-655403956’, 247439149, ‘ixmpmuz@pkuyfsc.com’, ‘www.rjfjnkgwuz.com’);

 

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)
)