Re: [oracle_br] AJUDA - UPDATE MONSTRO TABELA DE 11,5 MILHOES DE LINHAS

2017-10-17 Por tôpico Gustavo Guedes guedescomputa...@gmail.com [oracle_br]
Opa, por nada Ricardo!

Fico feliz em ter ajudado.
Grande abraço!

Em 17 de outubro de 2017 12:47, Ricardo Sá ricardo@terra.com.br
[oracle_br]  escreveu:

>
>
> Show,
>
> @Gustavo, era isto mesmo que eu precisava.
>
> Muito obrigado.
>
>
>
> @Rodrigo,
>
> Agradeço também a ajuda.
>
>
>
>
>
> *De:* oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br]
> *Enviada em:* terça-feira, 17 de outubro de 2017 12:09
> *Para:* oracle_br@yahoogrupos.com.br
> *Assunto:* Re: [oracle_br] AJUDA - UPDATE MONSTRO TABELA DE 11,5 MILHOES
> DE LINHAS
>
>
>
>
>
> Boa tarde, Ricardo!
>
>
>
> Veja se isto ajuda: É um bloco PL/SQL que, a cada 500 registros
> atualizados, efetua um COMMIT, para não comprometer a área de Rollback...
>
> Obs: Efetuar commit a cada 500 registros é só um exemplo... Este valor
> pode ser maior ou menor, de acordo com a área de Rollback...
>
>
>
>
>
> DECLARE
>
>   vQtLinhas NUMBER(3) := 0;
>
>
>
> BEGIN
>
>
>
>   FOR Reg IN (SELECT CAMPO_PK ID_TABELA -- Campo chave da tabela
>
>   FROM   TABELA)
>
>   LOOP
>
>
>
> UPDATE TABELA
>
> SETCAMPO_CHAR = ''
>
> WHERE  CAMPO_PK   = Reg.ID_TABELA;
>
>
>
> vQtLinhas := vQtLinhas + 1; -- Registra a Qtde de Linhas atualizadas
>
>
>
> IF vQtLinhas = 500 THEN -- Quando o total de linhas atualizadas
> atingir 500, efetua um COMMIT;
>
>   COMMIT;
>
>   vQtLinhas := 0;
>
> END IF;
>
>
>
>   END LOOP;
>
>
>
>   COMMIT; -- Este COMMIT é importante para atualizar o último bloco de
> linhas que não chegou a 500 (Ex: As últimas 387 linhas)
>
>
>
> END;
>
>
>
>
>
>
>
> Em 17 de outubro de 2017 11:34, Ricardo Sá ricardo@terra.com.br
> [oracle_br]  escreveu:
>
>
>
> Bom dia, a todos.
>
>
>
> Solicito a gentileza se alguém pode me ajudar a resolver uma questão.
>
>
>
> Preciso realizar um UPDATE monstro em um tabela 11.500.000 (11,5 milhoes
> de linhas).
>
>
>
> O update é sobre uma coluna CHAR(1) com o valor “ “.
>
>
>
> Pensei em um bloco PLSQL, mas me falta neste momento criatividade para
> montar este bloco.
>
>
>
> Obs.: O banco é 11.2.0.4.0 (Enterprise Edition) sobre Oracle RAC com 2
> nós esta tabela tem 35 indices... (sei que é absurdo, mas é o ERP que
> foi construído desta forma).
>
>
>
> Alguem poderia, me ajudar nesta questão.
>
>
>
> Ricardo Sá
>
> (11) 98286-0048
>
>
>
>
>
> --
>
> Atenciosamente,
> *Gustavo Guedes de Sene*
>
> 
>



-- 
Atenciosamente,
*Gustavo Guedes de Sene*


Re: [oracle_br] AJUDA - UPDATE MONSTRO TABELA DE 11,5 MILHOES DE LINHAS

2017-10-17 Por tôpico Gustavo Guedes guedescomputa...@gmail.com [oracle_br]
Boa tarde, Ricardo!

Veja se isto ajuda: É um bloco PL/SQL que, a cada 500 registros
atualizados, efetua um COMMIT, para não comprometer a área de Rollback...
Obs: Efetuar commit a cada 500 registros é só um exemplo... Este valor pode
ser maior ou menor, de acordo com a área de Rollback...


DECLARE
  vQtLinhas NUMBER(3) := 0;

BEGIN

  FOR Reg IN (SELECT CAMPO_PK ID_TABELA -- Campo chave da tabela
  FROM   TABELA)
  LOOP

UPDATE TABELA
SETCAMPO_CHAR = ''
WHERE  CAMPO_PK   = Reg.ID_TABELA;

vQtLinhas := vQtLinhas + 1; -- Registra a Qtde de Linhas atualizadas

IF vQtLinhas = 500 THEN -- Quando o total de linhas atualizadas atingir
500, efetua um COMMIT;
  COMMIT;
  vQtLinhas := 0;
END IF;

  END LOOP;

  COMMIT; -- Este COMMIT é importante para atualizar o último bloco de
linhas que não chegou a 500 (Ex: As últimas 387 linhas)

END;



Em 17 de outubro de 2017 11:34, Ricardo Sá ricardo@terra.com.br
[oracle_br]  escreveu:

>
>
> Bom dia, a todos.
>
>
>
> Solicito a gentileza se alguém pode me ajudar a resolver uma questão.
>
>
>
> Preciso realizar um UPDATE monstro em um tabela 11.500.000 (11,5 milhoes
> de linhas).
>
>
>
> O update é sobre uma coluna CHAR(1) com o valor “ “.
>
>
>
> Pensei em um bloco PLSQL, mas me falta neste momento criatividade para
> montar este bloco.
>
>
>
> Obs.: O banco é 11.2.0.4.0 (Enterprise Edition) sobre Oracle RAC com 2
> nós esta tabela tem 35 indices... (sei que é absurdo, mas é o ERP que
> foi construído desta forma).
>
>
>
> Alguem poderia, me ajudar nesta questão.
>
>
>
> Ricardo Sá
>
> (11) 98286-0048
>
> 
>



-- 
Atenciosamente,
*Gustavo Guedes de Sene*


Re: [oracle_br] Diferença executando REGEXP_LIKE

2016-10-05 Por tôpico Gustavo Guedes guedescomputa...@gmail.com [oracle_br]
Zilmar, boa noite!

Talvez o código abaixo ajude. Com expressão regular, fica bem mais enxuto.
Mas creio que isso aí possa te ajudar.
Fonte: https://community.oracle.com/thread/666479

Tenho uma função de validação de email na empresa em que trabalho. É algo
bem similar a este código abaixo. Amanhã eu posto aqui.
Abraços!




***PL/SQL code for Email validation***

DECLARE
t_valid NUMBER(1);
t_totallen NUMBER(2);
t_counter NUMBER(2):=0;
t_atpos NUMBER(2):= 1;
i NUMBER(2) := 1;
t_pointpos NUMBER(2):= 1;

mail_ch VARCHAR2(1);

result number; --:GR

BEGIN

t_totallen := LENGTH(:text_item_email);
t_counter := t_totallen;
i := 1;
t_valid := 1;

-

IF LENGTH(ltrim(rtrim(:text_item_email))) = 0 THEN
t_valid := 0;
ELSE
---
--This is to check special characters are present or not in the email ID
t_counter := t_totallen;

WHILE t_counter > 0
LOOP
mail_ch := substr(:text_item_email,i,1);
i := i+1;
t_counter := t_counter -1;

IF mail_ch IN (' ','!','#','$','%','^','&','*','(',')','-','','"',
'+','|','{','}','[',']',':','>','<','?','/','\','=') THEN
t_valid := 0;
EXIT;
END IF;

END LOOP;

---
--This is to check more than one '@' character present or not

t_atpos := instr(:text_item_email,'@',1,2) ;

IF t_atpos > 1 then
t_valid := 0;
END IF;

---
--This is to check at minimum and at maximum only one '@' character present

t_atpos := instr(:text_item_email,'@',1) ;

IF t_atpos IN (0,1) THEN
t_valid := 0;
END IF;

---
--This is to check at least one '.' character present or not

t_pointpos := instr(:text_item_email,'.',1) ;

IF t_pointpos IN (0,1) THEN
t_valid := 0;
END IF;

---

--This is to check at least one character is present between @ and '.' :GR

t_atpos := instr(:text_item_email,'@',1) ;
t_pointpos := instr(:text_item_email,'.',1) ;

IF t_pointpos-t_atpos<=1 THEN
t_valid := 0;
END IF;

---

--This is to check at least one character is present after '.' :GR

t_pointpos := instr(:text_item_email,'.',1) ;

IF t_totallen-t_pointpos<=0 THEN
t_valid := 0;
END IF;

---

END IF;

if(t_valid=0) then
message('Invalid Email');
result:=show_alert('alert_email');
raise form_trigger_failure;
end if;
END;

---***PL/SQL code for Name Validation***---
DECLARE
t_valid NUMBER(1);
t_totallen NUMBER(2);
t_counter NUMBER(2):=0;
i NUMBER(2) := 1;

name_ch VARCHAR2(1);
--name_ch_ascii NUMBER;

result number; --:GR

BEGIN

t_totallen := LENGTH(:text_item_first_name);
t_counter := t_totallen;
i := 1;
t_valid := 1;

-

IF LENGTH(ltrim(rtrim(:text_item_first_name))) = 0 THEN
t_valid := 0;
ELSE
---
--This is to check if each character in name lies in the valid ascii range
t_counter := t_totallen;

WHILE t_counter > 0
LOOP
name_ch := upper(substr(:text_item_first_name,i,1));
--name_ch_ascii := convert(name_ch,'US7ASCII');
i := i+1;
t_counter := t_counter -1;

--IF name_ch_ascii not between 65 and 90 THEN
IF name_ch not between 'A' and 'Z' THEN
t_valid := 0;
EXIT;
END IF;

END LOOP;
---
END IF;

if(t_valid=0) then
message('Invalid First Name');
result:=show_alert('alert_first_name');
raise form_trigger_failure;
end if;
END;


Em 4 de outubro de 2016 21:28, zfurq...@gmail.com [oracle_br] <
oracle_br@yahoogrupos.com.br> escreveu:

>
>
> Chiappa,
>
> Entendo e concordo com os pontos que você colocou, mas na verdade, o que
> queremos é simplesmente uma função de validação de endereços de email.
>
> Colegas, alguém tem uma função para isso, preferencialmente que não
> utilize o REGEXP_LIKE ?
>
> Grato a todos pela ajuda.
>
> Zilmar Furquim
> Synchro Systems
>
> 
>



-- 
Atenciosamente,
*Gustavo Guedes de Sene*


Re: [oracle_br] Ajuda - SQL

2016-04-07 Por tôpico Gustavo Guedes guedescomputa...@gmail.com [oracle_br]
Desculpe: *INSTR é o caminho, rsrs.

[]'s

Em 7 de abril de 2016 19:24, Gustavo Guedes 
escreveu:

> Diego, tudo bem?
>
> Já fiz isso usando a função INSTR do PL/SQL.
> Era algo que combinava as funções INSTR SUBSTR e REPLACE
> Não tenho o exemplo aqui agora, mas a dinâmica é algo do tipo:
>
> Com o INSTR vc consegue obter a posição da ocorrência do "||" (duplo
> pipe). No seu caso, retornaria 33, se não me engano. Daí, com o REPLACE e o
> SUBSTR, vc consegue substituir os caracteres das posições 33 e 34 (||) por
> um NULL, por exemplo.
> Dê uma olhada na função REGEXP_INSTR tb. Ela pode ajudar.
>
> Abraços, e desculpe por não postar um exemplo aqui agora. Mas SUBSTR é o
> caminho, rs.
>
> []'s
>
> Em 7 de abril de 2016 16:24, Diego Melo diegopm...@gmail.com [oracle_br] <
> oracle_br@yahoogrupos.com.br> escreveu:
>
>>
>>
>> @Emerson,
>>
>> a sua função deu certo. Muito obrigado.
>>
>> @Angelo,
>> quiando vem vazio, deve ficar null mesmo, o CPF foi só um exemplo que me
>> veio na cabeça, mas são outros campos na verdade, que tem que vir vazio ou
>> null mesmo.
>>
>> Valeu 
>>
>> 2016-04-07 16:12 GMT-03:00 angelo angelolis...@gmail.com [oracle_br] <
>> oracle_br@yahoogrupos.com.br>:
>>
>>>
>>>
>>> Boa tarde,  Diego,
>>>
>>> Será que ao invés de dar ruim na parada, não deu bom não?
>>>
>>> Pois não ficou claro sobre o que deveria acontecer no caso em que não
>>> vier o cpf na string.
>>>
>>> To entendendo que se nao veio nada, entraria vazio mesmo, melhor, os
>>> pipes.
>>> Você está importando isso de algum arquivo edi ? Campo cpf veio vazio,
>>>  o que entraria no lugar ? ou tinha cpf e nao inseriu ?
>>>
>>>
>>> 99|152|LUCIANA XIMENES SILVA|o que fazer quando aqui for vazio? |BRA|0||
>>>
>>>
>>>
>>>
>>>
>>> 2016-04-07 15:57 GMT-03:00 Diego Melo diegopm...@gmail.com [oracle_br] <
>>> oracle_br@yahoogrupos.com.br>:
>>>


 Olá galera, tudo bem ?

 Por gentileza, poderiam me ajudar em um SQL.

 Minha versão do Oracle é:

 Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bi
 PL/SQL Release 10.2.0.5.0 - Production
 "CORE 10.2.0.5.0 Production"
 TNS for Linux: Version 10.2.0.5.0 - Production

 Tenho uma tabela com uma string e diversos campos separados por | (pipe)

 Preciso trazer cada campo em uma coluna. Eu até consegui uma maneira, o
 problema é que quando um registro não tem o campo preenchido e a string
 traz ||, ai da ruim na minha solução. Detalhe, eu não posso atlerar a
 string original

 Alguém teria uma solução em Oracle SQL ??

 Fiz do seguinte modo:


 CREATE TABLE t_1 ( strings varchar2(4000));
 /INSERT INTO t_1VALUES ('99|151|JOANA PRADO |08227525490|BRA|0||');
 INSERT INTO t_1VALUES ('99|152|LUCIANA XIMENES SILVA||BRA|0||');
 INSERT INTO t_1VALUES ('99|153|JULIA ROBERTS|44303539805|USA|0||');
 COMMIT;
 SELECT regexp_substr(strings,'[^|]+',1,1) identificador,
regexp_substr(strings,'[^|]+',1,2) id,
regexp_substr(strings,'[^|]+',1,3) nome,
regexp_substr(strings,'[^|]+',1,4) cpf,
regexp_substr(strings,'[^|]+',1,5) pais,
regexp_substr(strings,'[^|]+',1,6) tipoFROM t_1



 Reparem que o registro id 152 não tem cpf e ai o campo de pais
 acaba ocupando o espaço do CPF.

 Grato.

 Diego




>>>
>> 
>>
>
>
>
> --
> Atenciosamente,
> *Gustavo Guedes de Sene*
>



-- 
Atenciosamente,
*Gustavo Guedes de Sene*


Re: [oracle_br] Ajuda - SQL

2016-04-07 Por tôpico Gustavo Guedes guedescomputa...@gmail.com [oracle_br]
Diego, tudo bem?

Já fiz isso usando a função INSTR do PL/SQL.
Era algo que combinava as funções INSTR SUBSTR e REPLACE
Não tenho o exemplo aqui agora, mas a dinâmica é algo do tipo:

Com o INSTR vc consegue obter a posição da ocorrência do "||" (duplo pipe).
No seu caso, retornaria 33, se não me engano. Daí, com o REPLACE e o
SUBSTR, vc consegue substituir os caracteres das posições 33 e 34 (||) por
um NULL, por exemplo.
Dê uma olhada na função REGEXP_INSTR tb. Ela pode ajudar.

Abraços, e desculpe por não postar um exemplo aqui agora. Mas SUBSTR é o
caminho, rs.

[]'s

Em 7 de abril de 2016 16:24, Diego Melo diegopm...@gmail.com [oracle_br] <
oracle_br@yahoogrupos.com.br> escreveu:

>
>
> @Emerson,
>
> a sua função deu certo. Muito obrigado.
>
> @Angelo,
> quiando vem vazio, deve ficar null mesmo, o CPF foi só um exemplo que me
> veio na cabeça, mas são outros campos na verdade, que tem que vir vazio ou
> null mesmo.
>
> Valeu 
>
> 2016-04-07 16:12 GMT-03:00 angelo angelolis...@gmail.com [oracle_br] <
> oracle_br@yahoogrupos.com.br>:
>
>>
>>
>> Boa tarde,  Diego,
>>
>> Será que ao invés de dar ruim na parada, não deu bom não?
>>
>> Pois não ficou claro sobre o que deveria acontecer no caso em que não
>> vier o cpf na string.
>>
>> To entendendo que se nao veio nada, entraria vazio mesmo, melhor, os
>> pipes.
>> Você está importando isso de algum arquivo edi ? Campo cpf veio vazio,  o
>> que entraria no lugar ? ou tinha cpf e nao inseriu ?
>>
>>
>> 99|152|LUCIANA XIMENES SILVA|o que fazer quando aqui for vazio? |BRA|0||
>>
>>
>>
>>
>>
>> 2016-04-07 15:57 GMT-03:00 Diego Melo diegopm...@gmail.com [oracle_br] <
>> oracle_br@yahoogrupos.com.br>:
>>
>>>
>>>
>>> Olá galera, tudo bem ?
>>>
>>> Por gentileza, poderiam me ajudar em um SQL.
>>>
>>> Minha versão do Oracle é:
>>>
>>> Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bi
>>> PL/SQL Release 10.2.0.5.0 - Production
>>> "CORE 10.2.0.5.0 Production"
>>> TNS for Linux: Version 10.2.0.5.0 - Production
>>>
>>> Tenho uma tabela com uma string e diversos campos separados por | (pipe)
>>>
>>> Preciso trazer cada campo em uma coluna. Eu até consegui uma maneira, o
>>> problema é que quando um registro não tem o campo preenchido e a string
>>> traz ||, ai da ruim na minha solução. Detalhe, eu não posso atlerar a
>>> string original
>>>
>>> Alguém teria uma solução em Oracle SQL ??
>>>
>>> Fiz do seguinte modo:
>>>
>>>
>>> CREATE TABLE t_1 ( strings varchar2(4000));
>>> /INSERT INTO t_1VALUES ('99|151|JOANA PRADO |08227525490|BRA|0||');
>>> INSERT INTO t_1VALUES ('99|152|LUCIANA XIMENES SILVA||BRA|0||');
>>> INSERT INTO t_1VALUES ('99|153|JULIA ROBERTS|44303539805|USA|0||');
>>> COMMIT;
>>> SELECT regexp_substr(strings,'[^|]+',1,1) identificador,
>>>regexp_substr(strings,'[^|]+',1,2) id,
>>>regexp_substr(strings,'[^|]+',1,3) nome,
>>>regexp_substr(strings,'[^|]+',1,4) cpf,
>>>regexp_substr(strings,'[^|]+',1,5) pais,
>>>regexp_substr(strings,'[^|]+',1,6) tipoFROM t_1
>>>
>>>
>>>
>>> Reparem que o registro id 152 não tem cpf e ai o campo de pais acaba
>>> ocupando o espaço do CPF.
>>>
>>> Grato.
>>>
>>> Diego
>>>
>>>
>>>
>>>
>>
> 
>



-- 
Atenciosamente,
*Gustavo Guedes de Sene*


Re: [oracle_br] Regra de negocio na aplicação ou no banco de dados?

2016-04-05 Por tôpico Gustavo Guedes guedescomputa...@gmail.com [oracle_br]
Opa, bom dia Dalton!

Confesso que não vi o vídeo (aqui no momento não é possível vê-lo...), mas
pelos comentários do Ângelo, deu pra "captar" do que se trata, e
compartilho da opinião/sugestão do Ângelo...

Aqui onde trabalho, estamos migrando de Oracle Forms + SGBD Oracle, para C#
(Microsoft Visual Studio) + SGBD Oracle.

Há toneladas de Packages, Procedures e Functions no banco, o que facilita
por um lado (questão de performance, transações de rede, etc).

Mas a tendência é realmente esta que o Angelo comentou...

Estamos abordando a arquitetura MVC, usando Webservices e rotas restful, em
um novo sistema pra Web, e aos poucos estamos tirando as regras de negócio
do banco, e migrando-as devidamente para as camadas Model/View/Controller.
Ficando o SGBD mais com o papel de repositório de dados mesmo, e não
repositório de lógica e regras.

A princípio, o principal "medo" é que a aplicação se torne lenta. Mas com o
tempo fica similar ou mais performática até, pois vc tem mais recursos para
balancear a carga (API Back-End, Front-End, os Webservices, e o próprio
SGBD também...).

Depois de 15 anos trabalhando com banco Oracle e desenvolvimento procedural
(Forms/Reports), eu admito que tinha uma certa resistência neste ponto de
tirar a lógica e as Stored Procedures do banco... Mas com a abordagem
Orientada a Objetos, e os fantásticos recursos da arquitetura MVC e de
linguagens OO tipo C# ou Java, hoje eu conheço um pouco dos dois mundos, e
posso dizer que a migração é igual injeção, rsrs: Dói, mas cura a sua
aplicação ou Sistema de Gestão de uma forma muito impressionante e positiva.

Minha sugestão: Vá para o caminho de migração da lógica para Webservices e
para a arquitetura MVC, com abordagem restful, e aos poucos vá tirando a
lógica e regras do SGBD, sempre aos poucos para ir analisando a curva de
performance.
Na ponta final, vc terá uma aplicação flexível, menos engessada ou amarrada
ao banco, performática e através de um Hibernate ou nHibernate, vc fará o
mapeamento com o banco, e como "mágica" tudo será devidamente recuperado,
processado nas camadas supracitadas, e posteriormente salvo no banco, que
terá um papel mais de repositório do que de lugar para lógica e regras
negociais...

PS: Mas é assunto que dá pano pra manga, viu? Toda mudança de abordagem,
paradigma, tecnologias, tem este aspecto polêmico. Haja visto que o kernel
de sistemas de muitas corporações gigantes, ainda seja o velho e bom
COBOL...

Abraços!!



Em 5 de abril de 2016 09:30, angelo angelolis...@gmail.com [oracle_br] <
oracle_br@yahoogrupos.com.br> escreveu:

>
>
> Dalton,
>
> Prepare-se para receber diversas opinioes com visoes diferente do assunto.
>
> Muita gente tem essa visao de nao criar SPs no banco pra nao ficar muito
> amarrado a plataforma.
>
> Por outro lado, usar e abusar dos recursos da plataforma trazem inumeras
> vantagens, o custo é ficar amarrado.
>
> Interessante é a proposta do modelo mvc, ja viu?
>
> Melhor ainda se, no mundo perfeito, partissem pra webservices e o
> aplicativo ficar agnóstico nao amarrado a ninguem só a metadado.. isso o
> restful api ta matando a pau hoje em dia, por exemplo
>
> Mas pro dba que só administra a base no dia dia nao muda muito.. tudo isso
> q falei la em cima vai cair numa insert ou select.
>
> On Tuesday, 5 April 2016, Dalton Oliveira dalton_olive...@hotmail.com
> [oracle_br]  wrote:
>
>>
>>
>> Pessoal, bom dia!!!
>>
>> Qual a opinião de vocês sobre regra de negocio no banco de dados?
>>
>> A empresa que trabalho contratou uma consultoria e o cara "detonou" nosso
>> modelo de desenvolvimento, pois desenvolvemos muito no banco de dados.
>> Temos diversas rotinas que processamos em procedures e funções para ter
>> desempenho. Antes algumas dessas rotinas eram no aplicativo e demorava
>> muito tempo, no banco de dados o processamento é muito mais rápido.
>>
>> Olhem o video do consultor.
>>
>> https://www.youtube.com/watch?v=9hYgzPZPFVY
>>
>> Na minha modesta opinião, acho que ele só sabe o que é select, insert e
>> delete. Não tem nenhum conhecimento  de BD.
>>
>> O que vcs acham ?
>>
>>  Att,
>>
>>
>> Dalton
>>
>> 
>



-- 
Atenciosamente,
*Gustavo Guedes de Sene*


Re: [oracle_br] Re: Livros oracle pdf

2015-08-28 Por tôpico Gustavo Guedes guedescomputa...@gmail.com [oracle_br]
Olá, colega!

No próprio site da Oracle, vc pode encontrar uma vasta e rica documentação.
E mais: Oficial e Gratuita. Daí vc não cai nesta questão de pirataria,
Violação de Direitos Autorais, etc.

Por exemplo, uma ótima documentação de Oracle Forms Builder 6i:
http://download.oracle.com/otn_hosted_doc/forms/forms/A73074_01.pdf

E claro, há documentações para todos os produtos da Oracle também, como das
diferentes versões dos SGBD's, de Java, etc e etc...

Dica: Entra neste link aqui abaixo, e na aba Seach, escolha por exemplo a
opção Database, e na frente coloque para pesquisar Documentation (sem
as aspas). Depois, clique na lupa, e vc verá que vai trazer bastante
material:

http://docs.oracle.com/en/

Espero ter ajudado... Abraços!

Em 15 de agosto de 2015 18:09, Jose Neto jamn...@hotmail.com [oracle_br] 
oracle_br@yahoogrupos.com.br escreveu:



 Isso ae, cara. Faz aí o que vc quiser. Vc é adulto, maior de idade,
 responsável. Só tô te avisando que isso é uma possibilidade. Boa sorte

 --
 To: oracle_br@yahoogrupos.com.br
 From: oracle_br@yahoogrupos.com.br
 Date: Sat, 15 Aug 2015 18:25:03 +
 Subject: Re: [oracle_br] Re: Livros oracle pdf



 Aham... tá bom... também nunca vi, por isso perguntei, bane da onde? Do
 oracle_br? rsrsrsrs
 Quanto a conta de onde veio a nota, até poderia ser, mas até provar que
 não é cavalo já comeu dois sacos de milho, é como costumam dizer por aqui.
 Não vou fornecer link, pois sei que o grupo não é pra isso, mas pro amigo
 que tá procurando aí, só 'googlear' e vai achar uma PÁ de pdf's por aí. ;)



 Em sáb, 15 de ago de 2015 às 13:59, jlchia...@yahoo.com.br [oracle_br] 
 oracle_br@yahoogrupos.com.br escreveu:


 Bane de onde puder, do Serviço dela que estava em uso  para pirataria :
 por exemplo, se alguém usar os Fóruns dela para espalhar material com
 copyright é um ban na hora se ela descobrir, e ainda mais , em tese se ela
 pegar alguém copiando e distribuindo material interno dela (seja apostilas
 Oficiais, notas de Suporte, o que for) se ela identificar qual a conta de
 suporte/conta Oracle de onde veio o material e/ou que foi usada para
 distribuir,  por Contrato ela tem direito a encerrar a conta/encerrar o
 Suporte unilateralmente, na cara, sem A nem B  Eu nunca vi essa opção
 sendo usada MAS que é possível e normalmente tá presente nos contratos é
 uma certeza...


  []s

   Chiappa

 --
 Att,/Regards,


 Vitor Jr.
 Infraestrutura / Infrastructure Team

 Oracle 12c DBA Certified Professional - OCP 12c
 Oracle 11g DBA Certified Professional - OCP 11g
 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

 




-- 
Atenciosamente,
*Gustavo Guedes de Sene*


Re: [oracle_br] Re: Modelagem de Dados

2015-05-29 Por tôpico Gustavo Guedes guedescomputa...@gmail.com [oracle_br]
Olá Alexssandro, boa noite!

Primeiramente eu gostaria de dizer que reitero e ratifico tudo o que os
demais colegas do grupo citaram e opininaram...

Mas fiquei apenas com uma dúvida, sobre exatamente o que vc quis dizer com
a sua pergunta...

Vc quis dizer que a empresa vai deixar de utilizar alguma ferramenta de
modelagem em específico? Como a Oracle Designer, por exemplo?

Pq se este for o caso, existem várias outras ferramentas, incluindo algumas
gratuitas e ótimas, que podem ajudar a vida aí do setor de vocês...
Pq o conceito de modelagem em si, não se retira... Não tem como a empresa
retirar.. Fazendo uma analogia, é como se a empresa estivesse tentando
retirar as idéias ou o pensamento da cabeça das pessoas... A idéia de
abstração do mundo real em um modelo lógico/computacional.

Partindo deste princípio, eu supus (me corrija se eu estiver errado...) que
a empresa deixou de dar importância ao registro ou documentação e
formalização desta modelagem existente na cabeça, em algum tipo de
documento ou ferramenta, por questões de custos, ou por achar que isso é
perda de tempo, algo assim..

Se este for o caso, existem boas ferramentas de modelagem aí no mercado,
algumas free e ótimas, e também as pagas... Seguem algumas:

- Astah (antiga JUDE): Muito boa e gratuita, e com um foco um pouco maior
em UML e OO;
- Erwin;
- Cacoo: Um pouco mais simples, porém funciona via web permitindo o
armazenamento dos diagramas na nuvem;
- Não sei se a Rational ainda disponibiliza a ferramenta Rational Rose, mas
a IBM disponibiliza a IBM Rational Requisite Pro (pelo nome, acho que a
IBM comprou a Rational, e atualmente deve manter a ferramenta): Deve ser
muito poderosa, porém cara, creio eu.
- *** DBDesigner ***: Esta é mais focada para a modelagem de Banco de Bados
mesmo, talvez seja o seu caso: É excelente, gratuita e open source;
- TOAD Data Modeler;

Dá uma pesquisada sobre esta DBDesigner (para os DBA's), e sobre o Astah
(para os Analistas/Desenvolvedores)   ;)

Espero ter ajudado! ;)
E caso eu tenha confundido o seu caso, a sua dúvida, ou algo relacionado à
decisão da empresa, me desculpe...

Grande abraço!


Em 29 de maio de 2015 14:16, angelo angelolis...@gmail.com [oracle_br] 
oracle_br@yahoogrupos.com.br escreveu:




 Lamentável porque existem empresas de todos os tamanhos que agem dessa
 forma...  não levam o TI a sério (acham que é só um quebra galho, que qq um
 vai la e faz)..



 2015-05-29 11:06 GMT-03:00 jlchia...@yahoo.com.br [oracle_br] 
 oracle_br@yahoogrupos.com.br:



 Bom, quando vc diz que a modelagem de dados foi retirada, COM CERTEZA o
 que vc quer dizer é que não há um processo formal que registre,
 preferencialmente num software adequado, a análise e a transformação de
 entidades físicas, vindas do negócio, em entidades lógicas, bem como seus
 relacionamentos, né ? Pois necessariamente ** TUDO ** que está no banco de
 dados não está lá á toa - TUDO que ali está visa ser uma Representação de
 um objeto/processo/item REAL do negócio da Empresa, nada está lá a toa...
 Ninguém acorda um belo dia e do nada sai criando uma tabela NOTAS_FISCAIS,
 necessariamente alguém levantou a existência de uma NF real, descobriu
 quais informações a Empresa precisa, pensou na melhor maneira de as agregar
 e relacionar.. ISSO é que é MODELAGEM, e isso sempre existe, sem isso não
 se chega na representação informatizada de algo, que é o DATABASE
 Certamente o que a tua Empresa deve estar fazendo é que os procedimentos de
 MODELAGEM continuam existindo, claro, MAS são feitos num papel de pão
 qualquer, ou (ainda pior!) os Analistas o fazem mentalmente, apenas...

  Com certeza, não há NADA de bom nisso, não há uma palavra positiva que
 eu possa dizer a respeito de tal situação - eu só imagino por exemplo os
 MONTES de retrabalho por causa de levantamentos  análises feitos por
 pessoas diferentes que não registraram seus trabalhos em lugar nenhum (tudo
 é mental, tudo é em papel de pão) Nem falo da questão da falta de
 Segurança por não se ter a info registrada, da má qualidade inerente a vc
 fazer algo menualmente e sem a mínima formalização... urgh...Meus pêsames...

  []s

Chiappa


  




-- 
Atenciosamente,
*Gustavo Guedes de Sene*


Re: [oracle_br] Re: Sub Query

2015-02-03 Por tôpico Gustavo Guedes guedescomputa...@gmail.com [oracle_br]
Boa noite!

Não que as outras soluções não funcionem. Mas eu daria e recomendaria
fortemente a sugestão já dada por Chiappa... Pois é meio que a essência,
o conceito ou propósito de um banco de dados relacional: Simplesmente
relacionar as tabelas desejadas, através dos devidos e respectivos
campos-chave (FK's) das mesmas... E só.

Neste caso, não precisa de sub-queries ou exists, etc. Só relacionar mesmo,
e boa.

Espero ter ajudado, abraços!

Em 3 de fevereiro de 2015 17:24, jlchia...@yahoo.com.br [oracle_br] 
oracle_br@yahoogrupos.com.br escreveu:



 Claro, se eu usei d como alias para a tabela de detalhes, d. deveria ser o
 prefixo, substitua...

 []s

   Chiappa
  




-- 
Atenciosamente,
*Gustavo Guedes de Sene*


Re: [oracle_br]

2015-01-28 Por tôpico Gustavo Guedes guedescomputa...@gmail.com [oracle_br]
Olá Alessandro, boa noite!

Confesso que no momento não posso testar para afirmar com certeza... Mas a
expressão abaixo não daria na mesma?

SELECT * FROM C1_IMOVEL B
WHEREB.FLG_END_ENTREGA = 'L'
AND  EXISTS (SELECT 1 FROM C1_END_COMP Z WHERE Z.IMO_NRO = B.NRO
AND Z.NRO_PREDIO  'S/N' AND Z.CID_NRO = 22);

Uma vez que no seu decode, vc está testando somente um valor, que seria o
'L'.

Ou seja, em outras palavras, vc precisa dos registros onde
B.FLG_END_ENTREGA seja igual a 'L', E AO MESMO TEMPO (AND) exista algum
registro que atenda às condições da consulta do EXISTS...

Ou seja, como o seu DECODE não tem um else (um segundo teste ou valor
caso seja  'L') dá a entender que vc precisa somente de registros onde
B.FLG_END_ENTREGA = 'L' e Exista(...Condição...).

Espero ter ajudado... Abraços!

Gustavo.


Em 28 de janeiro de 2015 14:31, alessandro micromap
alessandro.micro...@gmail.com [oracle_br] oracle_br@yahoogrupos.com.br
escreveu:



 TEM COMO FAZER

 PRECISO QUE UMA WHERE POSSA FAZER UM DECODE E DENTRO DESTE DECODE FAZER UM
 SELECT EXISTS.  ISSO É POSSÍVEL

 SELECT * FROM C1_IMOVEL B
 WHEREDECODE (B.FLG_END_ENTREGA,'L',EXISTS (SELECT 1 FROM C1_END_COMP Z
 WHERE Z.IMO_NRO = B.NRO AND Z.NRO_PREDIO  'S/N' AND Z.CID_NRO = 22))

  




-- 
Atenciosamente,
*Gustavo Guedes de Sene*