Re: [oracle_br] Re: Inserção de Dados Em Registro Fixo
Boa tarde ! Obrigado Chiappa, ja clareou as idéias. .. Em ter, 21/3/17, jlchia...@yahoo.com.br [oracle_br]escreveu: Assunto: [oracle_br] Re: Inserção de Dados Em Registro Fixo Para: oracle_br@yahoogrupos.com.br Data: Terça-feira, 21 de Março de 2017, 9:51 Tudo jóia ? Então, primeiro em SQL puro apenas vc provavelmente ** não ** vai conseguir, vai ter que mixar PL/SQL No caso, primeiro de tudo ** não existe ** um comando PL/SQL que permita vc fazer nem insert nem replace de arquivo-texto - na package apropriada UTL_FILE, consulte na doc e verá que temos leitura de linha, gravação de linha, renomear, apagar o arquivo, mas não INSERT de string em posição determinada numa linha : o procedimento então será vc ler as linhas uma a uma para um buffer, inserir no buffer a string que vc quer, e depois gravar de novo a linha... Como não existe um comando de trocar a linha, o mais fácil seria vc gravar as novas linhas num novo arquivo, aí depois vc apaga o original e renomeia o novo para o nome do velho O procedimento para inserir algo numa string pode ser feito via REGEXP (se vc tiver isso disponível na sua versão do RDBMS Oracle, que vc NÂO DIZ qual é - iirc regexp foi introduzido no 10g, só não lembro se R1 ou R2), OU então simplesmente separando com SUBSTR os 3 primeiros caracteres do buffer e concatenando esse pedaçõ com o novo texto que vc quer e depois com o resto : veja http://stackoverflow.com/questions/18230658/oracle-insert-character-into-a-string para um exemplinho de cada técnica : não é Exatamente a lógica que vc quer que está representada mas com certeza vai ser algo próximo A lógica geral da sua rotina portanto vai ser : abrir o arquivo de texto original criar o arquivo de texto 'temporário'/de trabalho loop enquanto não chegou no fim de arquivo ler uma linha e colocar num buffer/variável inserir na 4a posição a string que vc quer gravar o buffer numa nova linha no arquivo de trabalho end loop fechar ambos arquivos apagar arquivo original renomear arquivo de trabalho para o nome do original []s Chiappa
[oracle_br] Inserção de Dados Em Registro Fixo
Bom dia ! Pessoal temos um rotina diária que lê um arquivo (comprimento fixo) e grava em um tabela, acontece que agora em determinada posição do registro eu preciso inserir um dado (default ou sequencial). Como faço isso ? Pois a função substr não me atende, porque ela substitui o caracter na posição que informo, quando na verdade o que eu quero é acrescentar o dado. Exemplo, segue dois registros : 001CTR0A0100022434001CTR0A020006 Na 4a posição (onde se encontra a letra C) preciso incluir 001 (serão os números de lote), ficaria então assim : 001001CTR0A0100022434001001CTR0A020006 Alguém poderia me ajudar com o SQL que faça isso ? Desde já agradeço pela atenção...
[oracle_br] Execução via windows (client)
Senhores estou precisando executar de forma automática um pequeno bloco de uma procedure, porém é apenas por 02 semanas. É possível realizar um agendamento automático via o windows (client) para disparar esse código?
[oracle_br] ResultSet em UTF-8
Pessoal estou precisando gerar um resultset de um select .csv no encoding UTF-8, utilizo como client o Navigator e TOAD. Acontece que está saindo apena no formato DOS e não estou achando a opção para o UTF-8. Poderiam me ajudar a extrair os dados neste formato?
[oracle_br] Update em tabela pai e filha
Senhores estou atualizando o campo de 02 tabelas (pai e filha), acontece que se atualizo uma da erro de constraint na outra (e vice versa). Abri 02 cursores mas não adiantou, as tabelas travam. Como faço neste caso?
Re: RES: [oracle_br] Update em tabela pai e filha
Boa tarde marlon! Acredito não ser este um procedimento correto, não há problemas manter a constraint ativo, sei que é possível fazer as duas atualizações, inclusive na mesma sessão, só estou meio perdido no fluxo desta atualização. Em Terça-feira, 16 de Dezembro de 2014 13:30, Marlon Pasquali - TI - Peccin S.A. marlon.pasqu...@peccin.com.br [oracle_br] oracle_br@yahoogrupos.com.br escreveu: Desabilita a constraint e depois de concluir a atualização habilita novamente. Mas tome o cuidado necessário para manter os dados concisos como a constraint exige. Att Marlon De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Enviada em: terça-feira, 16 de dezembro de 2014 13:26 Para: grupo_oracle Assunto: [oracle_br] Update em tabela pai e filha Senhores estou atualizando o campo de 02 tabelas (pai e filha), acontece que se atualizo uma da erro de constraint na outra (e vice versa). Abri 02 cursores mas não adiantou, as tabelas travam. Como faço neste caso?#yiv6332545995 -- #yiv6332545995ygrp-mkp {border:1px solid #d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv6332545995 #yiv6332545995ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv6332545995 #yiv6332545995ygrp-mkp #yiv6332545995hd {color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 0;}#yiv6332545995 #yiv6332545995ygrp-mkp #yiv6332545995ads {margin-bottom:10px;}#yiv6332545995 #yiv6332545995ygrp-mkp .yiv6332545995ad {padding:0 0;}#yiv6332545995 #yiv6332545995ygrp-mkp .yiv6332545995ad p {margin:0;}#yiv6332545995 #yiv6332545995ygrp-mkp .yiv6332545995ad a {color:#ff;text-decoration:none;}#yiv6332545995 #yiv6332545995ygrp-sponsor #yiv6332545995ygrp-lc {font-family:Arial;}#yiv6332545995 #yiv6332545995ygrp-sponsor #yiv6332545995ygrp-lc #yiv6332545995hd {margin:10px 0px;font-weight:700;font-size:78%;line-height:122%;}#yiv6332545995 #yiv6332545995ygrp-sponsor #yiv6332545995ygrp-lc .yiv6332545995ad {margin-bottom:10px;padding:0 0;}#yiv6332545995 #yiv6332545995actions {font-family:Verdana;font-size:11px;padding:10px 0;}#yiv6332545995 #yiv6332545995activity {background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv6332545995 #yiv6332545995activity span {font-weight:700;}#yiv6332545995 #yiv6332545995activity span:first-child {text-transform:uppercase;}#yiv6332545995 #yiv6332545995activity span a {color:#5085b6;text-decoration:none;}#yiv6332545995 #yiv6332545995activity span span {color:#ff7900;}#yiv6332545995 #yiv6332545995activity span .yiv6332545995underline {text-decoration:underline;}#yiv6332545995 .yiv6332545995attach {clear:both;display:table;font-family:Arial;font-size:12px;padding:10px 0;width:400px;}#yiv6332545995 .yiv6332545995attach div a {text-decoration:none;}#yiv6332545995 .yiv6332545995attach img {border:none;padding-right:5px;}#yiv6332545995 .yiv6332545995attach label {display:block;margin-bottom:5px;}#yiv6332545995 .yiv6332545995attach label a {text-decoration:none;}#yiv6332545995 blockquote {margin:0 0 0 4px;}#yiv6332545995 .yiv6332545995bold {font-family:Arial;font-size:13px;font-weight:700;}#yiv6332545995 .yiv6332545995bold a {text-decoration:none;}#yiv6332545995 dd.yiv6332545995last p a {font-family:Verdana;font-weight:700;}#yiv6332545995 dd.yiv6332545995last p span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv6332545995 dd.yiv6332545995last p span.yiv6332545995yshortcuts {margin-right:0;}#yiv6332545995 div.yiv6332545995attach-table div div a {text-decoration:none;}#yiv6332545995 div.yiv6332545995attach-table {width:400px;}#yiv6332545995 div.yiv6332545995file-title a, #yiv6332545995 div.yiv6332545995file-title a:active, #yiv6332545995 div.yiv6332545995file-title a:hover, #yiv6332545995 div.yiv6332545995file-title a:visited {text-decoration:none;}#yiv6332545995 div.yiv6332545995photo-title a, #yiv6332545995 div.yiv6332545995photo-title a:active, #yiv6332545995 div.yiv6332545995photo-title a:hover, #yiv6332545995 div.yiv6332545995photo-title a:visited {text-decoration:none;}#yiv6332545995 div#yiv6332545995ygrp-mlmsg #yiv6332545995ygrp-msg p a span.yiv6332545995yshortcuts {font-family:Verdana;font-size:10px;font-weight:normal;}#yiv6332545995 .yiv6332545995green {color:#628c2a;}#yiv6332545995 .yiv6332545995MsoNormal {margin:0 0 0 0;}#yiv6332545995 o {font-size:0;}#yiv6332545995 #yiv6332545995photos div {float:left;width:72px;}#yiv6332545995 #yiv6332545995photos div div {border:1px solid #66;height:62px;overflow:hidden;width:62px;}#yiv6332545995 #yiv6332545995photos div label {color:#66;font-size:10px;overflow:hidden;text-align:center;white-space:nowrap;width:64px;}#yiv6332545995 #yiv6332545995reco-category {font-size:77%;}#yiv6332545995 #yiv6332545995reco-desc {font-size:77%;}#yiv6332545995 .yiv6332545995replbq {margin:4px;}#yiv6332545995 #yiv6332545995ygrp-actbar div a:first-child {margin-right:2px;padding-right:5px;}#yiv6332545995
Re: RES: [oracle_br] Update em tabela pai e filha
Veja só: Tabela A (pai), tabela B (filha) um insert na A com valor 1,um insert na B com valor 1 na FK Preciso atualizar a tabela B com o valor 2, logo, precisaria fazer um update na PK da tabela A para que seja possível. A única maneira que vi foi realmente foi como o Marlon escreveu (desabilitando a constraint). Então gostaria de saber se é este realmente o recurso ou é possível via um loop (ou algo assim). Em Terça-feira, 16 de Dezembro de 2014 15:51, jlchia...@yahoo.com.br [oracle_br] oracle_br@yahoogrupos.com.br escreveu: Pra gente poder entender e te ajudar , PLZ explica exatamente o que é está atualização que vc vai fazer, E nos mostre a exata e completa msg de erro (erro de constraint é genérico a mais não poder)... E uma coisa é travar, e OUTRA coisa é abortar com um erro - plz diga Exatamente o que ocorre aí ... Agora, de cara já digo que : a. se a tal atualização é uma Inserção de novos registros na tabela-filha, OBVIAMENTE o INSERT na tabela-pai deve acontecer antes do INSERT dos n registros-filhos relacionados com o novo pai b. se a tal atualização é um UPDATE na coluna-chave , se tal UPDATE ocorrer na tabela-pai como eu mostrei numa thread recente em havendo índice apropriado a tabela-fila NÃO ficará totalmente bloqueada, E (claro) se o UPDATE for na coluna-chave UK da tabela-filha, a verificação tem que ser feita na tabela-pai, e Necessariamente a tabela-pai já tem índice na PK e/ou na UK que se relaciona com a filha... []s Chiappa #yiv3852787615 #yiv3852787615 -- #yiv3852787615ygrp-mkp {border:1px solid #d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv3852787615 #yiv3852787615ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv3852787615 #yiv3852787615ygrp-mkp #yiv3852787615hd {color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 0;}#yiv3852787615 #yiv3852787615ygrp-mkp #yiv3852787615ads {margin-bottom:10px;}#yiv3852787615 #yiv3852787615ygrp-mkp .yiv3852787615ad {padding:0 0;}#yiv3852787615 #yiv3852787615ygrp-mkp .yiv3852787615ad p {margin:0;}#yiv3852787615 #yiv3852787615ygrp-mkp .yiv3852787615ad a {color:#ff;text-decoration:none;}#yiv3852787615 #yiv3852787615ygrp-sponsor #yiv3852787615ygrp-lc {font-family:Arial;}#yiv3852787615 #yiv3852787615ygrp-sponsor #yiv3852787615ygrp-lc #yiv3852787615hd {margin:10px 0px;font-weight:700;font-size:78%;line-height:122%;}#yiv3852787615 #yiv3852787615ygrp-sponsor #yiv3852787615ygrp-lc .yiv3852787615ad {margin-bottom:10px;padding:0 0;}#yiv3852787615 #yiv3852787615actions {font-family:Verdana;font-size:11px;padding:10px 0;}#yiv3852787615 #yiv3852787615activity {background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv3852787615 #yiv3852787615activity span {font-weight:700;}#yiv3852787615 #yiv3852787615activity span:first-child {text-transform:uppercase;}#yiv3852787615 #yiv3852787615activity span a {color:#5085b6;text-decoration:none;}#yiv3852787615 #yiv3852787615activity span span {color:#ff7900;}#yiv3852787615 #yiv3852787615activity span .yiv3852787615underline {text-decoration:underline;}#yiv3852787615 .yiv3852787615attach {clear:both;display:table;font-family:Arial;font-size:12px;padding:10px 0;width:400px;}#yiv3852787615 .yiv3852787615attach div a {text-decoration:none;}#yiv3852787615 .yiv3852787615attach img {border:none;padding-right:5px;}#yiv3852787615 .yiv3852787615attach label {display:block;margin-bottom:5px;}#yiv3852787615 .yiv3852787615attach label a {text-decoration:none;}#yiv3852787615 blockquote {margin:0 0 0 4px;}#yiv3852787615 .yiv3852787615bold {font-family:Arial;font-size:13px;font-weight:700;}#yiv3852787615 .yiv3852787615bold a {text-decoration:none;}#yiv3852787615 dd.yiv3852787615last p a {font-family:Verdana;font-weight:700;}#yiv3852787615 dd.yiv3852787615last p span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv3852787615 dd.yiv3852787615last p span.yiv3852787615yshortcuts {margin-right:0;}#yiv3852787615 div.yiv3852787615attach-table div div a {text-decoration:none;}#yiv3852787615 div.yiv3852787615attach-table {width:400px;}#yiv3852787615 div.yiv3852787615file-title a, #yiv3852787615 div.yiv3852787615file-title a:active, #yiv3852787615 div.yiv3852787615file-title a:hover, #yiv3852787615 div.yiv3852787615file-title a:visited {text-decoration:none;}#yiv3852787615 div.yiv3852787615photo-title a, #yiv3852787615 div.yiv3852787615photo-title a:active, #yiv3852787615 div.yiv3852787615photo-title a:hover, #yiv3852787615 div.yiv3852787615photo-title a:visited {text-decoration:none;}#yiv3852787615 div#yiv3852787615ygrp-mlmsg #yiv3852787615ygrp-msg p a span.yiv3852787615yshortcuts {font-family:Verdana;font-size:10px;font-weight:normal;}#yiv3852787615 .yiv3852787615green {color:#628c2a;}#yiv3852787615 .yiv3852787615MsoNormal {margin:0 0 0 0;}#yiv3852787615 o {font-size:0;}#yiv3852787615 #yiv3852787615photos div {float:left;width:72px;}#yiv3852787615 #yiv3852787615photos
Re: RES: [oracle_br] Update em tabela pai e filha
Ok, foram extremamente claros os conceitos, agradeço a todos.De fato, a pk composta de muitos campos como é o meu caso, só vai dificultar as coisas, vou criar um campo sequencial básico e retirar a pk da mesma. Acredito que assim ficará melhor manter as tabelas. Em Terça-feira, 16 de Dezembro de 2014 17:31, jlchia...@yahoo.com.br [oracle_br] oracle_br@yahoogrupos.com.br escreveu: Bem, realmente não é um design comum e corriqueiro, e sem dúvida a teoria e as melhores práticas de modelagem demandam que chaves sejam únicas e imutáveis (inclusive ao longo do tempo) mas é possível se existir essa necessidade : numa thread recente, eu demonstrei uma possibilidade, com um caso em que a relação de FK/PK na verdade era usada para se validar um domínio de valores (ie, a coluna-chave pode assumir um de N valores possíveis, numa qtdade total tão grande que invalida a possibilidade de escrever constraint de check), sendo que os valores possíveis estavam cadastrados na tabela-pai Vamos ver o que o colega lá que perguntou diz, mas IMAGINO que é algum caso nesse sentido, em que a chave na verdade indica um status, é um atributo que pode variar dentro de uma gama possível de valores no decorrer do tempo... []s Chiappa #yiv0464590561 #yiv0464590561 -- #yiv0464590561ygrp-mkp {border:1px solid #d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv0464590561 #yiv0464590561ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv0464590561 #yiv0464590561ygrp-mkp #yiv0464590561hd {color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 0;}#yiv0464590561 #yiv0464590561ygrp-mkp #yiv0464590561ads {margin-bottom:10px;}#yiv0464590561 #yiv0464590561ygrp-mkp .yiv0464590561ad {padding:0 0;}#yiv0464590561 #yiv0464590561ygrp-mkp .yiv0464590561ad p {margin:0;}#yiv0464590561 #yiv0464590561ygrp-mkp .yiv0464590561ad a {color:#ff;text-decoration:none;}#yiv0464590561 #yiv0464590561ygrp-sponsor #yiv0464590561ygrp-lc {font-family:Arial;}#yiv0464590561 #yiv0464590561ygrp-sponsor #yiv0464590561ygrp-lc #yiv0464590561hd {margin:10px 0px;font-weight:700;font-size:78%;line-height:122%;}#yiv0464590561 #yiv0464590561ygrp-sponsor #yiv0464590561ygrp-lc .yiv0464590561ad {margin-bottom:10px;padding:0 0;}#yiv0464590561 #yiv0464590561actions {font-family:Verdana;font-size:11px;padding:10px 0;}#yiv0464590561 #yiv0464590561activity {background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv0464590561 #yiv0464590561activity span {font-weight:700;}#yiv0464590561 #yiv0464590561activity span:first-child {text-transform:uppercase;}#yiv0464590561 #yiv0464590561activity span a {color:#5085b6;text-decoration:none;}#yiv0464590561 #yiv0464590561activity span span {color:#ff7900;}#yiv0464590561 #yiv0464590561activity span .yiv0464590561underline {text-decoration:underline;}#yiv0464590561 .yiv0464590561attach {clear:both;display:table;font-family:Arial;font-size:12px;padding:10px 0;width:400px;}#yiv0464590561 .yiv0464590561attach div a {text-decoration:none;}#yiv0464590561 .yiv0464590561attach img {border:none;padding-right:5px;}#yiv0464590561 .yiv0464590561attach label {display:block;margin-bottom:5px;}#yiv0464590561 .yiv0464590561attach label a {text-decoration:none;}#yiv0464590561 blockquote {margin:0 0 0 4px;}#yiv0464590561 .yiv0464590561bold {font-family:Arial;font-size:13px;font-weight:700;}#yiv0464590561 .yiv0464590561bold a {text-decoration:none;}#yiv0464590561 dd.yiv0464590561last p a {font-family:Verdana;font-weight:700;}#yiv0464590561 dd.yiv0464590561last p span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv0464590561 dd.yiv0464590561last p span.yiv0464590561yshortcuts {margin-right:0;}#yiv0464590561 div.yiv0464590561attach-table div div a {text-decoration:none;}#yiv0464590561 div.yiv0464590561attach-table {width:400px;}#yiv0464590561 div.yiv0464590561file-title a, #yiv0464590561 div.yiv0464590561file-title a:active, #yiv0464590561 div.yiv0464590561file-title a:hover, #yiv0464590561 div.yiv0464590561file-title a:visited {text-decoration:none;}#yiv0464590561 div.yiv0464590561photo-title a, #yiv0464590561 div.yiv0464590561photo-title a:active, #yiv0464590561 div.yiv0464590561photo-title a:hover, #yiv0464590561 div.yiv0464590561photo-title a:visited {text-decoration:none;}#yiv0464590561 div#yiv0464590561ygrp-mlmsg #yiv0464590561ygrp-msg p a span.yiv0464590561yshortcuts {font-family:Verdana;font-size:10px;font-weight:normal;}#yiv0464590561 .yiv0464590561green {color:#628c2a;}#yiv0464590561 .yiv0464590561MsoNormal {margin:0 0 0 0;}#yiv0464590561 o {font-size:0;}#yiv0464590561 #yiv0464590561photos div {float:left;width:72px;}#yiv0464590561 #yiv0464590561photos div div {border:1px solid #66;height:62px;overflow:hidden;width:62px;}#yiv0464590561 #yiv0464590561photos div label {color:#66;font-size:10px;overflow:hidden;text-align:center;white-space:nowrap;width:64px;}#yiv0464590561
Re: [oracle_br] Dúvida para uma ordenação (order by)
Obrigado pelas sugestões Victor... Em Segunda-feira, 15 de Dezembro de 2014 12:04, Victor Freidinger victor_freidin...@yahoo.com.br [oracle_br] oracle_br@yahoogrupos.com.br escreveu: Olá, tudo bem? Você pode alterar pelos 2.Caso haja 2 datas iguais, exatamente, você pode ordenar pela PK: Order by campo_data, campo_pk Isso te daria uma precisão maior.Porém, eu indicaria utilizar o campo PK por, normalmente, ser um index e para trazer as informações, seria mais rápido. Isso pensando que você terá uma massa de dados enorme. Se for poucos dados, ai você precisa realizar alguns testes de performance.Se você garantir que quando é inserido os dados na tabela a sequence alimenta corretamente o campo da PK, utilize o campo, então. Porém, se houver um update no campo de data, você perde essa garantia. Espero ter ajudado.Abs Em Sexta-feira, 12 de Dezembro de 2014 17:31, Jales Jose Moraes malphig...@yahoo.com.br [oracle_br] oracle_br@yahoogrupos.com.br escreveu: Senhores estou precisando ordernar uma tabela e nela tem um campo tipo date no qual tem várias data igual (inclusive o segundos). Pergunto: Posso ordernar com base na pk da tabela (no qual é uma sequence) ou altero o campo date para timestamp e assim consigo uma precisão maior para a ordenação. #yiv9903728948 #yiv9903728948 -- #yiv9903728948ygrp-mkp {border:1px solid #d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv9903728948 #yiv9903728948ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv9903728948 #yiv9903728948ygrp-mkp #yiv9903728948hd {color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 0;}#yiv9903728948 #yiv9903728948ygrp-mkp #yiv9903728948ads {margin-bottom:10px;}#yiv9903728948 #yiv9903728948ygrp-mkp .yiv9903728948ad {padding:0 0;}#yiv9903728948 #yiv9903728948ygrp-mkp .yiv9903728948ad p {margin:0;}#yiv9903728948 #yiv9903728948ygrp-mkp .yiv9903728948ad a {color:#ff;text-decoration:none;}#yiv9903728948 #yiv9903728948ygrp-sponsor #yiv9903728948ygrp-lc {font-family:Arial;}#yiv9903728948 #yiv9903728948ygrp-sponsor #yiv9903728948ygrp-lc #yiv9903728948hd {margin:10px 0px;font-weight:700;font-size:78%;line-height:122%;}#yiv9903728948 #yiv9903728948ygrp-sponsor #yiv9903728948ygrp-lc .yiv9903728948ad {margin-bottom:10px;padding:0 0;}#yiv9903728948 #yiv9903728948actions {font-family:Verdana;font-size:11px;padding:10px 0;}#yiv9903728948 #yiv9903728948activity {background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv9903728948 #yiv9903728948activity span {font-weight:700;}#yiv9903728948 #yiv9903728948activity span:first-child {text-transform:uppercase;}#yiv9903728948 #yiv9903728948activity span a {color:#5085b6;text-decoration:none;}#yiv9903728948 #yiv9903728948activity span span {color:#ff7900;}#yiv9903728948 #yiv9903728948activity span .yiv9903728948underline {text-decoration:underline;}#yiv9903728948 .yiv9903728948attach {clear:both;display:table;font-family:Arial;font-size:12px;padding:10px 0;width:400px;}#yiv9903728948 .yiv9903728948attach div a {text-decoration:none;}#yiv9903728948 .yiv9903728948attach img {border:none;padding-right:5px;}#yiv9903728948 .yiv9903728948attach label {display:block;margin-bottom:5px;}#yiv9903728948 .yiv9903728948attach label a {text-decoration:none;}#yiv9903728948 blockquote {margin:0 0 0 4px;}#yiv9903728948 .yiv9903728948bold {font-family:Arial;font-size:13px;font-weight:700;}#yiv9903728948 .yiv9903728948bold a {text-decoration:none;}#yiv9903728948 dd.yiv9903728948last p a {font-family:Verdana;font-weight:700;}#yiv9903728948 dd.yiv9903728948last p span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv9903728948 dd.yiv9903728948last p span.yiv9903728948yshortcuts {margin-right:0;}#yiv9903728948 div.yiv9903728948attach-table div div a {text-decoration:none;}#yiv9903728948 div.yiv9903728948attach-table {width:400px;}#yiv9903728948 div.yiv9903728948file-title a, #yiv9903728948 div.yiv9903728948file-title a:active, #yiv9903728948 div.yiv9903728948file-title a:hover, #yiv9903728948 div.yiv9903728948file-title a:visited {text-decoration:none;}#yiv9903728948 div.yiv9903728948photo-title a, #yiv9903728948 div.yiv9903728948photo-title a:active, #yiv9903728948 div.yiv9903728948photo-title a:hover, #yiv9903728948 div.yiv9903728948photo-title a:visited {text-decoration:none;}#yiv9903728948 div#yiv9903728948ygrp-mlmsg #yiv9903728948ygrp-msg p a span.yiv9903728948yshortcuts {font-family:Verdana;font-size:10px;font-weight:normal;}#yiv9903728948 .yiv9903728948green {color:#628c2a;}#yiv9903728948 .yiv9903728948MsoNormal {margin:0 0 0 0;}#yiv9903728948 o {font-size:0;}#yiv9903728948 #yiv9903728948photos div {float:left;width:72px;}#yiv9903728948 #yiv9903728948photos div div {border:1px solid #66;height:62px;overflow:hidden;width:62px;}#yiv9903728948 #yiv9903728948photos div label {color:#66;font-size:10px;overflow:hidden;text-align:center;white-space:nowrap
[oracle_br] Dúvida para uma ordenação (order by)
Senhores estou precisando ordernar uma tabela e nela tem um campo tipo date no qual tem várias data igual (inclusive o segundos). Pergunto: Posso ordernar com base na pk da tabela (no qual é uma sequence) ou altero o campo date para timestamp e assim consigo uma precisão maior para a ordenação.
[oracle_br] ìndices em FK's
Senhores tenho uma tabela com apenas 18 registros e que faz uma fk com uma tabela de 180 registros (bastante acessada). Esta tabela de 18 registros uma vez ou outra está bloqueando algumas sessões quando vai fazer um update neste campo da fk. Minha pergunta: É necessário criar um índice no campo desta fk, apesar desta pequena quantidade de registros? Se sim, posso então seguir esta hipótese, ou seja, criar índices para todos os campos que fazem FK's?
Re: [oracle_br] Re: ìndices em FK's
A tabela pequena é a tabela filha. Funciona assim: Esta tabela pequena tem 2 colunas (co_tp_documento, nu_seq_documento) no qual pode ter valores como DOCUMENTO EXTERNO; DOCUMENTO EM TRAMITAÇÃO, DOCUMENTO SEM ATOS PUBLICADOS, etc...(são milhões de possibilidades no qual esse documento pode existir) Acontece que alguns documentos podem sofrer alterações e aí precisamos fazer essa alteração nesta pequena tabela. Espero ter sido claro. Em Segunda-feira, 8 de Dezembro de 2014 17:21, jlchia...@yahoo.com.br [oracle_br] oracle_br@yahoogrupos.com.br escreveu: Pra gente poder entender, ** please ** explica melhor esse faz FK aí : a tabela com 18 registros é a tabela PAI ou é a tabela FILHA nesse relacionamento com a tabela de 1.800.000 registros ?? E outra coisa : por definição, em princípio as chaves de uma tabela (sejam PK, sejam UK, sejam FK) ** deveriam ** ser imutáveis ou quase isso, dificilmente sofrendo UPDATEs de valores (o registro em si pode sofrer updates mil em outras colunas, normal, mas as Colunas chave deveriam ser ** CHAVE **, deveriam ser Imunes á alterações / flutuações de dados,yes) ??? Então explica pra gente essa lógica aí de colunas chave (FK, chave estrangeira, que seja) sofrendo constantes UPDATEs. []s Chiappa #yiv7536057975 #yiv7536057975 -- #yiv7536057975ygrp-mkp {border:1px solid #d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv7536057975 #yiv7536057975ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv7536057975 #yiv7536057975ygrp-mkp #yiv7536057975hd {color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 0;}#yiv7536057975 #yiv7536057975ygrp-mkp #yiv7536057975ads {margin-bottom:10px;}#yiv7536057975 #yiv7536057975ygrp-mkp .yiv7536057975ad {padding:0 0;}#yiv7536057975 #yiv7536057975ygrp-mkp .yiv7536057975ad p {margin:0;}#yiv7536057975 #yiv7536057975ygrp-mkp .yiv7536057975ad a {color:#ff;text-decoration:none;}#yiv7536057975 #yiv7536057975ygrp-sponsor #yiv7536057975ygrp-lc {font-family:Arial;}#yiv7536057975 #yiv7536057975ygrp-sponsor #yiv7536057975ygrp-lc #yiv7536057975hd {margin:10px 0px;font-weight:700;font-size:78%;line-height:122%;}#yiv7536057975 #yiv7536057975ygrp-sponsor #yiv7536057975ygrp-lc .yiv7536057975ad {margin-bottom:10px;padding:0 0;}#yiv7536057975 #yiv7536057975actions {font-family:Verdana;font-size:11px;padding:10px 0;}#yiv7536057975 #yiv7536057975activity {background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv7536057975 #yiv7536057975activity span {font-weight:700;}#yiv7536057975 #yiv7536057975activity span:first-child {text-transform:uppercase;}#yiv7536057975 #yiv7536057975activity span a {color:#5085b6;text-decoration:none;}#yiv7536057975 #yiv7536057975activity span span {color:#ff7900;}#yiv7536057975 #yiv7536057975activity span .yiv7536057975underline {text-decoration:underline;}#yiv7536057975 .yiv7536057975attach {clear:both;display:table;font-family:Arial;font-size:12px;padding:10px 0;width:400px;}#yiv7536057975 .yiv7536057975attach div a {text-decoration:none;}#yiv7536057975 .yiv7536057975attach img {border:none;padding-right:5px;}#yiv7536057975 .yiv7536057975attach label {display:block;margin-bottom:5px;}#yiv7536057975 .yiv7536057975attach label a {text-decoration:none;}#yiv7536057975 blockquote {margin:0 0 0 4px;}#yiv7536057975 .yiv7536057975bold {font-family:Arial;font-size:13px;font-weight:700;}#yiv7536057975 .yiv7536057975bold a {text-decoration:none;}#yiv7536057975 dd.yiv7536057975last p a {font-family:Verdana;font-weight:700;}#yiv7536057975 dd.yiv7536057975last p span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv7536057975 dd.yiv7536057975last p span.yiv7536057975yshortcuts {margin-right:0;}#yiv7536057975 div.yiv7536057975attach-table div div a {text-decoration:none;}#yiv7536057975 div.yiv7536057975attach-table {width:400px;}#yiv7536057975 div.yiv7536057975file-title a, #yiv7536057975 div.yiv7536057975file-title a:active, #yiv7536057975 div.yiv7536057975file-title a:hover, #yiv7536057975 div.yiv7536057975file-title a:visited {text-decoration:none;}#yiv7536057975 div.yiv7536057975photo-title a, #yiv7536057975 div.yiv7536057975photo-title a:active, #yiv7536057975 div.yiv7536057975photo-title a:hover, #yiv7536057975 div.yiv7536057975photo-title a:visited {text-decoration:none;}#yiv7536057975 div#yiv7536057975ygrp-mlmsg #yiv7536057975ygrp-msg p a span.yiv7536057975yshortcuts {font-family:Verdana;font-size:10px;font-weight:normal;}#yiv7536057975 .yiv7536057975green {color:#628c2a;}#yiv7536057975 .yiv7536057975MsoNormal {margin:0 0 0 0;}#yiv7536057975 o {font-size:0;}#yiv7536057975 #yiv7536057975photos div {float:left;width:72px;}#yiv7536057975 #yiv7536057975photos div div {border:1px solid #66;height:62px;overflow:hidden;width:62px;}#yiv7536057975 #yiv7536057975photos div label
Re: [oracle_br] Re: ìndices em FK's
Está invertido não, a tabela pai foi criada em 1998 e a tabela filha é recente, não tem 02 meses de uso. Em Segunda-feira, 8 de Dezembro de 2014 17:46, angelo angelolis...@gmail.com [oracle_br] oracle_br@yahoogrupos.com.br escreveu: Isso não tá invertido não ? 2014-12-08 17:21 GMT-02:00 jlchia...@yahoo.com.br [oracle_br] oracle_br@yahoogrupos.com.br: Pra gente poder entender, ** please ** explica melhor esse faz FK aí : a tabela com 18 registros é a tabela PAI ou é a tabela FILHA nesse relacionamento com a tabela de 1.800.000 registros ?? E outra coisa : por definição, em princípio as chaves de uma tabela (sejam PK, sejam UK, sejam FK) ** deveriam ** ser imutáveis ou quase isso, dificilmente sofrendo UPDATEs de valores (o registro em si pode sofrer updates mil em outras colunas, normal, mas as Colunas chave deveriam ser ** CHAVE **, deveriam ser Imunes á alterações / flutuações de dados,yes) ??? Então explica pra gente essa lógica aí de colunas chave (FK, chave estrangeira, que seja) sofrendo constantes UPDATEs. []s Chiappa #yiv6217414686 #yiv6217414686 -- #yiv6217414686ygrp-mkp {border:1px solid #d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv6217414686 #yiv6217414686ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv6217414686 #yiv6217414686ygrp-mkp #yiv6217414686hd {color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 0;}#yiv6217414686 #yiv6217414686ygrp-mkp #yiv6217414686ads {margin-bottom:10px;}#yiv6217414686 #yiv6217414686ygrp-mkp .yiv6217414686ad {padding:0 0;}#yiv6217414686 #yiv6217414686ygrp-mkp .yiv6217414686ad p {margin:0;}#yiv6217414686 #yiv6217414686ygrp-mkp .yiv6217414686ad a {color:#ff;text-decoration:none;}#yiv6217414686 #yiv6217414686ygrp-sponsor #yiv6217414686ygrp-lc {font-family:Arial;}#yiv6217414686 #yiv6217414686ygrp-sponsor #yiv6217414686ygrp-lc #yiv6217414686hd {margin:10px 0px;font-weight:700;font-size:78%;line-height:122%;}#yiv6217414686 #yiv6217414686ygrp-sponsor #yiv6217414686ygrp-lc .yiv6217414686ad {margin-bottom:10px;padding:0 0;}#yiv6217414686 #yiv6217414686actions {font-family:Verdana;font-size:11px;padding:10px 0;}#yiv6217414686 #yiv6217414686activity {background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv6217414686 #yiv6217414686activity span {font-weight:700;}#yiv6217414686 #yiv6217414686activity span:first-child {text-transform:uppercase;}#yiv6217414686 #yiv6217414686activity span a {color:#5085b6;text-decoration:none;}#yiv6217414686 #yiv6217414686activity span span {color:#ff7900;}#yiv6217414686 #yiv6217414686activity span .yiv6217414686underline {text-decoration:underline;}#yiv6217414686 .yiv6217414686attach {clear:both;display:table;font-family:Arial;font-size:12px;padding:10px 0;width:400px;}#yiv6217414686 .yiv6217414686attach div a {text-decoration:none;}#yiv6217414686 .yiv6217414686attach img {border:none;padding-right:5px;}#yiv6217414686 .yiv6217414686attach label {display:block;margin-bottom:5px;}#yiv6217414686 .yiv6217414686attach label a {text-decoration:none;}#yiv6217414686 blockquote {margin:0 0 0 4px;}#yiv6217414686 .yiv6217414686bold {font-family:Arial;font-size:13px;font-weight:700;}#yiv6217414686 .yiv6217414686bold a {text-decoration:none;}#yiv6217414686 dd.yiv6217414686last p a {font-family:Verdana;font-weight:700;}#yiv6217414686 dd.yiv6217414686last p span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv6217414686 dd.yiv6217414686last p span.yiv6217414686yshortcuts {margin-right:0;}#yiv6217414686 div.yiv6217414686attach-table div div a {text-decoration:none;}#yiv6217414686 div.yiv6217414686attach-table {width:400px;}#yiv6217414686 div.yiv6217414686file-title a, #yiv6217414686 div.yiv6217414686file-title a:active, #yiv6217414686 div.yiv6217414686file-title a:hover, #yiv6217414686 div.yiv6217414686file-title a:visited {text-decoration:none;}#yiv6217414686 div.yiv6217414686photo-title a, #yiv6217414686 div.yiv6217414686photo-title a:active, #yiv6217414686 div.yiv6217414686photo-title a:hover, #yiv6217414686 div.yiv6217414686photo-title a:visited {text-decoration:none;}#yiv6217414686 div#yiv6217414686ygrp-mlmsg #yiv6217414686ygrp-msg p a span.yiv6217414686yshortcuts {font-family:Verdana;font-size:10px;font-weight:normal;}#yiv6217414686 .yiv6217414686green {color:#628c2a;}#yiv6217414686 .yiv6217414686MsoNormal {margin:0 0 0 0;}#yiv6217414686 o {font-size:0;}#yiv6217414686 #yiv6217414686photos div {float:left;width:72px;}#yiv6217414686 #yiv6217414686photos div div {border:1px solid #66;height:62px;overflow:hidden;width:62px;}#yiv6217414686 #yiv6217414686photos div label {color:#66;font-size:10px;overflow:hidden;text-align:center;white-space:nowrap;width:64px;}#yiv6217414686 #yiv6217414686reco-category {font-size:77%;}#yiv6217414686 #yiv6217414686reco-desc {font-size:77%;}#yiv6217414686 .yiv6217414686replbq {margin:4px;}#yiv6217414686 #yiv6217414686ygrp-actbar
Re: [oracle_br] Equiparação de bases
Obrigado vitor, ajudou muito. Respondendo à sua pergunta, o que queríamos era gerar um arquivo com as comparações entre as bases e depois implementar as diferenças na base de produção. Em Quarta-feira, 26 de Novembro de 2014 13:11, Vitor Junior vitorj...@gmail.com [oracle_br] oracle_br@yahoogrupos.com.br escreveu: Aniway: http://apgdiff.com/ Att,/Regards, Vitor Jr. Infraestrutura / Infrastructure Team Oracle 11g DBA Certified Professional - OCPOracle 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: vjunior1981https://mybizcard.co/vitor.jr.385628 Em 26 de novembro de 2014 12:52, Jales Jose Moraes malphig...@yahoo.com.br [oracle_br] oracle_br@yahoogrupos.com.br escreveu: Senhores sei que este não é o canal, mas como estou precisando urgentemente do serviço, vou perguntar por aqui mesmo: Estou precisando equiparar as bases de homologação com a de produção no POSTGRES, alguém sabe uma ferramenta para tal serviço (se possível free)? Para o Oracle eu uso o TOAD, mas não tem para o Postgres... #yiv9238749240 #yiv9238749240 -- #yiv9238749240ygrp-mkp {border:1px solid #d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv9238749240 #yiv9238749240ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv9238749240 #yiv9238749240ygrp-mkp #yiv9238749240hd {color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 0;}#yiv9238749240 #yiv9238749240ygrp-mkp #yiv9238749240ads {margin-bottom:10px;}#yiv9238749240 #yiv9238749240ygrp-mkp .yiv9238749240ad {padding:0 0;}#yiv9238749240 #yiv9238749240ygrp-mkp .yiv9238749240ad p {margin:0;}#yiv9238749240 #yiv9238749240ygrp-mkp .yiv9238749240ad a {color:#ff;text-decoration:none;}#yiv9238749240 #yiv9238749240ygrp-sponsor #yiv9238749240ygrp-lc {font-family:Arial;}#yiv9238749240 #yiv9238749240ygrp-sponsor #yiv9238749240ygrp-lc #yiv9238749240hd {margin:10px 0px;font-weight:700;font-size:78%;line-height:122%;}#yiv9238749240 #yiv9238749240ygrp-sponsor #yiv9238749240ygrp-lc .yiv9238749240ad {margin-bottom:10px;padding:0 0;}#yiv9238749240 #yiv9238749240actions {font-family:Verdana;font-size:11px;padding:10px 0;}#yiv9238749240 #yiv9238749240activity {background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv9238749240 #yiv9238749240activity span {font-weight:700;}#yiv9238749240 #yiv9238749240activity span:first-child {text-transform:uppercase;}#yiv9238749240 #yiv9238749240activity span a {color:#5085b6;text-decoration:none;}#yiv9238749240 #yiv9238749240activity span span {color:#ff7900;}#yiv9238749240 #yiv9238749240activity span .yiv9238749240underline {text-decoration:underline;}#yiv9238749240 .yiv9238749240attach {clear:both;display:table;font-family:Arial;font-size:12px;padding:10px 0;width:400px;}#yiv9238749240 .yiv9238749240attach div a {text-decoration:none;}#yiv9238749240 .yiv9238749240attach img {border:none;padding-right:5px;}#yiv9238749240 .yiv9238749240attach label {display:block;margin-bottom:5px;}#yiv9238749240 .yiv9238749240attach label a {text-decoration:none;}#yiv9238749240 blockquote {margin:0 0 0 4px;}#yiv9238749240 .yiv9238749240bold {font-family:Arial;font-size:13px;font-weight:700;}#yiv9238749240 .yiv9238749240bold a {text-decoration:none;}#yiv9238749240 dd.yiv9238749240last p a {font-family:Verdana;font-weight:700;}#yiv9238749240 dd.yiv9238749240last p span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv9238749240 dd.yiv9238749240last p span.yiv9238749240yshortcuts {margin-right:0;}#yiv9238749240 div.yiv9238749240attach-table div div a {text-decoration:none;}#yiv9238749240 div.yiv9238749240attach-table {width:400px;}#yiv9238749240 div.yiv9238749240file-title a, #yiv9238749240 div.yiv9238749240file-title a:active, #yiv9238749240 div.yiv9238749240file-title a:hover, #yiv9238749240 div.yiv9238749240file-title a:visited {text-decoration:none;}#yiv9238749240 div.yiv9238749240photo-title a, #yiv9238749240 div.yiv9238749240photo-title a:active, #yiv9238749240 div.yiv9238749240photo-title a:hover, #yiv9238749240 div.yiv9238749240photo-title a:visited {text-decoration:none;}#yiv9238749240 div#yiv9238749240ygrp-mlmsg #yiv9238749240ygrp-msg p a span.yiv9238749240yshortcuts {font-family:Verdana;font-size:10px;font-weight:normal;}#yiv9238749240 .yiv9238749240green {color:#628c2a;}#yiv9238749240 .yiv9238749240MsoNormal {margin:0 0 0 0;}#yiv9238749240 o {font-size:0;}#yiv9238749240 #yiv9238749240photos div {float:left;width:72px;}#yiv9238749240 #yiv9238749240photos div div {border:1px solid #66;height:62px;overflow:hidden;width:62px;}#yiv9238749240 #yiv9238749240photos div label {color:#66;font-size:10px;overflow:hidden;text-align:center;white
[oracle_br] Equiparação de bases
Senhores sei que este não é o canal, mas como estou precisando urgentemente do serviço, vou perguntar por aqui mesmo: Estou precisando equiparar as bases de homologação com a de produção no POSTGRES, alguém sabe uma ferramenta para tal serviço (se possível free)? Para o Oracle eu uso o TOAD, mas não tem para o Postgres...
Re: [oracle_br] Re: Levantamento (auditoria) de objetos
Iremos analisar cuidadosamente as suas explicações. Obrigado... Em Terça-feira, 11 de Novembro de 2014 10:03, jlchia...@yahoo.com.br [oracle_br] oracle_br@yahoogrupos.com.br escreveu: Blz ?? Antes de responder, observo que ** justamente ** se o ambiente aí é grande e complexo (no sentido de diversas equipes mexendo, n alterações publicadas toda semana), é NESSE CASO que a Documentação TINHA que ser considerada mais importante, saca ? Sei que por conta de desenvolvimento ágil (entre aspas TOTAIS aqui) as primeiras coisas que neguim corta justamente são a Documentação e a Homologação, aí os poucos minutos poupados nisso se transformam em HORAS depois quando precisa de debug e/ou verificação ou controladoria Corige isso senão vc vai ficar a vida inteira só apagando incêndio Isso dito, a resposta : primeiro falando sobre AUDITORIA, realmente essa é a única opção se vc quer ter SEGURANÇA, evitar falsos positivos e/ou perda de dados, pois as outras opções que vamos comentar (como usar a contagem de modificações da tabela, por exemplo) não são 100% garantidas... Bom, realmente a AUDITORIA (seja via comando AUDIT, seja via triggers, seja via FGA) implica em se fazer um pequeno INSERT numa tabela (ou uma pequena gravação, incluir uma linha, num arquivo-texto) então CLARO que traz consigo algum overhead (óbvio, é mais custoso fazer alguma coisa do que não fazer :) , mas é algo pequeno, ** EM ESPECIAL ** se (como é o seu caso) vc só quer auditar os comandos (ie, vc só quer saber quem/quando fez o SELECT/INSERT/UPDATE/DELETE, ao que entendo vc ** Não ** quer saber quais dados foram consultados/alterados/inseridos/deletados) ULULANTEMENTE óbvio que a medida exata do overhead vc só pode medir no SEU ambiente, com o SEU hardware, claro, mas tipicamente esse pequeno INSERT de uma linha a mais devido à auditoria implica isso implica em coisa de um ou dois segundos a mais para cada comando auditado : um banco que um INSERT único de uma linha numa tabela pequena leva sensivelmente mais que isso pra mim tá BEM doente, não tá legal não Caberia a vc confirmar se isso é algo passível de se ter no seu ambiente (de repente o seu ambiente tem SLA/exigências de performance tão sérias que nem isso é tolerado), e fazer um TESTE PRÁTICO no ambiente, preferencialmente no ambiente HOMOLOGAÇÃO, que é bem parecido com produção - vc TEM um ambiente Homologação, né :) Sobre alternativas : antes de mais nada, para podermos indicar alternativas, PLEASE nos diga : o que é tabela não acessada para vc ? É tabela que não sofreu realmente NENHUM acesso (ie, nem por query) ou vc quer saber só tabelas que não sofreram DMLs ? As tabelas foram criadas com a propriedade de MONITORING ?? Quando vc coleta estatísticas pra elas ? Os SQLs das Aplicações que acessam as tabelas estão gravados todos dentro do database (em stored PL/SQLs, como packages ou procedures/functions) ou não ?? Se não estiverem no database, os SQLs estão todos na Aplicação, ou o usuário pode cismar de fazer SQLs ad-hoc, por fora ? Vc tem os FONTES da Aplicação, e eles são passíveis de busca/pesquisa por tabelas ? O ambiente é movimentado (ie, a cada minuto novos e múltiplos SQLs entram em cache) ou não ? O AWR/ASH está Ativo nesse database, e vc tem Licença para consultar ? === COM essas respostas, nós poderemos indicar alternativas às opções de Auditoria, que girariam em torno de : busca por tabelas nos SQLs, utilização da view DBA_TAB_MODIFICATIONS, contagem de colunas de metadados das tabelas (como NUM_ROWS), acesso aos dados já coletados do AWR/ASH, e coisas do tipo... []s Chiappa
Re: [oracle_br] Re: Levantamento (auditoria) de objetos
Boa tarde! Chiappa respondendo as suas perguntas... Sim, os sistemas aqui são bem grandes. Mas por grande mesmo, são apenas as estruturas na base de dados, porque dados mesmo são poucos. O que queremos a princípio (e como você mesmo escreveu) ja que realmente a documentação é extremamente pobre, é fazer um levantamento de uns 04 meses para cá e verificar apenas os objetos na base que não sofreram nenhuma alteração (select, insert, update, delete), e partir daí, ou seja, após a base enxuta, inicializarmos então a modelagem juntamente com a documentação. Em Terça-feira, 11 de Novembro de 2014 11:11, Jales Jose Moraes malphig...@yahoo.com.br [oracle_br] oracle_br@yahoogrupos.com.br escreveu: Iremos analisar cuidadosamente as suas explicações. Obrigado... Em Terça-feira, 11 de Novembro de 2014 10:03, jlchia...@yahoo.com.br [oracle_br] oracle_br@yahoogrupos.com.br escreveu: Blz ?? Antes de responder, observo que ** justamente ** se o ambiente aí é grande e complexo (no sentido de diversas equipes mexendo, n alterações publicadas toda semana), é NESSE CASO que a Documentação TINHA que ser considerada mais importante, saca ? Sei que por conta de desenvolvimento ágil (entre aspas TOTAIS aqui) as primeiras coisas que neguim corta justamente são a Documentação e a Homologação, aí os poucos minutos poupados nisso se transformam em HORAS depois quando precisa de debug e/ou verificação ou controladoria Corige isso senão vc vai ficar a vida inteira só apagando incêndio Isso dito, a resposta : primeiro falando sobre AUDITORIA, realmente essa é a única opção se vc quer ter SEGURANÇA, evitar falsos positivos e/ou perda de dados, pois as outras opções que vamos comentar (como usar a contagem de modificações da tabela, por exemplo) não são 100% garantidas... Bom, realmente a AUDITORIA (seja via comando AUDIT, seja via triggers, seja via FGA) implica em se fazer um pequeno INSERT numa tabela (ou uma pequena gravação, incluir uma linha, num arquivo-texto) então CLARO que traz consigo algum overhead (óbvio, é mais custoso fazer alguma coisa do que não fazer :) , mas é algo pequeno, ** EM ESPECIAL ** se (como é o seu caso) vc só quer auditar os comandos (ie, vc só quer saber quem/quando fez o SELECT/INSERT/UPDATE/DELETE, ao que entendo vc ** Não ** quer saber quais dados foram consultados/alterados/inseridos/deletados) ULULANTEMENTE óbvio que a medida exata do overhead vc só pode medir no SEU ambiente, com o SEU hardware, claro, mas tipicamente esse pequeno INSERT de uma linha a mais devido à auditoria implica isso implica em coisa de um ou dois segundos a mais para cada comando auditado : um banco que um INSERT único de uma linha numa tabela pequena leva sensivelmente mais que isso pra mim tá BEM doente, não tá legal não Caberia a vc confirmar se isso é algo passível de se ter no seu ambiente (de repente o seu ambiente tem SLA/exigências de performance tão sérias que nem isso é tolerado), e fazer um TESTE PRÁTICO no ambiente, preferencialmente no ambiente HOMOLOGAÇÃO, que é bem parecido com produção - vc TEM um ambiente Homologação, né :) Sobre alternativas : antes de mais nada, para podermos indicar alternativas, PLEASE nos diga : o que é tabela não acessada para vc ? É tabela que não sofreu realmente NENHUM acesso (ie, nem por query) ou vc quer saber só tabelas que não sofreram DMLs ? As tabelas foram criadas com a propriedade de MONITORING ?? Quando vc coleta estatísticas pra elas ? Os SQLs das Aplicações que acessam as tabelas estão gravados todos dentro do database (em stored PL/SQLs, como packages ou procedures/functions) ou não ?? Se não estiverem no database, os SQLs estão todos na Aplicação, ou o usuário pode cismar de fazer SQLs ad-hoc, por fora ? Vc tem os FONTES da Aplicação, e eles são passíveis de busca/pesquisa por tabelas ? O ambiente é movimentado (ie, a cada minuto novos e múltiplos SQLs entram em cache) ou não ? O AWR/ASH está Ativo nesse database, e vc tem Licença para consultar ? === COM essas respostas, nós poderemos indicar alternativas às opções de Auditoria, que girariam em torno de : busca por tabelas nos SQLs, utilização da view DBA_TAB_MODIFICATIONS, contagem de colunas de metadados das tabelas (como NUM_ROWS), acesso aos dados já coletados do AWR/ASH, e coisas do tipo... []s Chiappa
Re: [oracle_br] Re: Levantamento (auditoria) de objetos
Chiappa no caso de se verificar apenas os selects em determinadas tabelas, é possível fazer via trigger? Ja que a principio A trigger é apenas para INSERT-UPDATE E DELETE... Em Terça-feira, 11 de Novembro de 2014 13:29, jlchia...@yahoo.com.br [oracle_br] oracle_br@yahoogrupos.com.br escreveu: okdoc : levante os pontos que perguntei para verificarmos se alguma alternativa já está presente e pode ser indicada - EM ESPECIAL as perguntas sobre SQLs e fontes, pois ao que parece ou trabalha numa soft-house ou a sua empresa está com múltiplos projetos de desenvolvimento em paralelo, pelo que vc diz, então a chance de se fazer levantamento pelo código parece ser boa, mas SEM deixar de responder aos outros pontos, também Caso nenhuma alternativa possa ser indicada e/ou o levantamento não possa ser feito de forma segura e completa, aí é partir mesmo pra Auditoria, com a importante Observação que (Obviamente) a Auditoria NÂO pega o passado, ela só registra do ponto que vc a Ativa para a frente : assim, se vc optar por Auditoria, vc a liga hoje para ter os dados coltedaos daqui a algumas semanas, ou mesmo daqui a mais de um mês (justamente para tentar evitar o caso de alguma tabela usada Esporadicamente, nalguma rotina de fechamento de mês ou coisa assim) []s Chiappa
[oracle_br] Levantamento (auditoria) de objetos
Senhores temos uma schema muito grande (em termos de objetos), são só de tabelas 984. Gostaria de realizar uma auditoria na base, para verificar quais tabelas não foram acessadas nos últimos 03 meses, mas nos disseram aqui que isso é muito oneroso para o banco (processamento e armazenamento). Pergunto: - De fato é oneroso? Já que seria por um período transitório! - Há uma outra alternativa em que podemos usar para atender o nosso propósito?
Re: [oracle_br] Subconjunto via select
Funcionou demais. Obrigado!!! Em Quinta-feira, 9 de Outubro de 2014 10:45, Ernesto Oliveira erli...@gmail.com [oracle_br] oracle_br@yahoogrupos.com.br escreveu: Ve se ajuda: select '(2001,Null,(-44,001594771164,-19,488908057749,Null),Null,Null)' Texto, substr('(2001,Null,(-44,001594771164,-19,488908057749,Null),Null,Null)', (instr('(2001,Null,(-44,001594771164,-19,488908057749,Null),Null,Null)',',',1,2)+2), ((instr('(2001,Null,(-44,001594771164,-19,488908057749,Null),Null,Null)',',',1,4))- (instr('(2001,Null,(-44,001594771164,-19,488908057749,Null),Null,Null)',',',1,2)+2)) ) Campo1, substr('(2001,Null,(-44,001594771164,-19,488908057749,Null),Null,Null)', (instr('(2001,Null,(-44,001594771164,-19,488908057749,Null),Null,Null)',',',1,4)+1), ((instr('(2001,Null,(-44,001594771164,-19,488908057749,Null),Null,Null)',',',1,6))- (instr('(2001,Null,(-44,001594771164,-19,488908057749,Null),Null,Null)',',',1,4)+1)) ) Campo2 from dual Saída: TEXTO CAMPO1 CAMPO2 (2001,Null,(-44,001594771164,-19,488908057749,Null),Null,Null) -44,001594771164 -19,488908057749 Ernesto Oliveira Em 6 de outubro de 2014 13:33, Jales Jose Moraes malphig...@yahoo.com.br [oracle_br] oracle_br@yahoogrupos.com.br escreveu: Pessoal preciso extrair os valores -44,001594771164 para uma coluna e o -19,488908057749 para outra coluna de acordo com o formato abaixo. É possível uma consulta que atenda o próposito? (2001,Null,(-44,001594771164,-19,488908057749,Null),Null,Null)
[oracle_br] Subconjunto via select
Pessoal preciso extrair os valores -44,001594771164 para uma coluna e o -19,488908057749 para outra coluna de acordo com o formato abaixo. É possível uma consulta que atenda o próposito? (2001,Null,(-44,001594771164,-19,488908057749,Null),Null,Null)
[oracle_br] Result set para o excel
Senhores tenho um campo com um CLOB no meu result set, acontece que ao exporta-lo juntamente com outros campos para um .xls aparece apenas um dado em uma célula e se omitir o clob, as outras colunas/registros vem normalmente. Poderiam dar uma ajuda na solução?
[oracle_br] Criar tabela a partir de arquivo
Senhores é possível criar uma tabela diretamente de um arquivo (.csv, .xls)? Pergunto pois estamos constantemente recebendo arquivos para serem criadas tabelas temporárias e está muito chato analisar a estrutura dos arquivos para depois gerar os create tables... Minhas ferramentas client são o TOAD, Navigator e o SQL Developer...
[oracle_br] Retorno de consulta com o decimal truncado
Ao realizar uma consulta no banco de acordo com o select abaixo, o campo retorna apenas a parte inteira (4382), ele reconhece a parte decimal, no caso o .00, mas queria que mostrasse no retorno conforme é especificado no 'where', ja que o campo é um decimal de (8,2). Alguma solução para isso? Lógico, posso usar uma função, mas ja que o campo tem a parte decimal especificada, acredito não haver a necessidade. select valor_repasse from t_lib_pgto where valor_repasse = 4382.00;
Re: [oracle_br] Re: Retorno de consulta com o decimal truncado
Ok, eu uso o Navigator, mas para atender a consulta, utilizei a máscara 999G999D99 Obrigado... Em Quarta-feira, 6 de Agosto de 2014 10:48, jlchia...@yahoo.com.br [oracle_br] oracle_br@yahoogrupos.com.br escreveu: na verdade, o RDBMS Oracle em si não faz *** nada *** em termos de formatação de números, datas ou strings : a precisão/tamanho/codificação/etc da coluna é respeitada e ele envia para o cliente o que está gravado... O caso aqui é que cabe *** AO CLIENTE *** exibir a informação recebida do banco de dados, e CADA CLIENTE deve ser configurado de uma maneira diferente para que os dados sejam exibidos como vc quer... Por exemplo, se fosse SQLPLUS o cliente/tool de programação usado, o comando de configuração é o COLUMN, veja lá : SYSTEM:@O11GR2:SQLcreate table t_lib_pgto (LINHA number, VALOR_REPASSE number(8,2) ); Tabela criada. SYSTEM:@O11GR2:SQLinsert into t_lib_pgto values(1, 4382.00); 1 linha criada. SYSTEM:@O11GR2:SQLinsert into t_lib_pgto values(1, 55382.05); 1 linha criada. SYSTEM:@O11GR2:SQLinsert into t_lib_pgto values(1, 664382.15); 1 linha criada. == NO CASO DO SQLPLUS, se vc não configurar nada o default dele é não exibir os decimais : SYSTEM:@O11GR2:SQLselect valor_repasse from t_lib_pgto where valor_repasse = 4382.00; VALOR_REPASSE - 4382 = ** PERCEBA ** que ele NÂO ESTÁ truncando o valor, apenas não está exibindo a informação que ele RECEBEU SIM SENHOR do database - para isto, vou configurar a *Exibição * do dado como eu quero : SYSTEM:@O11GR2:SQLcolumn valor_repasse format 999G999D99 SYSTEM:@O11GR2:SQLselect valor_repasse from t_lib_pgto where valor_repasse = 4382.00; VALOR_REPASSE - 4.382,00 == Confere ??? Veja que a informação NÂO FOI ALTERADA na tabela, o que está gravado assim permanece, estamos falando apenas de AJUSTE PARA EXIBIÇÂO : SYSTEM:@O11GR2:SQLselect * from t_lib_pgto ; LINHA VALOR_REPASSE -- - 1 4.382,00 1 55.382,05 1 664.382,15 SYSTEM:@O11GR2:SQL então veja lá na sua tool cliente QUAL é o comando para configurar Exibição de números e o use, sim ?? nada a ver com o datbase em si... []s Chiappa OBS : com certeza , se a sua tool cliente/de programação for uma coisa vagaba que não tem opção de configuração, vc sempre tem a opção de solicitar que o RDBMS envie uma string formatada como vc deseja, transformando a coluna numérica ou data em uma string via TO_CHAR ou TO_DATE : isso porém necessariamente TEM UM CUSTO, o gasto de cpu e o trabalho que dá pro RDBMS converter datatypes não é grande MAS também não é zero... use esta técnica APENAS e TÃO SOMENTE se Realmente não tiver como ajustar/configurar exibição de dados na sua tool cliente/de programação...
[oracle_br] Subsets diferentes
Pessoal realizei uma consulta na base de dados e estranhei o retorno do resultado, pois além de não trazer os valores das partes decimais (apenas a parte intera, exemplo: 0, quando deveria trazer 0,76) não era a quantidade de registros que deveria trazer. Bom, ao realizar a mesma consulta na máquina de um colega, a mesma retornou o resultado correto. Se são as mesmas consultas, por quê traz resultados diferentes e a parte decimal é cortada? Não sei se é por causa das funções de datas que estou utilizando na cláusula WHERE. Utilizamos as mesmas ferramentas (navigator, toad e sql developer). Poderiam nos ajudar?
[oracle_br] Cursos para AD/DBA
Bom dia! Pessoal sou DBA, porém trabalho mais na área de AD, meu chefe me solicitou o levantamento de alguns cursos para que possamos fazer voltados para essa área. Verifiquei o curso de Tuning de SQL e PL. Gostaria de obter dos senhores algumas opiniões sobre os cursos que podemos realizar, tanto na parte de Administração de Dados, quanto aos voltados também para Modelagem. Obrigado pela atenção...
Re: [oracle_br] Cursos para AD/DBA
Estarei repassando as informações ao meu superior. Desde já agradeço o retorno... Em Quinta-feira, 8 de Maio de 2014 13:55, Fabio Prado fbifa...@gmail.com escreveu: Boa tarde Jales, Eu ministro treinamentos de SQL Tuning e PL/SQL (c/ tuning de código PL/SQL), entre outros, em São Paulo, e também in-company, se o cliente desejar. Dia 17/05 iniciarei uma turma de SQL Tuning na qual ainda tenho algumas vagas. Para mais informações consulte o link http://www.fabioprado.net/p/agenda.html. []s Fábio Prado www.fabioprado.net Compartilhando conhecimentos e treinando profissionais em Bancos de Dados Oracle Em 8 de maio de 2014 11:36, Jales Jose Moraes malphig...@yahoo.com.br escreveu: Bom dia! Pessoal sou DBA, porém trabalho mais na área de AD, meu chefe me solicitou o levantamento de alguns cursos para que possamos fazer voltados para essa área. Verifiquei o curso de Tuning de SQL e PL. Gostaria de obter dos senhores algumas opiniões sobre os cursos que podemos realizar, tanto na parte de Administração de Dados, quanto aos voltados também para Modelagem. Obrigado pela atenção...
Re: [oracle_br] Dúvida na criação de uma tabela temporaria
Obrigado, era isso mesmo... Em Domingo, 2 de Março de 2014 9:40, Fabio Prado fbifa...@gmail.com escreveu: Jales, Na procedure vc está criando a tabela com sql dinâmico, em tempo de execução, logo... em tempo de projeto (momento em que vc está escrevendo o código) ela ainda não existe, por isso o erro. Neste caso, o INSERT precisa ser executado como sql dinâmico também (ver exemplo abaixo): BEGIN EXECUTE IMMEDIATE ('CREATE GLOBAL TEMPORARY TABLE T9(J NUMBER (5))'); EXECUTE IMMEDIATE ('INSERT INTO T9 values (5)'); --commit; end; []s Fábio Prado http://www.fabioprado.net Em 2 de março de 2014 09:36, Jales Jose Moraes malphig...@yahoo.com.br escreveu: Bom dia! Senhores estou tentando criar uma tabela temporaria. Mas ja em uma simples declaração da mesma (conforme o script abaixo), está me retornando o erro de tabela inexistente. Porém se crio a tabela e insiro o valor via linhas de comando, executa normalmente. Alguém poderia me ajudar? create or replace PROCEDURE CARGA_TEMP AS BEGIN EXECUTE IMMEDIATE ('CREATE GLOBAL TEMPORARY TABLE T9(J NUMBER (5))'); INSERT INTO T9 values (5); --commit; end; / PL/SQL: ORA-00942: a tabela ou view não existe -- Fábio Prado www.fabioprado.net Compartilhando conhecimentos e treinando profissionais em Bancos de Dados Oracle
[oracle_br] Dúvida na criação de uma tabela temporaria
Bom dia! Senhores estou tentando criar uma tabela temporaria. Mas ja em uma simples declaração da mesma (conforme o script abaixo), está me retornando o erro de tabela inexistente. Porém se crio a tabela e insiro o valor via linhas de comando, executa normalmente. Alguém poderia me ajudar? create or replace PROCEDURE CARGA_TEMP AS BEGIN EXECUTE IMMEDIATE ('CREATE GLOBAL TEMPORARY TABLE T9(J NUMBER (5))'); INSERT INTO T9 values (5); --commit; end; / PL/SQL: ORA-00942: a tabela ou view não existe
Re: [oracle_br] ORA-02270: não há chave exclusiva ou primária compatível para esta lista de colunas
Bom dia! Solucionado, a questão era que algumas pk's estavam desabilitadas por um processo que foi rodado aqui. Habilitamos e foram todas implementadas corretamente. Obrigado... Em Sexta-feira, 17 de Janeiro de 2014 18:04, Bruno N. Barboza bruno.n.barb...@gmail.com escreveu: Boa tarde, Vc verificou se todas as FK's tem PK's, ou seja, se todos filhos tem pai? Em 16 de janeiro de 2014 13:44, Jales Jose Moraes malphig...@yahoo.com.br escreveu: € Boa tarde! Pessoal fazendo uma carga de dados, verifiquei que uma tabela (no qual tem v€ ’ ¦árias tabelas pais e filhas) est€ ’ ¦á com todas as suas constrains com o status NOT VALIDATED E DISABLED, ao realizar o Alter para habilita-las novamente apareceu a mensagem:€ ORA-02270: n€ ’ ¦ão h€ ’ ¦á chave exclusiva ou prim€ ’ ¦ária compat€ ’ ¦ível para esta lista de colunas Chequei os tipos das colunas, se as PK's est€ ’ ¦ão v€ ’ ¦álidas. Tudo est€ ’ ¦á igual. Algu€ ’ ¦ém poderia me ajudar no sentido de habilita-las novamente? -- Att, Bruno N. Barboza
[oracle_br] ORA-02270: não há chave exclusiva ou primária compatível para esta lista de colunas
Boa tarde! Pessoal fazendo uma carga de dados, verifiquei que uma tabela (no qual tem várias tabelas pais e filhas) está com todas as suas constrains com o status NOT VALIDATED E DISABLED, ao realizar o Alter para habilita-las novamente apareceu a mensagem: ORA-02270: não há chave exclusiva ou primária compatível para esta lista de colunas Chequei os tipos das colunas, se as PK's estão válidas. Tudo está igual. Alguém poderia me ajudar no sentido de habilita-las novamente?
Re: [oracle_br] RE: Ajuda em select
Ok, a idéia que tive foi +/- essa. Fiz a consulta e mandei para uma tabela temporária, e desta, fui realizando um count(distinct...) no select dos campos em questão. Obrigado... Em Quarta-feira, 8 de Janeiro de 2014 10:21, ederson200...@yahoo.com.br ederson200...@yahoo.com.br escreveu: Jales, A sintaxe do COUNT vai pedir um GROUP BY, que precisa conter a lista dos atributos do SELECT (mas isto inviabiliza o count). Pelo que entendi, vc quer listar os tipos e saber quantas ocorrências daquele tipo existem na sua tabela. Isto seria um AUTO-RELACIONAMENTO, mas o count viria repetido (informando o mesmo valor nas demais linhas que identificam o mesmo tipo), é isso? Caso afirmativo, uma proposta é: select a.Ano, a.regiao, a.sg_uf, a.cd_est, a.municipio, a.Codigo_municipio, a.Local, a.ESC_portaria esc_port, b.qtd_esc_port from tabela_x a, (select count(*) qtd_esc_port, ESC_portaria from tabela_x where ESC_portaria is not null group by ESC_portaria) b Where a.ESC_portaria = b.ESC_portaria -- AND demais condições de filtro; Caso o cenário envolva mais de uma tabela e vc ainda tenha dúvidas, mande um DESC de cada tabela, um exemplo (amostra) de dados e um croqui de como vc gostaria do resultado. Ederson Elias DBA Oracle http://br.linkedin.com/pub/ederson-elias/24/8b/8b0 Labor improbus omnia vincit
[oracle_br] Visualização de datas com data_scale
Bom dia! Pessoal no meu relátório alguns campos com data_scale 0 está aparecendo apenas com 02 casas decimais, ja na máquina do meu colega está aparecendo normal (obedecendo a quantidade das casas do data_scale. Alguém sabe o que seria?
[oracle_br] Ajuda em select
Pessoal tenho uma campo (ESC_PORTARIA) no qual pode assumir vários códigos, preciso saber quantos códigos diferentes existem, porém tenho que trazer junto com ele vários outros campos. Teria como me ajudar? select a.Ano, a.regiao, a.sg_uf, a.cd_est, a.municipio, a.Codigo_municipio, a.Local, count(case when a.ESC_portaria is not null then select distinct(a.pk_cod_entidade) from a end) esc_port, a.QT-geral
[oracle_br] Interromper o fluxo na Procedure
Bom tarde! Pessoal vou incluir no meu PL um execute immediate para truncar uma tabela. Como faço no bloco do Exception para que caso o truncate falhar, eu possa interroper a PL?
Re: [oracle_br] RE: Interromper o fluxo na Procedure
Obrigado... Em Quinta-feira, 19 de Dezembro de 2013 11:58, jlchia...@yahoo.com.br jlchia...@yahoo.com.br escreveu: tente um RETURN : BEGIN comandos ... -- vou fazer o DDL Begin execute immediate comando ddl Exception when others then ... logo o erro de alguma forma return; End; ... continua o processamento ... return; END; -- fim da rotina []s Chiappa
[oracle_br] Problema na inserção de xml
Boa tarde! Senhores tenho uma tabela com um CLOB que armazena um xml, e tenho também uma função que monta o xml para ser inserido no campo em questão. Bom, esta mesma tabela e função funcionam corretamente no banco oracle do fornecedor, porém no nosso banco (oracle também, Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production) no ato da inserção no CLOB, as informações se duplicam, outras são truncadas. Alguém poderia me auxiliar na resolução da questão?
[oracle_br] Caracteres diferentes
Pessoal como resolver uma entrada de dados erronea de caracteres especiais? Fizemos uma function para tratar (fazer a conversão), mas não funciona em todos os casos. O caracter set da aplicação é diferente do banco (que é o WE8ISO8859P1)
[oracle_br] dúvida em pl
Estou com uma dúvida na elaboração de uma Procedure. A estrutura será mais ou menos a descrita a baixo. Minha dúvida está relacionada aos blocos de EXCEPTIONS em PL. FOR opc IN c_lista_opcao LOOP BEGIN — 1) excluir PC — 2) excluir Liberacao — 3) excluir OPC EXCEPTION END; END LOOP c_lista_opcao; No trecho destacado em vermelho, existem três operações que precisam ser realizadas. Minha intenção é fazer com que o processo continue mesmo que ocorra alguma exceção no laço atual. Outra dúvida, é saber se, caso ocorra algum erro na terceira instrução, as 2 anteriores serão desfeitas. Gostaria de uma ajuda no entendimento.
[oracle_br] Debugar função
Pessoal alguém sabe como debugar uma function no TOAD? No menu, as funções de DEBUG não se habilitam. Preciso debugar uma função com parâmetros.
[oracle_br] ajuda em construção de consulta
Boa tarde Pessoal preciso de um auxílio para montar uma consulta. Na base de dados tenho 04 campos: cod_municipio, cod_cliente, cod_atividade_prestada, dt_inicio, dt_fim Preciso saber se em determinado municipio, houve por ano, alguma interrupção em alguma atividade prestada (somando-se em dias) pelos clientes. Há várias situações, por exemplo: Se quero saber de 2012: - posso ter clientes que começou em 2009 e foi até 2013 (ou seja, não houve interrupção) - outro que começou em 15/01/2012 e terminou em 03/05/2012 e depois outro reiniciou em 20/07/2012 (houve interrupção, preciso somar os dias) e por aí vai.. Alguém tem experiência neste tipo de situação para que eu possa desenvolver o solicitado?
Re: [oracle_br] ajuda em construção de consulta
Apenas ratificando a mensagem anterior: Precisaria transformar esta consulta em uma function, para passar os intervalos das datas e me retornar os dias interruptos. Em Sexta-feira, 25 de Outubro de 2013 13:39, Jales Jose Moraes malphig...@yahoo.com.br escreveu: Boa tarde Pessoal preciso de um auxílio para montar uma consulta. Na base de dados tenho 04 campos: cod_municipio, cod_cliente, cod_atividade_prestada, dt_inicio, dt_fim Preciso saber se em determinado municipio, houve por ano, alguma interrupção em alguma atividade prestada (somando-se em dias) pelos clientes. Há várias situações, por exemplo: Se quero saber de 2012: - posso ter clientes que começou em 2009 e foi até 2013 (ou seja, não houve interrupção) - outro que começou em 15/01/2012 e terminou em 03/05/2012 e depois outro reiniciou em 20/07/2012 (houve interrupção, preciso somar os dias) e por aí vai.. Alguém tem experiência neste tipo de situação para que eu possa desenvolver o solicitado?
Re: [oracle_br] Usando o execute immediate
Apenas separei os comandos em BEGIN ... END, deixando no bloco anonimo apenas o laço para o update... Em Terça-feira, 22 de Outubro de 2013 13:59, Fernando Martins femartins.pere...@gmail.com escreveu: Sim, os comandos parecem corretos, acredito que o issue deve realmente ser no nome das tabelas como o pessoal já comentou anteriormente. Qual foi a solução encontrada? Posta aqui pra gente saber. -- Fernando Martins Oracle Database 11g Administrator Certified Professional Oracle Database 10g Real Application Clusters Administrator Certified Expert Oracle Database 10g Administrator Certified Professional Oracle Database 10g Administrator Certified Associate Oracle9i Database Administrator Certified Associate Linux Professional Institute Certfied Level 1 God grant us the serenity to accept the things we cannot change, courage to change the things we can, and wisdom to know the difference. Em 22 de outubro de 2013 13:54, Fabio Prado fbifa...@gmail.com escreveu: O nome das tabelas está diferente nos 2 comandos. No execute immediate está RELATORIO e no UPDATE está S_RELATORIO. Em 22 de outubro de 2013 13:47, Carlos Silva carlos-csi...@hotmail.com escreveu: Cara, aparentemente os comandos estão correto. Tenta realizar um passo a passo para encontrar o problema. Em algum momento do código ele pode não ter criado a coluna. To: oracle_br@yahoogrupos.com.br From: malphig...@yahoo.com.br Date: Tue, 22 Oct 2013 07:21:23 -0700 Subject: [oracle_br] Usando o execute immediate Pessoal criei uma DDL via o comando execute immediate em um bloco anonimo e na execução ele me retorna o erro que não reconhece a nova coluna. Alguém poderia me dizer o por quê? EXECUTE IMMEDIATE 'ALTER TABLE RELATORIO ADD DS_REL CLOB'; UPDATE S_RELATORIO SET DS_REL = V_INTROD WHERE NU_SEQ_REL = V_NU_RELATORIO; [1]: (Error): ORA-06550: linha 18, coluna 39: PL/SQL: ORA-00904: DS_REL: identificador inválido ORA-06550: linha 18, coluna 3: PL/SQL: SQL Statement ignored -- Fábio Prado www.fabioprado.net Compartilhando conhecimentos e treinando profissionais em Bancos de Dados Oracle
[oracle_br] Usando o execute immediate
Pessoal criei uma DDL via o comando execute immediate em um bloco anonimo e na execução ele me retorna o erro que não reconhece a nova coluna. Alguém poderia me dizer o por quê? EXECUTE IMMEDIATE 'ALTER TABLE RELATORIO ADD DS_REL CLOB'; UPDATE S_RELATORIO SET DS_REL = V_INTROD WHERE NU_SEQ_REL = V_NU_RELATORIO; [1]: (Error): ORA-06550: linha 18, coluna 39: PL/SQL: ORA-00904: DS_REL: identificador inválido ORA-06550: linha 18, coluna 3: PL/SQL: SQL Statement ignored
Re: [oracle_br] Usando o execute immediate
Ja resolvido. obrigado... Em Terça-feira, 22 de Outubro de 2013 12:25, Jales Jose Moraes malphig...@yahoo.com.br escreveu: Pessoal criei uma DDL via o comando execute immediate em um bloco anonimo e na execução ele me retorna o erro que não reconhece a nova coluna. Alguém poderia me dizer o por quê? EXECUTE IMMEDIATE 'ALTER TABLE RELATORIO ADD DS_REL CLOB'; UPDATE S_RELATORIO SET DS_REL = V_INTROD WHERE NU_SEQ_REL = V_NU_RELATORIO; [1]: (Error): ORA-06550: linha 18, coluna 39: PL/SQL: ORA-00904: DS_REL: identificador inválido ORA-06550: linha 18, coluna 3: PL/SQL: SQL Statement ignored
[oracle_br] Ascendencia completa de tabela
Bom dia! Pessoal estou precisando selecionar a ascendencia completa de uma tabela, alguém pode me instruir? Estou conseguindo apenas as tabelas de 1o nível (fazendo um select na dba_constraints).
Re: [oracle_br] Selecionar os últimos registros
Bom dia! É uma boa solução Milton, mas para as tabelas antigas não tenho este campo. Vou fazer um ORDER BY DESC pela chave primária, elas são sequenciais, acho que vai nos atender. Obrigado pela dica... De: Milton Bastos Henriquis Jr. miltonbas...@gmail.com Para: oracle_br@yahoogrupos.com.br Enviadas: Sexta-feira, 6 de Setembro de 2013 13:50 Assunto: Re: [oracle_br] Selecionar os últimos registros Claro que dá Basta ter um campo que armazene o horário da inserção (pode ser preenchido via trigger), e fazer o select dando ORDER BY DESC por esse campo. 2013/9/6 Jales Jose Moraes malphig...@yahoo.com.br Boa tarde! Pessoal é possível selecionar em uma tabela (tanto no oracle como no postgres) os últimos 1000 registros inseridos?
[oracle_br] Executar proc com type array
Pessou estou precisando executar uma proc, porém ela tem um type Array, me foi passado os parametros para ser substituído no array O parâmetro é um Array: acoes=215, 455, 101, 457 Fiz o bloco abaixo para passar então o array, mas me retorna o erro RA-06550: linha 9, coluna 7: PLS-00306: número incorreto de tipos de argumentos na chamada para 'REM_ACOES' ORA-06550: linha 9, coluna 7: PL/SQL: Statement ignored DECLARE v_t AO_FNDE.ARRAY_TABLE33; BEGIN v_t := AO_FNDE.ARRAY_TABLE33(141, 341, 421, 401, 441, 321, 281, 261, 301, 221, 481, 521, 621, 361, 501, 381); REM_ACOES ('2013',V_T(16), 'observacao', 'sicon', '127.0.0.1', sysdate,99); END; / Alguém poderia me ajudar?
[oracle_br] Selecionar os últimos registros
Boa tarde! Pessoal é possível selecionar em uma tabela (tanto no oracle como no postgres) os últimos 1000 registros inseridos?
[oracle_br] Problema com MV
Boa tarde Senhores tenho uma MV no qual só consegui por para funcionar quando peguei sua DDL e transformei em uma VIEW (ficava dando o erro de compilação ORA-22818: expressões de subconsulta não permitidas aqui), isto é, a MV não permite select na consulta externa, daí a solução para pô-la na VIEW. Acontece agora que sempre quando alteramos alguma tabela na qual a VIEW faz referência, a MV se torna inválida. É possível alguma saída para a questão. Estamos tentando uma outra forma de retirar os selects do select principal, mas está estremamente complexo... [As partes desta mensagem que não continham texto foram removidas]
[oracle_br] Problema na inserção de um BLOB
Bom dia! Senhores estou precisando carregar um pdf que está no servidor para uma tabela, estou utilizando o script abaixo, porém no ato da execução me retorna o erro ORA 22288 (conforme abaixo). Ja dei permissão de escrita e leitura no diretório 'U05_DATA' ao meu usuário, porém o erro persiste. DECLARE L_BLOB BLOB; L_BFILE BFILE; BEGIN INSERT INTO sms.j2 (num, num2) VALUES (EMPTY_BLOB(), 1) RETURN num INTO L_BLOB; L_BFILE := BFILENAME('U05_DATA','tpoa.pdf'); DBMS_LOB.FILEOPEN(L_BFILE); DBMS_LOB.loadfromfile(L_BLOB,L_BFILE,DBMS_LOB.GETLENGTH(L_BFILE)); DBMS_LOB.fileclose(L_BFILE); COMMIT; END; / ORA-22288: falha no arquivo ou na operação LOBFILEOPEN No such file or directory ORA-06512: em SYS.DBMS_LOB, line 805 ORA-06512: em line 8 [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Subset
Blz milton, o DER de fato eu ja gero. Acontece que ele vem apenas com as tabelas que se relacionam diretamente, e eu também precisaria dos relacionamentos pais até o seu último nível. Estou usando o power designer para isto. De: Milton Bastos Henriquis Jr. miltonbas...@gmail.com Para: oracle_br@yahoogrupos.com.br Enviadas: Terça-feira, 30 de Julho de 2013 15:10 Assunto: Re: [oracle_br] Subset Gere um DER através de engenharia reversa. Acredito que até o SQL Developer tenha essa funcionalidade. 2013/7/30 Jales Jose Moraes malphig...@yahoo.com.br ** Boa tarde! Pessoal estou precisando fazer um subset de um schema, porém estou esbarrando em restrições das tabelas pais. Bom! É possível extrair do dicionário de dados todas as tabelas pais de um schema? Consegui gerar um sql para trazer as tabelas de outros owner's que o schema referencia, acontece que estas tabelas por sua vez tem suas tabelas pais, ou seja, pais de pais, seria então algo recursivo. Alguém pode me dar um auxílio no sentido de obter uma espécie de árvore hierárquica de um determinado schema? Seria assim: 1 Subset do schema SMS 2 Schema SMS referencia algumas tabelas do schema FIN, SUS, CPM e RH 3 Schemas referenciados possuem tabelas que referenciam outras tabelas (podendo ser de outro schema ou não) e assim sucessivamente até o último nível de tabelas pais. Tenho observado (manualmente), que o nível de hierarquia é baixo (no máximo até o 3o nível de dependência). Porém para um subset de outros schemas o nível pode ser maior, e facilitaria bastante se conseguisse extrair de forma automazidada esta árvore. [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]
[oracle_br] Subset
Boa tarde! Pessoal estou precisando fazer um subset de um schema, porém estou esbarrando em restrições das tabelas pais. Bom! É possível extrair do dicionário de dados todas as tabelas pais de um schema? Consegui gerar um sql para trazer as tabelas de outros owner's que o schema referencia, acontece que estas tabelas por sua vez tem suas tabelas pais, ou seja, pais de pais, seria então algo recursivo. Alguém pode me dar um auxílio no sentido de obter uma espécie de árvore hierárquica de um determinado schema? Seria assim: 1 Subset do schema SMS 2 Schema SMS referencia algumas tabelas do schema FIN, SUS, CPM e RH 3 Schemas referenciados possuem tabelas que referenciam outras tabelas (podendo ser de outro schema ou não) e assim sucessivamente até o último nível de tabelas pais. Tenho observado (manualmente), que o nível de hierarquia é baixo (no máximo até o 3o nível de dependência). Porém para um subset de outros schemas o nível pode ser maior, e facilitaria bastante se conseguisse extrair de forma automazidada esta árvore. [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Tabela Mutante
Obrigado, a solução encontrada foi via package mesmo... De: Fabio Prado fbifa...@gmail.com Para: oracle_br@yahoogrupos.com.br Enviadas: Segunda-feira, 22 de Julho de 2013 23:31 Assunto: Re: [oracle_br] Tabela Mutante Jales, no link http://glufke.net/oracle/viewtopic.php?t=96 você encontrará a solução! []s Em 22 de julho de 2013 20:08, Jales Jose Moraes malphig...@yahoo.com.brescreveu: ** Sim fábio, estou tentando colocar uma outra trigger (dessa vez after, numa tentativa de resolver a questão). Você tem alguma idéia? De: Fabio Prado fbifa...@gmail.com Para: oracle_br@yahoogrupos.com.br Enviadas: Segunda-feira, 22 de Julho de 2013 19:52 Assunto: Re: [oracle_br] Tabela Mutante dentro da trigger você está tentando alterar dados da mesma tabela? Em 22 de julho de 2013 19:03, Jales Jose Moraes malphig...@yahoo.com.brescreveu: ** Boa noite! Senhores estou tendo erro de tabela mutante da seguinte forma: Foi me passada uma nova regra onde ao inserir um novo registro, é para setar o registro antigo (update) com uma status 'N' e o novo registro com um status 'S'. Bom, fiz um cursor na trigger para localizar o registro antigo com base em uma número sequencial que é comum a ambos os registros, fiz o update e logo após o insert e então ganhei o erro abaixo: ORA-04091: a tabela SMS_FNDE.S_FINANC é mutante; talvez o gatilho/função não possa localizá-la ORA-06512: em SMS.A_IUD, line 197 ORA-04088: erro durante a execução do gatilho 'SMS.A_IUD' ORA-06512: em SMS.A_IUD, line 197 ORA-04088: erro durante a execução do gatilho 'SMS.A_IUD' Como resolver esta situação? [As partes desta mensagem que não continham texto foram removidas] -- Fábio Prado www.fabioprado.net Compartilhando conhecimentos e treinando profissionais em Bancos de Dados Oracle [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] -- Fábio Prado www.fabioprado.net Compartilhando conhecimentos e treinando profissionais em Bancos de Dados Oracle [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]
[oracle_br] Tabela Mutante
Boa noite! Senhores estou tendo erro de tabela mutante da seguinte forma: Foi me passada uma nova regra onde ao inserir um novo registro, é para setar o registro antigo (update) com uma status 'N' e o novo registro com um status 'S'. Bom, fiz um cursor na trigger para localizar o registro antigo com base em uma número sequencial que é comum a ambos os registros, fiz o update e logo após o insert e então ganhei o erro abaixo: ORA-04091: a tabela SMS_FNDE.S_FINANC é mutante; talvez o gatilho/função não possa localizá-la ORA-06512: em SMS.A_IUD, line 197 ORA-04088: erro durante a execução do gatilho 'SMS.A_IUD' ORA-06512: em SMS.A_IUD, line 197 ORA-04088: erro durante a execução do gatilho 'SMS.A_IUD' Como resolver esta situação? [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Tabela Mutante
Sim fábio, estou tentando colocar uma outra trigger (dessa vez after, numa tentativa de resolver a questão). Você tem alguma idéia? De: Fabio Prado fbifa...@gmail.com Para: oracle_br@yahoogrupos.com.br Enviadas: Segunda-feira, 22 de Julho de 2013 19:52 Assunto: Re: [oracle_br] Tabela Mutante dentro da trigger você está tentando alterar dados da mesma tabela? Em 22 de julho de 2013 19:03, Jales Jose Moraes malphig...@yahoo.com.brescreveu: ** Boa noite! Senhores estou tendo erro de tabela mutante da seguinte forma: Foi me passada uma nova regra onde ao inserir um novo registro, é para setar o registro antigo (update) com uma status 'N' e o novo registro com um status 'S'. Bom, fiz um cursor na trigger para localizar o registro antigo com base em uma número sequencial que é comum a ambos os registros, fiz o update e logo após o insert e então ganhei o erro abaixo: ORA-04091: a tabela SMS_FNDE.S_FINANC é mutante; talvez o gatilho/função não possa localizá-la ORA-06512: em SMS.A_IUD, line 197 ORA-04088: erro durante a execução do gatilho 'SMS.A_IUD' ORA-06512: em SMS.A_IUD, line 197 ORA-04088: erro durante a execução do gatilho 'SMS.A_IUD' Como resolver esta situação? [As partes desta mensagem que não continham texto foram removidas] -- Fábio Prado www.fabioprado.net Compartilhando conhecimentos e treinando profissionais em Bancos de Dados Oracle [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] Ajuste em consulta
Diego gerei o plano, porém ele só vem a confirmar que não está usando o índice... | Id | Operation | Name | Rows | Bytes |TempSpc| Cost (%CPU)| Time | --- | 0 | SELECT STATEMENT | | 1 | 268 | | 6527 (2)| 00:01:19 | |* 1 | FILTER | | | | | | | | 2 | NESTED LOOPS ANTI | | 1 | 268 | | 6522 (2)| 00:01:19 | | 3 | NESTED LOOPS | | 1 | 266 | | 6518 (2)| 00:01:19 | | 4 | NESTED LOOPS | | 1 | 221 | | 6517 (2)| 00:01:19 | | 5 | NESTED LOOPS | | 1 | 191 | | 6516 (2)| 00:01:19 | | 6 | NESTED LOOPS | | 1 | 171 | | 6515 (2)| 00:01:19 | | 7 | NESTED LOOPS OUTER | | 1 | 157 | | 6514 (2)| 00:01:19 | |* 8 | HASH JOIN OUTER | | 1 | 127 | | 6513 (2)| 00:01:19 | | 9 | NESTED LOOPS OUTER | | 1 | 114 | | 6371 (2)| 00:01:17 | |* 10 | HASH JOIN | | 1 | 84 | | 6370 (2)| 00:01:17 | |* 11 | HASH JOIN | | 22757 | 1200K| | 5391 (2)| 00:01:05 | |* 12 | TABLE ACCESS FULL | RECIBO_ENV | 22757 | 622K| | 1855 (3)| 00:00:23 | | 13 | VIEW | VW_SQ_2 | 136K| 3458K| | 3535 (2)| 00:00:43 | | 14 | HASH GROUP BY | | 136K| 1330K| 18M| 3535 (2)| 00:00:43 | | 15 | TABLE ACCESS FULL | RECIBO_ENV_RETORNO | 953K| 9308K| | 1820 (1)| 00:00:22 | De: Diego Leite diegoleit...@gmail.com Para: oracle_br@yahoogrupos.com.br Enviadas: Sexta-feira, 19 de Julho de 2013 8:21 Assunto: Re: [oracle_br] Ajuste em consulta Amigo, Mostra o seu plano de execucao que fica mais facil de entendermos, mesmo tendo indice. explain plan for SELECT MAX(nu_seq_recibo) FROM SMS.recibo_env WHERE CO_ENV_RET = c.CO_ENV_RET; SELECT * FROM TABLE(dbms_xplan.display); Em 19 de julho de 2013 07:56, Jales Jose Moraes malphig...@yahoo.com.brescreveu: ** Sim, tem índice, inclusive são as chaves primárias das respectivas tabelas. Acredito que está acontecendo os gargalos são nas chamadas co-relacionadas na coluna c.CO_ENV_RET (que faz parte da consulta externa). Mas não estou sabendo estruturar a consulta de outra forma. De: Rodrigo Mufalani rodr...@mufalani.com.br Para: oracle_br@yahoogrupos.com.br Enviadas: Quinta-feira, 18 de Julho de 2013 17:05 Assunto: Re: [oracle_br] Ajuste em consulta Verifique se essas duas colunas tem índices.. Segue abaixo um pequeno teste. SQL create table teste as select * from dba_objects; Tabela criada. SQL @trcon SQL select max(created) from teste; Plano de Execuc?o -- Plan hash value: 2217472448 -- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | -- | 0 | SELECT STATEMENT | | 1 | 9 | 358 (2)| 00:00:05 | | 1 | SORT AGGREGATE | | 1 | 9 | | | | 2 | TABLE ACCESS FULL| TESTE | 101K| 892K| 358 (2)| 00:00:05 | -- Note - - dynamic sampling used for this statement (level=2) Estatisticas -- 7 recursive calls 0 db block gets 1385 consistent gets 1302 physical reads 0 redo size 363 bytes sent via SQL*Net to client 364 bytes received via SQL*Net from client 2 SQL*Net roundtrips to/from client 0 sorts (memory) 0 sorts (disk) 1 rows processed SQL create index ix_teste on teste(created); Indice criado. SQL select max(created) from teste; Plano de Execuc?o -- Plan hash value: 631728714 -- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | -- | 0 | SELECT STATEMENT | | 1 | 9 | 1 (0)| 00:00:01 | | 1
[oracle_br] Continuar mesmo sem Dados em PL
Bom dia! Estou fazendo um pequeno teste em PL, porém no ato do select não há retorno no registros, então é retornado o erro de Dados não encontrados. Como faço para continuar o loop neste caso? Adaptei o GOTO e também o CONTINUE, mas continua o mesmo erro. declare id_comp number; id_comp2 number; cursor c1 is select id from ao_fnde.teste5 order by 1; begin -- id_comp := 0; open c1; loop fetch c1 into id_comp; exit when c1%notfound; id_comp2 := 0; select id into id_comp2 from ao_fnde.teste6 where id = id_comp; if (id_comp2 0) then select id into id_comp from ao_fnde.teste5 where id id_comp2; update ao_fnde.teste6 set id = id_comp where id = id_comp2; else goto c1; end if; end loop; close c1; commit; -- -DBMS_OUTPUT.PUT_LINE('Código Oracle: ' || SQLCODE); --DBMS_OUTPUT.PUT_LINE('Mensagem Oracle: ' || SQLERRM); end; [As partes desta mensagem que não continham texto foram removidas]
[oracle_br] Ajuste em consulta
Bom tarde! Pessoal estou com uma consulta onde está executando muito lentamente, ao analisar o plano, descobri que os dois selects internos à consulta (estão abaixo), são os responsáveis pelo gargalo SELECT MAX(nu_seq_recibo) FROM SMS.recibo_env WHERE CO_ENV_RET = c.CO_ENV_RET SELECT MAX(nu_seq_libera) FROM SMS.libera_recibo WHERE co_env_ret = c.CO_ENV_RET; Alguém tem alguma dica para me ajudar com a questão? [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Re: Modelam Conceitual
Obrigado a todos, ja estou analisando as sugestões... De: Andre Santos andre.psantos...@gmail.com Para: oracle_br@yahoogrupos.com.br Enviadas: Quarta-feira, 3 de Julho de 2013 21:13 Assunto: Re: [oracle_br] Re: Modelam Conceitual Jales O livro do Paulo Cougo, citado pelo Chiappa, é bem legal. Outros que eu também indicaria: - Projeto de Banco de Dados - Uma Visão Prática, Felipe Nery R. Machado / Mauricio P. Abreu - Modelagem de Dados, Carlos Barbieri - Projeto de Banco de Dados, Carlos Alberto Heuser [ ] André Em 3 de julho de 2013 14:57, J. Laurindo Chiappa jlchia...@yahoo.com.brescreveu: ** Bem, googlando por símbolos modelagem de dados vc acha Diversos sites e fontes que falam a respeito, com mais ou com menos profundidde, como http://pt.scribd.com/doc/37452635/37/Simbolos-de-diagramas-e-convencoes-de-Nomeacao, http://www.macoratti.net/cbmd1.htm , http://gabrielotavio.com.br/dl/apostilabd.pdf , http://www.faa.edu.br/revista/v1_n1_art03.pdf , http://pt.scribd.com/doc/7202774/Conceitos-Bsicos-Modelagem-de-Dados#download,etc Porém imho a Dificuldade maior não é conhecer a simbologia gráfica, mas sim os ** CONCEITOS ** de Modelagem (tais como o que é uma Entidade, como se definem Relacionamentos, Cardinalidade, Obrigatoriedade, Imanência/permanência de dados, Normalização, Chaves de acesso, etc, etc, etc) - SE vc não tiver esses conceitos Muito Bem Definidos na cuca, o negócio simplesmente Não vai pra frente, vc Absolutamente não vai entender o que está sendo representado no diagrama, seja qual for a simbologia usada, sim ??? Vc vai ver o pezinho de galinha, mas o que isso implica, vai ver o quadradinho da entidade, mas o que isso significa na prática ? Como separar a Entidade dos Atributos ?? Não é tão simples... Para realmente entender isso vc vai precisar de um bom livro de conceitos e teoria de modelagem de dados, alguns mais conhecidos (de diversos níveis, tanto básicos quanto um pouco mais detalhados) são : Análise Estruturada Moderna, de Edward Yourdon - Editora Campus Modelagem Conceitual e Projeto de Bancos de Dados, de Paulo Cougo - Editora Campus Estruturas de Dados Fundamentais: Conceitos e Aplicações, de Silvio do Lago Pereira - Editora Érica Modelagem Lógica de Dados - Construção Básica e Simplificada, de Eduardo Bernardes de Castro E isso sem focar em uma metodologia específica, como UML por exemplo : estas indicações são generalistas, sobre Conceitos básicos de modelagem em geral... []s Chiappa --- Em oracle_br@yahoogrupos.com.br, Jales Jose Moraes malphigjjm@... escreveu Boa tarde! Senhores estou precisando de um entendimento maior sobre criação de modelagem conceitual (como as simbologias e os mais diversos diagramas). Alguém tem alguma indicação para o assunto? Pesquisei na internet, mas infelizmente não me esclareceu muito. [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]
Re: [oracle_br] Restore (urgente)
2013 06:27:44 -0700 (PDT), Jales Jose Moraes wrote: Pessoal preciso fazer um restore de algumas tabelas para realizar o replace, porém no script de restore não está vindo as constraints das tabelas filhas (precisaria destas referencias também). É possível uma ajuda? [As partes desta mensagem que não continham texto foram removidas] Links: -- [1] mailto:malphig...@yahoo.com.br?subject=Res%3A%20Restore%20%28urgente%29 [2] mailto:oracle_br@yahoogrupos.com.br?subject=Res%3A%20Restore%20%28urgente%29 [3] http://br.groups.yahoo.com/group/oracle_br/post;_ylc=X3oDMTJycmI0NHE3BF9TAzk3NDkwNDM3BGdycElkAzE2ODI4OTYEZ3Jwc3BJZAMyMTM3MTE0Njg5BG1zZ0lkAzExMzc3NgRzZWMDZnRyBHNsawNycGx5BHN0aW1lAzEzNzI5NDQ0NjY-?act=replymessageNum=113776 [4] http://br.groups.yahoo.com/group/oracle_br/post;_ylc=X3oDMTJlMDhvZTBnBF9TAzk3NDkwNDM3BGdycElkAzE2ODI4OTYEZ3Jwc3BJZAMyMTM3MTE0Njg5BHNlYwNmdHIEc2xrA250cGMEc3RpbWUDMTM3Mjk0NDQ2Ng-- [5] http://br.groups.yahoo.com/group/oracle_br/message/113776;_ylc=X3oDMTM4M3NiY2VpBF9TAzk3NDkwNDM3BGdycElkAzE2ODI4OTYEZ3Jwc3BJZAMyMTM3MTE0Njg5BG1zZ0lkAzExMzc3NgRzZWMDZnRyBHNsawN2dHBjBHN0aW1lAzEzNzI5NDQ0NjYEdHBjSWQDMTEzNzc2 [6] http://br.groups.yahoo.com/group/oracle_br/members;_ylc=X3oDMTJmajczOWw4BF9TAzk3NDkwNDM3BGdycElkAzE2ODI4OTYEZ3Jwc3BJZAMyMTM3MTE0Njg5BHNlYwN2dGwEc2xrA3ZtYnJzBHN0aW1lAzEzNzI5NDQ0NjY-?o=6 [7] http://br.groups.yahoo.com/group/oracle_br;_ylc=X3oDMTJlamVnY2N1BF9TAzk3NDkwNDM3BGdycElkAzE2ODI4OTYEZ3Jwc3BJZAMyMTM3MTE0Njg5BHNlYwN2dGwEc2xrA3ZnaHAEc3RpbWUDMTM3Mjk0NDQ2Ng-- [8] http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ [9] http://www.oraclebr.com.br/ [10] http://br.groups.yahoo.com/;_ylc=X3oDMTJkb2RvZzAxBF9TAzk3NDkwNDM3BGdycElkAzE2ODI4OTYEZ3Jwc3BJZAMyMTM3MTE0Njg5BHNlYwNmdHIEc2xrA2dmcARzdGltZQMxMzcyOTQ0NDY2 [11] mailto:oracle_br-traditio...@yahoogrupos.com.br?subject=Mudar Formato de Envio: Tradicional [12] mailto:oracle_br-dig...@yahoogrupos.com.br?subject=Envio de email: Resenha [13] mailto:oracle_br-unsubscr...@yahoogrupos.com.br?subject=Sair do grupo [14] http://br.yahoo.com/info/utos.html [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
[oracle_br] Restore (urgente)
Pessoal preciso fazer um restore de algumas tabelas para realizar o replace, porém no script de restore não está vindo as constraints das tabelas filhas (precisaria destas referencias também). É possível uma ajuda? [As partes desta mensagem que não continham texto foram removidas]
[oracle_br] Modelam Conceitual
Boa tarde! Senhores estou precisando de um entendimento maior sobre criação de modelagem conceitual (como as simbologias e os mais diversos diagramas). Alguém tem alguma indicação para o assunto? Pesquisei na internet, mas infelizmente não me esclareceu muito. [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Re: Dúvida de SQL
Ok, entendido. Obrigado a todos... De: J. Laurindo Chiappa jlchia...@yahoo.com.br Para: oracle_br@yahoogrupos.com.br Enviadas: Quarta-feira, 12 de Junho de 2013 10:42 Assunto: [oracle_br] Re: Dúvida de SQL Angelo, na verdade mais que sair diferente, com AND não vai vir é NADA : afinal, AND significa E, e como é um valor/contagem ao mesmo tempo pode ser igual a X **E ** também igual a Y ** E ** também igual a Z ??? Já OR faz TODO O SENTIDO, pois um valor/contagem ser OU igual a X OU igual a Y OU igual a Z (são OPÇõES diferentes) aí sim ok... Jales, eis meu exemplo abaixo, plz mostre o seu : SQL select manager_id, count(*) from employees group by manager_id; MANAGER_ID COUNT(*) -- -- 1 100 14 123 8 120 8 121 8 147 6 108 5 148 6 149 6 205 1 102 1 201 1 101 5 114 5 124 8 145 6 146 6 103 4 122 8 19 linhas selecionadas. SQL select manager_id, count(*) from employees group by manager_id having count(*) = 14; MANAGER_ID COUNT(*) -- -- 100 14 SQL select manager_id, count(*) from employees group by manager_id having count(*) = 14 or count(*)=5 or count(*)=6; MANAGER_ID COUNT(*) -- -- 100 14 147 6 108 5 148 6 149 6 101 5 114 5 145 6 146 6 9 linhas selecionadas. SQL select manager_id, count(*) from employees group by manager_id having count(*) = 14 and count(*)=5 and count(*)=6; nÒo hß linhas selecionadas SQL []s Chiappa --- Em mailto:oracle_br%40yahoogrupos.com.br, angelo angelolistas@... escreveu Jales, bom dia, Nenhuma pergunta é tola, pelo contrário, perguntando você nao guarda a duvida para si. Daria para colocar o restante do select na questão ? A resposta sai diferente para o AND e o OR, porque o E é diferente do OU, ou seja E será a combinação dos 3 atendendo a condição do agrupamento, e o OU, é o que vier... mais uma questão de lógica matematica. Coloca o restante da select 2013/6/12 Jales Jose Moraes malphigjjm@... ** Pessoal me desculpem se a pergunta parece básica, mas vejam bem GROUP BY man.nu_seq_conselho HAVING COUNT (*) = 14 and COUNT (*) = 28 and COUNT (*) = 42) Eu preciso que o count(*) me retorne o agrupamento de 14,28 ou 42, porque a consulta correta é da forma acima? Eu não deveria usar o OR no lugar do AND? Quando troco pelo OR me traz milhares de registros que não refletem a realidade da operação! [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]
[oracle_br] Dúvida de SQL
Pessoal me desculpem se a pergunta parece básica, mas vejam bem GROUP BY man.nu_seq_conselho HAVING COUNT (*) = 14 and COUNT (*) = 28 and COUNT (*) = 42) Eu preciso que o count(*) me retorne o agrupamento de 14,28 ou 42, porque a consulta correta é da forma acima? Eu não deveria usar o OR no lugar do AND? Quando troco pelo OR me traz milhares de registros que não refletem a realidade da operação! [As partes desta mensagem que não continham texto foram removidas]
[oracle_br] Function lenta...
Pessoal tenho uma função onde seu select está lentíssimo, porém quando pegou os parâmetros de execução da mesma e substituo no select (ou seja, sem usar na função), ela executa rapidamente. Alguém tem uma dica/solução para isso? [As partes desta mensagem que não continham texto foram removidas]
[oracle_br] geração de xls
Pessoal ainda sobre o assunto abaixo, um colega meu (desenvolvedor) me disse que no pl/slq developer é possível facilmente gerar os sql's e colocar todos os resultados como abas em um único arquivo .xls. Como não conheço a ferramenta, pergunto a vocês se a informação procede? O TOAD ou Navigator e/ou sql-developer não faria algo semelhante? De: Jales Jose Moraes malphig...@yahoo.com.br Para: oracle_br@yahoogrupos.com.br oracle_br@yahoogrupos.com.br Enviadas: Terça-feira, 16 de Abril de 2013 8:11 Assunto: Re: [oracle_br] Re: geração de xls Ok, vou testar as recomendações. Obrigado a todos... De: J. Laurindo Chiappa mailto:jlchiappa%40yahoo.com.br Para: mailto:oracle_br%40yahoogrupos.com.br Enviadas: Segunda-feira, 15 de Abril de 2013 18:44 Assunto: [oracle_br] Re: geração de xls E só complementando : a) há tools Oracle externas ao database que são capazes de gerar output em formato .XLS (BI Publisher e Orecle Reports 10gR2 sendo duas), mas a necessidade de um expert para instalação/config/programação delas continua b) claro que os produtos todos que citei aqui são EXEMPLOS, demonstrações que existem soluções apropriadas : de forma nenhuma eu os endosso/garanto, é por conta do eventual interessado a avaliação dos mesmos []s Chiappa --- Em mailto:oracle_br%40yahoogrupos.com.br, J. Laurindo Chiappa jlchiappa@... escreveu Sim, gerar os arquivos de uma vez só, com algum script/programa que leia e execute as queries todas e gere arqs de saída é uma boa, mas realmente caso não haja nenhum software extra (como http://radio-weblogs.com/0137094/2006/10/26.html ou http://www.excel-db.net/, por exemplo) adicionado/instalado, realmente de modo geral tanto o PL/SQL quanto as tools clients nativas do RDBMS não geram .XLS, só podem gerar ASCII puro, SYLK, HTML, CSV, sim, formatos esses que DEMANDAM conversão/importação dentro do Excel... Agora, o que eu não vejo muito sentido é em abrir e converter/importar manualmente um por um os trocentos arquivos que serão gerados : se softwares que fazem esse tipo de importação/conversão em batch (como http://www.coolutils.com/totalexcelconverter , http://bytescout.com/products/enduser/spreadsheettools/spreadsheettools.html ou aos citados em http://www.batchwork.com/en/index.htm), eu ao menos eu RECOMENDARIA que um expert em programação macro Excel escrevesse uma rotina similar à http://stackoverflow.com/questions/10803395/is-it-possible-to-batch-convert-csv-to-xls-using-a-macro ou ao exemplinho em https://training-nyc.com/training_class_blog/index.php/2012/10/batch-convert-excel-2003-excel-2010-xls-xlsx-xlsm-excel-training/ , que AUTOMATIZE isso, fazendo o Excel ler e importar automaticamente os arqs todos É um TRADE-OFF entre o custo das horas-homens que vão ser desperdiçadas fazendo a importação manual VERSUS o custo de se adquirir uma solução OU de se programar em Excel pra isso (o custo principal desta última opção é o valor-hora do especialista Excel, é claro) []s Chiappa --- Em mailto:oracle_br%40yahoogrupos.com.br, Milton Bastos Henriquis Jr. miltonbastos@ escreveu Eu ia te sugerir ir salvando um a um, mas vc falou que são centenas e que está muito braçal... então, use a dica do Mufalani que foi melhor que a minha: SQL*Plus: 1) Set colsep | 2) Rode os scritps gerando spool 3) abra o excel e importe informando o separador, no caso | De qualquer maneira terá que importar um por um, informando o separador. 2013/4/15 Jales Jose Moraes malphigjjm@ ** Estou usando o Navigator, mas tenho o TOAD também... De: Milton Bastos Henriquis Jr. miltonbastos@ Para: mailto:oracle_br%40yahoogrupos.com.br Enviadas: Segunda-feira, 15 de Abril de 2013 17:22 Assunto: Re: [oracle_br] geração de xls Está usando alguma ferramenta pra isso? Tem um TOAD ou PL/SQL Developer na tua máquina pra fazer isso? Onde é que vc está rodando esses selects? Em alguma ferramenta desse tipo ou no SQL*Plus? 2013/4/15 Jales Jose Moraes malphigjjm@ ** Pessoal recebi hoje um arquivo com centenas de selects a serem rodados diretamente no BD, preciso gerar .xls de todos. Como está sendo muito cansativo/braçal, venhos a vós então perguntar: É possível pegar estas consultas e no ato de suas execuções ja ir mandando automaticamente para arquivos .xls? [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
Re: [oracle_br] Re: geração de xls
Ok, vou testar as recomendações. Obrigado a todos... De: J. Laurindo Chiappa jlchia...@yahoo.com.br Para: oracle_br@yahoogrupos.com.br Enviadas: Segunda-feira, 15 de Abril de 2013 18:44 Assunto: [oracle_br] Re: geração de xls E só complementando : a) há tools Oracle externas ao database que são capazes de gerar output em formato .XLS (BI Publisher e Orecle Reports 10gR2 sendo duas), mas a necessidade de um expert para instalação/config/programação delas continua b) claro que os produtos todos que citei aqui são EXEMPLOS, demonstrações que existem soluções apropriadas : de forma nenhuma eu os endosso/garanto, é por conta do eventual interessado a avaliação dos mesmos []s Chiappa --- Em mailto:oracle_br%40yahoogrupos.com.br, J. Laurindo Chiappa jlchiappa@... escreveu Sim, gerar os arquivos de uma vez só, com algum script/programa que leia e execute as queries todas e gere arqs de saída é uma boa, mas realmente caso não haja nenhum software extra (como http://radio-weblogs.com/0137094/2006/10/26.html ou http://www.excel-db.net/, por exemplo) adicionado/instalado, realmente de modo geral tanto o PL/SQL quanto as tools clients nativas do RDBMS não geram .XLS, só podem gerar ASCII puro, SYLK, HTML, CSV, sim, formatos esses que DEMANDAM conversão/importação dentro do Excel... Agora, o que eu não vejo muito sentido é em abrir e converter/importar manualmente um por um os trocentos arquivos que serão gerados : se softwares que fazem esse tipo de importação/conversão em batch (como http://www.coolutils.com/totalexcelconverter , http://bytescout.com/products/enduser/spreadsheettools/spreadsheettools.html ou aos citados em http://www.batchwork.com/en/index.htm), eu ao menos eu RECOMENDARIA que um expert em programação macro Excel escrevesse uma rotina similar à http://stackoverflow.com/questions/10803395/is-it-possible-to-batch-convert-csv-to-xls-using-a-macro ou ao exemplinho em https://training-nyc.com/training_class_blog/index.php/2012/10/batch-convert-excel-2003-excel-2010-xls-xlsx-xlsm-excel-training/ , que AUTOMATIZE isso, fazendo o Excel ler e importar automaticamente os arqs todos É um TRADE-OFF entre o custo das horas-homens que vão ser desperdiçadas fazendo a importação manual VERSUS o custo de se adquirir uma solução OU de se programar em Excel pra isso (o custo principal desta última opção é o valor-hora do especialista Excel, é claro) []s Chiappa --- Em mailto:oracle_br%40yahoogrupos.com.br, Milton Bastos Henriquis Jr. miltonbastos@ escreveu Eu ia te sugerir ir salvando um a um, mas vc falou que são centenas e que está muito braçal... então, use a dica do Mufalani que foi melhor que a minha: SQL*Plus: 1) Set colsep | 2) Rode os scritps gerando spool 3) abra o excel e importe informando o separador, no caso | De qualquer maneira terá que importar um por um, informando o separador. 2013/4/15 Jales Jose Moraes malphigjjm@ ** Estou usando o Navigator, mas tenho o TOAD também... De: Milton Bastos Henriquis Jr. miltonbastos@ Para: mailto:oracle_br%40yahoogrupos.com.br Enviadas: Segunda-feira, 15 de Abril de 2013 17:22 Assunto: Re: [oracle_br] geração de xls Está usando alguma ferramenta pra isso? Tem um TOAD ou PL/SQL Developer na tua máquina pra fazer isso? Onde é que vc está rodando esses selects? Em alguma ferramenta desse tipo ou no SQL*Plus? 2013/4/15 Jales Jose Moraes malphigjjm@ ** Pessoal recebi hoje um arquivo com centenas de selects a serem rodados diretamente no BD, preciso gerar .xls de todos. Como está sendo muito cansativo/braçal, venhos a vós então perguntar: É possível pegar estas consultas e no ato de suas execuções ja ir mandando automaticamente para arquivos .xls? [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] [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que
[oracle_br] geração de xls
Pessoal recebi hoje um arquivo com centenas de selects a serem rodados diretamente no BD, preciso gerar .xls de todos. Como está sendo muito cansativo/braçal, venhos a vós então perguntar: É possível pegar estas consultas e no ato de suas execuções ja ir mandando automaticamente para arquivos .xls? [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] geração de xls
Estou usando o Navigator, mas tenho o TOAD também... De: Milton Bastos Henriquis Jr. miltonbas...@gmail.com Para: oracle_br@yahoogrupos.com.br Enviadas: Segunda-feira, 15 de Abril de 2013 17:22 Assunto: Re: [oracle_br] geração de xls Está usando alguma ferramenta pra isso? Tem um TOAD ou PL/SQL Developer na tua máquina pra fazer isso? Onde é que vc está rodando esses selects? Em alguma ferramenta desse tipo ou no SQL*Plus? 2013/4/15 Jales Jose Moraes malphig...@yahoo.com.br ** Pessoal recebi hoje um arquivo com centenas de selects a serem rodados diretamente no BD, preciso gerar .xls de todos. Como está sendo muito cansativo/braçal, venhos a vós então perguntar: É possível pegar estas consultas e no ato de suas execuções ja ir mandando automaticamente para arquivos .xls? [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]
Re: [oracle_br] Re: Erro em update
Obrigado Chiappa, era exatamente isso, alguns campos na tabela estimativas estava com espaços em branco, utilizei o trim em todos os campos e atualizou corretamente. Valeu por mais essa... De: J. Laurindo Chiappa jlchia...@yahoo.com.br Para: oracle_br@yahoogrupos.com.br Enviadas: Terça-feira, 2 de Abril de 2013 13:10 Assunto: [oracle_br] Re: Erro em update Bom, vc TEM CERTEZA que na verdade o que está acontecendo é que para os registros selecionados na sub-query a coluna estimativas.st_atual ** já estava ** com o valor 'EM ANDAMENTO' , por isso o UPDATE na verdade funcviona sim mas vc não vê diferença , ele bota o mesmo valor que já estava ??? E eventuais TRIGGERS que possam estar disparando, vc Olhou isso ?? Não sendo isso, a primeira coisa em que a gente pensa é que vc tenha STRINGS nessas colunas, e talvez Ou haja espaços em branco, Ou haja NULLs interferindo na comparação Ou talvez vc esteja tendo aí algum tipo de CONVERSÂO IMPLÍCITA, pois vejo que em TODOS os valores de comparação vc meteu aspas-simples, é Bem estranho - realmente eles são TODOS strings ?? Se não forem, experimenta fazer a comparação CORRETA, ie, NUMBER com NÚMEROS, DATEs com datas formatadas com to_date Não sendo nada disso, mostra pra gente a DESCRIÇÃO das duas tabelas envolvidas , nos mostre quem é chave e nos dê uns INSERTs para popular que a gente pode tentar testar []s Chiappa --- Em mailto:oracle_br%40yahoogrupos.com.br, Jales Jose Moraes malphigjjm@... escreveu Pessoal estou tendo um problema seríssimo em um update. É da seguinte forma: UPDATE estimativas SET estimativas.st_atual = 'EM ANDAMENTO' WHERE estimativas.co_regional IN ( SELECT DISTINCT a.co_regional FROM atendimento b, estimativas a WHERE a.an_exercicio = '2013' AND a.co_programa_atual = '02' AND a.nu_progresso = '2' AND a.co_destino = '09' AND b.an_exercicio = '2012' AND b.co_finan = a.co_finan) and estimativas.an_exercicio = '2013' AND estimativas.co_programa_atual = 'AC' Acontece que ele não atualiza registro algum. Mas se eu extrair o resultado do select interno e colocá-lo diretamente na clausula IN, atualizada todos os registros corretamente. Alguém pode me esclarecer o que pode ser? [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
[oracle_br] Erro em update
Pessoal estou tendo um problema seríssimo em um update. É da seguinte forma: UPDATE estimativas SET estimativas.st_atual = 'EM ANDAMENTO' WHERE estimativas.co_regional IN ( SELECT DISTINCT a.co_regional FROM atendimento b, estimativas a WHERE a.an_exercicio = '2013' AND a.co_programa_atual = '02' AND a.nu_progresso = '2' AND a.co_destino = '09' AND b.an_exercicio = '2012' AND b.co_finan = a.co_finan) and estimativas.an_exercicio = '2013' AND estimativas.co_programa_atual = 'AC' Acontece que ele não atualiza registro algum. Mas se eu extrair o resultado do select interno e colocá-lo diretamente na clausula IN, atualizada todos os registros corretamente. Alguém pode me esclarecer o que pode ser? [As partes desta mensagem que não continham texto foram removidas]
[oracle_br] Parametro de cursor
Senhores estou precisando passar um cursor como parametro para uma function, mas está dando erro de tipo desconhecido. É possível realizar o procedimento ou há uma outra maneira? [As partes desta mensagem que não continham texto foram removidas]
[oracle_br] Interação entre Oracle e Postgre
Pessoal estou precisando criação uma interação entre o oracle e o postgres (Uma aplicação lerá/gravará dados em ambos os bancos). Estou pensando em abrir duas conexões (uma para o oracle e outra no postgres), realizar os loopings e proceder com as validações de praxe. Pergunto: Teria alguma forma/procedimento mais correto no qual ao crescimento da aplicação a administração se tornaria mais simples ou a idéia seria como a mencionda acima mesmo? [As partes desta mensagem que não continham texto foram removidas]
[oracle_br] Dúvidas no lock
Pessoal estou tendo problemas de lock em uma transação que realiza alguns inserts. Verificamos os índices, as fk's desta tabela e a lógica na aplicação (na qual é simples) mas os locks ainda continua. No entanto, foi levantado a questão aqui de que pode ser problemas nas sequences, já que o ambiente é RAC e as clausas ORDER e CHACHE tem significativa importãncia neste ambiente, já que o CHACHE dos valores são armazenados independente em cada nó e não há necessidade de sincronismo quando a sequence está com a clausula NOORDER. Bom, este fato pode ser o desencadeador dos locks? [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Indicação de material para PL/SQL
ok pessoal, obrigado pelo retorno... De: Wanderson Barrence wbarre...@gmail.com Para: oracle_br@yahoogrupos.com.br Enviadas: Quinta-feira, 31 de Janeiro de 2013 14:34 Assunto: Re: [oracle_br] Indicação de material para PL/SQL Olá Jales, Tem as vídeo-aulas do Fábio Prado também: http://www.fabioprado.net/p/videoaulas-plsql-essentials.html Att, -- Wanderson Barrence DBA Oracle 10g/11g Analista de Testes - CBTS -- MSN: wbarre...@hotmail.com ICQ: 170821994 Linkedin: http://br.linkedin.com/in/wbarrence Em 31 de janeiro de 2013 14:20, Jales Jose Moraes malphig...@yahoo.com.brescreveu: ** Alguém indica um livro (ou artigo/tutoriais desde que abrangentes) de PL/SQL (se preferência em português)? [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]
[oracle_br] Indicação de material para PL/SQL
Alguém indica um livro (ou artigo/tutoriais desde que abrangentes) de PL/SQL (se preferência em português)? [As partes desta mensagem que não continham texto foram removidas]
[oracle_br] Proc para inserir arquivo para campo BLOB
Pessoal estou com a proc abaixo, mas o arquivo não está inserindo no campo BLOB, é possível um auxilio? CREATE OR REPLACE PROCEDURE blob_para_coluna_blobASdest_loc BLOB;F1 UTL_FILE.FILE_TYPE; BEGIN INSERT INTO j2 (num)VALUES ( empty_blob())RETURNING INTO dest_loc;f1 := utl_file.fopen('/u05/data','backup_blob.html','r',32000);dbms_lob.loadfromfile(dest_loc,'/u05/data',amount,1,1);utl_file.fclose(f1);COMMIT;END;num [As partes desta mensagem que não continham texto foram removidas]
[oracle_br] Tamanho excedido no buffer
Pessoal ao fazer um put_line no sql_navigator, não está imprimido o total da variável (conforme abaixo). É possivel aumentar? Usei os comandos SET LINESIZE 32000 SET LONG 32000 mas não resolveu... =CONCATENAR(A1; ;A2; ;A3; ;A4; ;A5; ;A6; ;A7; ;A8; ;A9; ;A10; ;A11; ;A12; ;A13; ;A14; ;A15; ;A16; ;A17; ;A18; ;A19; ;A20; ;A21; ;A22; ;A23; ;A24; ;A25; ;A26; ;A27; ;A28; ;A29; ;A30; ;A31; ;A32; ;A33; ;A34; ;A35; ;A36; ;A37; ;A38; ;A39; ;A40; ;A41; ;A42; ;A43; ;A44; ;A45; ;A46; ;A47; ;A48; ;A49; ;A50; ;A51; ;A52; ;A53; ;A54; ;A55; ;A56; ;A57; ;A58; ;A59; ;A60; ;A61; ;A62; ;A63; ;A64; ;A65; ;A66; ;A67; ;A68; ;A69; ;A70; ;A71; ;A72; ;A73; ;A74; ;A75; ;A76; ;A77; ;A78; ;A79; ;A80; ;A81; ;A82; ;A83; ;A84; ;A85; ;A86; ;A87; ;A88; ;A89; ;A90; ;A91; ;A92; ;A93; ;A94; ;A95; ;A96; ;A97; ;A98; ;A99; ;A100; ;A101; ;A102; ;A103; ;A104; ;A105; ;A106; ;A107; ;A108; ;A109; ;A110; ;A111; ;A112; ;A113; ;A114; ;A115; ;A116; ;A117; ;A118; ;A119; ;A120; ;A121; ;A122; ;A123; ;A124; ;A1 [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Re: Abrir BLOB em pdf
Acho que poder ser algum binário inconsistente. Alguns campos converti facilmente, outros não... De: J. Laurindo Chiappa jlchia...@yahoo.com.br Para: oracle_br@yahoogrupos.com.br Enviadas: Segunda-feira, 28 de Janeiro de 2013 12:14 Assunto: [oracle_br] Re: Abrir BLOB em pdf Bem, a primeira coisa que se pensa é, SERÁ que esse binário que te enviaram não se corrompeu, por qquer motivo ??? Ou ainda, neguim mandou nesse binário um documento formato PDF criado com uma versão muito superior ou muito inferior ao teu PDF Reader, e/ou talvez usando alguma fonte especial que a sua máquina não tem ? Ou talvez o tamanho desse BLOB veio muito grande para a tua tool cliente manipular ??? Tenta abrir um outro BLOB com conteúdo .PDF que funcionou corretamente antes... Se não for isso, plz explica DETALHADAMENTE o que vc está fazendo, ie : exatamente qual comando/procedimento vc está fazendo, em qual tool cliente, em qual SO, SE não foi instalado nem removido nada na máquina onde vc faz o procedimento, etc, que quem usar a mesma pode palpitar - pelo jeito, o seu problema ABSOLUTAMENTE não parece ser relacionado ao banco de dados, mas sim à tools clientes []s Chiappa --- Em mailto:oracle_br%40yahoogrupos.com.br, Jales Jose Moraes escreveu Pessoal rotineiramente abro arquivos LOB em pdf apenas selecionando seu valor binário e depois renomeando o arquivo para .pdf, acontece que hojeo o editor PDF não está reconhecendo o formato. O que pode ter mudado assim repentinamente? [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] Re: Exportar CLOB
, gerando arquivo via UTL_FILE e carregando-o no Excel []s Chiappa --- Em mailto:oracle_br%40yahoogrupos.com.br, Jales Jose Moraes escreveu Chiappa mas vi também que o 2007 comporta 32kb na célula. Acho que o problema pode ser que o excel não reconhece um formato CLOB. acho que vou ter que fazer um to_varchar e ir concatenando de 4 em 4kb... De: Jales Jose Moraes Para: mailto:oracle_br%40yahoogrupos.com.br; Enviadas: Quinta-feira, 24 de Janeiro de 2013 16:32 Assunto: Re: [oracle_br] Re: Exportar CLOB é verdade. è que o meu aqui é 2007... De: J. Laurindo Chiappa mailto:jlchiappa%40yahoo.com.br Para: mailto:oracle_br%40yahoogrupos.com.br Enviadas: Quinta-feira, 24 de Janeiro de 2013 15:24 Assunto: [oracle_br] Re: Exportar CLOB A respeito dos limites do Excel, em http://office.microsoft.com/en-us/excel-help/excel-specifications-and-limits-HP010342495.aspx eu vi que o máximo de uma coluna pode ser 32767 caracteres : SE o seu CLOB realmente é de no máximo 22 KB, vc não deve ter prob com isso ... []s Chiappa --- Em mailto:oracle_br%40yahoogrupos.com.br, J. Laurindo Chiappa escreveu Absolutamente não conheço/não uso o Navigator - já vi gente usando há uns tempos atrás mas eu mesmo não usei - , mas se é um negócio que vc faz Manualmente, sob demanda, eu Sugiro a alternativa não-programada de uma tool que garantidamente faça export de LOBs, como é o freeware da própria Oracle chamado SQL Developer : baixa ele em http://technet.oracle.com/ (pede um cadastro mas é de grátis) .. Com ele vc pode até afaik exportar os dados da sua consulta diretamente até em .XLS : só não sei se o padrão de arquivos .XLS permite uma coluna tão larga, mas é experimentar... Caso o Excel não permita, experimente o formato .XLS... []s Chiappa --- Em mailto:oracle_br%40yahoogrupos.com.br, Jales Jose Moraes escreveu Não, as CLOB's que temos dão no máximo 22kb, utilizo o navigator quando preciso fazer consultas rápidas no banco, daí eu monto a consulta e envio um .xls para o desenvolvedor, mas no caso quando tem CLOB não da certo. Ja tentei a conexão via o excel, mas ele não reconhece quando tem o CLOB... De: J. Laurindo Chiappa Para: mailto:oracle_br%40yahoogrupos.com.br Enviadas: Quinta-feira, 24 de Janeiro de 2013 14:16 Assunto: [oracle_br] Re: Exportar CLOB Bem, pra variar vc não diz versão de nada, não diz se os dados vão ser usados por um outro database Oracle (caso em que o exp ou o expdp podem servir), se essa tarefa precisa ser efetuada programaticamente OU se uma tool que tenha a capacidade (como por exemplo o freeware Oracle SQL Developer) pode ser manualmente executada, nem diz se os CLOBs são superiores ou não a 32 KB (o tamanho máximo de uma string no PL/SQL), mas seguinte : afora as tools que normalmente já manipulam isso para vc , supondo CLOBs maiores que 32 KB, se vc quer algo programado / automatizado via script, as opções são : a) no sqlplus, se vc setar com SET LONG nnn o tamanho máximo, com SPOOL vc pode gravar dados CLOB, desde Que : - o tamanho máximo dos teus CLOBs seja inferior ao máximo aceitado pelo sqlplus para o SET LONG e - as limitações do SPOOL (como a dificuldade de criar colunas nã-fixas) não te atrapalhem b) se por qquer motivo a) não te serviu, aí vc Vai ter que partir para a Programação , num das alternativas : 1. em PL/SQL, vc vai usar a UTL_FILE ** mas ** sem ser por put_line, mas sim juntando vários pedaços de 32 KB com PUT e FLUSH , http://searchoracle.techtarget.com/answer/Storing-CLOB-as-csv-file tem um exemplo (bem no fim da Página) 2. se vc tiver java disponível (no seu database ou no seu ambiente), e se vc tiver alguma mínima experiência nele, Java é uma outra opção para vc programar : http://www.dba-oracle.com/t_export_unload_blob_clob.htm é um exemplo 3. vc poder usar o pro*C da Oracle : http://phil-sqltips.blogspot.com.br/ tem um exemplo e algumas dicas básicas de compilação 4. vc pode, SE as tiver instaladas, tentar as rotinas de geração de dados em XML : http://stackoverflow.com/questions/6538128/oracle-automate-export-unload-of-data tem um exemplo, não muito completo mas tá lá, a considerar... Eu mesmo não mexi muito com esses caras, então não sei nem indicar um exemplo mais completo, mas eles exitem... okdoc ? E nem preciso dizer, quase TODAS as linguagens externas que podem conectar no RDBMS Oracle (perl/php, .NET, Delphi, VB, Cobol, etc, etc, etc) tem rotinas/comandos/built-ins de geração de arquivos que podem te ajudar
Re: [oracle_br] Re: Exportar CLOB
Há, é rac 11g... De: J. Laurindo Chiappa jlchia...@yahoo.com.br Para: oracle_br@yahoogrupos.com.br Enviadas: Sexta-feira, 25 de Janeiro de 2013 11:50 Assunto: [oracle_br] Re: Exportar CLOB Colega, ficou em branco o espaço, não veio o texto do seu programa - plz manda, Em texto apenas, no corpo da mensagem como eu fiz, um programa-exemplo CURTO mas completo e nos diga exatamente o que vc quer realizar, em qual ambiente o seu programa vai rodar Eu Suponho, porém, pelo jeitão, que vc tenha um bloco PL/SQL e no comando INSERT INTO tabela VALUES (xxx, yyy, zzz) vc quira passar MAIS de um valor escalar para xxx, yyy ou zzz, é isso ??? SE Sim, de cara posso dizer que o comando INSERT ** não ** funciona assim, veja a entrada para INSERT no manual de SQL []s Chiappa --- Em mailto:oracle_br%40yahoogrupos.com.br, Jales Jose Moraes escreveu Cara funcionou corretamente. Agora apareceu um erro quando insiro aspas simples, do tipo: insert into teste É possível inserir exatametne da forma como está acima, o comando inteiro, inclusive com as suas aspas?values ('in('02','03','04','05')'); De: J. Laurindo Chiappa Para: mailto:oracle_br%40yahoogrupos.com.br Enviadas: Quinta-feira, 24 de Janeiro de 2013 21:04 Assunto: [oracle_br] Re: Exportar CLOB E um detalhe adicional, falando sobre programação dentro do Excel, que me Indica que realmente é questão de Ajuste na sua programação : embora eu mesmo não programe nem no Excel nem no VBA e quejandos, uma googlada rápida me mandou para alguns sites (como http://www.utteraccess.com/forum/GetChunk-Method-DAO-t469091.html, http://www.xtremevbtalk.com/showthread.php?t=206066 , http://www.bigresource.com/VB-GetChunk-Output-to-Excel-KWT0sno79u.html e http://support.microsoft.com/?id=185958) que parecem indicar que o built-in/comando necessário para se trabalhar com large strings, se vc estiver conectando com ADO no banco Oracle, é o tal do getchunk - veja as refs e em cima disso, avalie a info e faça uma pesquisa mais detalhada no sites de Suporte, foruns e na Documentação do Excel e do VBA, como citei... Agora : aproveitando que vc confirma que os seus CLOBs são todos menores que 32 KB, vc Nem Sequer precisa do trucão do UTL_FILE.PUT para gerar o arquivo num programinha PL/SQL, veja só : == Primeiro, criar tabela e uma massinha de dados : SQL create table TAB_TEST_CLOB ( 2 c1 number, 3 c2 clob); Tabela criada. SQL create or replace procedure lob_ins(p_id IN number, p_text IN varchar2 ) 2 as 3 l_clob clob; 4 BEGIN 5 insert into TAB_TEST_CLOB values (p_id, empty_clob() ) returning c2 into l_clob; 6 dbms_lob.write( l_clob,length(p_text), 1,p_text); 7* END; Procedimento criado. SQL exec lob_ins(1, 'Linha 1 com clob pequeno'); Procedimento PL/SQL concluÝdo com sucesso. SQL exec lob_ins(2, 'Linha 2:' || rpad('$', 2, '%') || ':fim clob2'); Procedimento PL/SQL concluÝdo com sucesso. SQL exec lob_ins(2, 'Linha 3:' || rpad('+', 22000, '#') || ':fim clob3'); Procedimento PL/SQL concluÝdo com sucesso. SQL commit; Commit concluÝdo. == veja que tenha um CLOB menor que 4000 e dois CLOBs maiores que 4000 mas menores que o limite de 32 KB do UTL_FILE e do PL/SQL : SQL select c1, dbms_lob.getlength(c2) tamanho from TAB_TEST_CLOB; C1 TAMANHO -- -- 1 24 2 20018 2 22018 SQL = Passo 2, criar um arquivo com os dados do CLOB (e as outras colunas separadas por CHR(9), que é o TAB : SQL DECLARE 2 l_output utl_file.file_type; 3 BEGIN 4 l_output := utl_file.fopen('DIR_ADMIN', 'ARQ_TESTE_CLOB.TXT', 'w', 32760); 5 for R in (select c1, c2 from TAB_TEST_CLOB) 6 loop 7 utl_file.put_line(l_output, R.c1 || chr(9) || R.c2); 8 end loop; 9 utl_file.fclose(l_output); 10* END; SQL / Procedimento PL/SQL concluÝdo com sucesso. = veja que gerou direitinho : C:\Windows\system32dir c:\admin\*.txt O volume na unidade C é HD NOVO 320 GB O Número de Série do Volume é C8A2-9666 Pasta de c:\admin 24/01/2013 20:42 42.072 ARQ_TESTE_CLOB.TXT 1 arquivo(s) 42.072 bytes 0 pasta(s) 66.144.690.176 bytes disponíveis C:\Windows\system32 == agora no Excel (Excel 2010, mas deve funcionar no 2007 teu) eu peço um Arquivo/Abrir, escolho o meu arquivo .TXT acima, escolho na importação a opção Delimitedo, escolho TAB como o caracter delimitador, e avanço : prontinho, tá feita a fofoca... Blz ? Só para mostrar que Realmente importou tudinho, insiro uma coluna depois da primeira, e coloco nela a Fórmula =NÚM.CARACT(C1) , e depois copia essa fórmula para as outras linhas, óia o resultado beleza : 1 24 Linha 1 com clob pequeno 2 20018 Linha 2:$%%%... 3 22018 Linha 3:+###... okdoc
Re: [oracle_br] Re: Exportar CLOB
Blz, a questão é que tenho no insert do CLOB várias aspas simples, e só estou conseguindo inserir quando faço os replaces por ' ', nó mais está tudo correto... De: J. Laurindo Chiappa jlchia...@yahoo.com.br Para: oracle_br@yahoogrupos.com.br Enviadas: Sexta-feira, 25 de Janeiro de 2013 11:50 Assunto: [oracle_br] Re: Exportar CLOB Colega, ficou em branco o espaço, não veio o texto do seu programa - plz manda, Em texto apenas, no corpo da mensagem como eu fiz, um programa-exemplo CURTO mas completo e nos diga exatamente o que vc quer realizar, em qual ambiente o seu programa vai rodar Eu Suponho, porém, pelo jeitão, que vc tenha um bloco PL/SQL e no comando INSERT INTO tabela VALUES (xxx, yyy, zzz) vc quira passar MAIS de um valor escalar para xxx, yyy ou zzz, é isso ??? SE Sim, de cara posso dizer que o comando INSERT ** não ** funciona assim, veja a entrada para INSERT no manual de SQL []s Chiappa --- Em mailto:oracle_br%40yahoogrupos.com.br, Jales Jose Moraes escreveu Cara funcionou corretamente. Agora apareceu um erro quando insiro aspas simples, do tipo: insert into teste É possível inserir exatametne da forma como está acima, o comando inteiro, inclusive com as suas aspas?values ('in('02','03','04','05')'); De: J. Laurindo Chiappa Para: mailto:oracle_br%40yahoogrupos.com.br Enviadas: Quinta-feira, 24 de Janeiro de 2013 21:04 Assunto: [oracle_br] Re: Exportar CLOB E um detalhe adicional, falando sobre programação dentro do Excel, que me Indica que realmente é questão de Ajuste na sua programação : embora eu mesmo não programe nem no Excel nem no VBA e quejandos, uma googlada rápida me mandou para alguns sites (como http://www.utteraccess.com/forum/GetChunk-Method-DAO-t469091.html, http://www.xtremevbtalk.com/showthread.php?t=206066 , http://www.bigresource.com/VB-GetChunk-Output-to-Excel-KWT0sno79u.html e http://support.microsoft.com/?id=185958) que parecem indicar que o built-in/comando necessário para se trabalhar com large strings, se vc estiver conectando com ADO no banco Oracle, é o tal do getchunk - veja as refs e em cima disso, avalie a info e faça uma pesquisa mais detalhada no sites de Suporte, foruns e na Documentação do Excel e do VBA, como citei... Agora : aproveitando que vc confirma que os seus CLOBs são todos menores que 32 KB, vc Nem Sequer precisa do trucão do UTL_FILE.PUT para gerar o arquivo num programinha PL/SQL, veja só : == Primeiro, criar tabela e uma massinha de dados : SQL create table TAB_TEST_CLOB ( 2 c1 number, 3 c2 clob); Tabela criada. SQL create or replace procedure lob_ins(p_id IN number, p_text IN varchar2 ) 2 as 3 l_clob clob; 4 BEGIN 5 insert into TAB_TEST_CLOB values (p_id, empty_clob() ) returning c2 into l_clob; 6 dbms_lob.write( l_clob,length(p_text), 1,p_text); 7* END; Procedimento criado. SQL exec lob_ins(1, 'Linha 1 com clob pequeno'); Procedimento PL/SQL concluÝdo com sucesso. SQL exec lob_ins(2, 'Linha 2:' || rpad('$', 2, '%') || ':fim clob2'); Procedimento PL/SQL concluÝdo com sucesso. SQL exec lob_ins(2, 'Linha 3:' || rpad('+', 22000, '#') || ':fim clob3'); Procedimento PL/SQL concluÝdo com sucesso. SQL commit; Commit concluÝdo. == veja que tenha um CLOB menor que 4000 e dois CLOBs maiores que 4000 mas menores que o limite de 32 KB do UTL_FILE e do PL/SQL : SQL select c1, dbms_lob.getlength(c2) tamanho from TAB_TEST_CLOB; C1 TAMANHO -- -- 1 24 2 20018 2 22018 SQL = Passo 2, criar um arquivo com os dados do CLOB (e as outras colunas separadas por CHR(9), que é o TAB : SQL DECLARE 2 l_output utl_file.file_type; 3 BEGIN 4 l_output := utl_file.fopen('DIR_ADMIN', 'ARQ_TESTE_CLOB.TXT', 'w', 32760); 5 for R in (select c1, c2 from TAB_TEST_CLOB) 6 loop 7 utl_file.put_line(l_output, R.c1 || chr(9) || R.c2); 8 end loop; 9 utl_file.fclose(l_output); 10* END; SQL / Procedimento PL/SQL concluÝdo com sucesso. = veja que gerou direitinho : C:\Windows\system32dir c:\admin\*.txt O volume na unidade C é HD NOVO 320 GB O Número de Série do Volume é C8A2-9666 Pasta de c:\admin 24/01/2013 20:42 42.072 ARQ_TESTE_CLOB.TXT 1 arquivo(s) 42.072 bytes 0 pasta(s) 66.144.690.176 bytes disponíveis C:\Windows\system32 == agora no Excel (Excel 2010, mas deve funcionar no 2007 teu) eu peço um Arquivo/Abrir, escolho o meu arquivo .TXT acima, escolho na importação a opção Delimitedo, escolho TAB como o caracter delimitador, e avanço : prontinho, tá feita a fofoca... Blz ? Só para mostrar que Realmente importou tudinho, insiro uma coluna depois da primeira, e coloco nela a Fórmula =NÚM.CARACT(C1) , e depois copia essa fórmula para as outras linhas, óia o resultado beleza : 1 24 Linha 1 com clob pequeno 2 20018 Linha 2
Re: [oracle_br] Re: Exportar CLOB
Resolvi está parte, fiz o replace ( ', ''), funcionou. Obrigado pelos scripts e as dicas... De: Jales Jose Moraes malphig...@yahoo.com.br Para: oracle_br@yahoogrupos.com.br oracle_br@yahoogrupos.com.br Enviadas: Sexta-feira, 25 de Janeiro de 2013 12:16 Assunto: Re: [oracle_br] Re: Exportar CLOB Blz, a questão é que tenho no insert do CLOB várias aspas simples, e só estou conseguindo inserir quando faço os replaces por ' ', nó mais está tudo correto... De: J. Laurindo Chiappa mailto:jlchiappa%40yahoo.com.br Para: mailto:oracle_br%40yahoogrupos.com.br Enviadas: Sexta-feira, 25 de Janeiro de 2013 11:50 Assunto: [oracle_br] Re: Exportar CLOB Colega, ficou em branco o espaço, não veio o texto do seu programa - plz manda, Em texto apenas, no corpo da mensagem como eu fiz, um programa-exemplo CURTO mas completo e nos diga exatamente o que vc quer realizar, em qual ambiente o seu programa vai rodar Eu Suponho, porém, pelo jeitão, que vc tenha um bloco PL/SQL e no comando INSERT INTO tabela VALUES (xxx, yyy, zzz) vc quira passar MAIS de um valor escalar para xxx, yyy ou zzz, é isso ??? SE Sim, de cara posso dizer que o comando INSERT ** não ** funciona assim, veja a entrada para INSERT no manual de SQL []s Chiappa --- Em mailto:oracle_br%40yahoogrupos.com.br, Jales Jose Moraes escreveu Cara funcionou corretamente. Agora apareceu um erro quando insiro aspas simples, do tipo: insert into teste É possível inserir exatametne da forma como está acima, o comando inteiro, inclusive com as suas aspas?values ('in('02','03','04','05')'); De: J. Laurindo Chiappa Para: mailto:oracle_br%40yahoogrupos.com.br Enviadas: Quinta-feira, 24 de Janeiro de 2013 21:04 Assunto: [oracle_br] Re: Exportar CLOB E um detalhe adicional, falando sobre programação dentro do Excel, que me Indica que realmente é questão de Ajuste na sua programação : embora eu mesmo não programe nem no Excel nem no VBA e quejandos, uma googlada rápida me mandou para alguns sites (como http://www.utteraccess.com/forum/GetChunk-Method-DAO-t469091.html, http://www.xtremevbtalk.com/showthread.php?t=206066 , http://www.bigresource.com/VB-GetChunk-Output-to-Excel-KWT0sno79u.html e http://support.microsoft.com/?id=185958) que parecem indicar que o built-in/comando necessário para se trabalhar com large strings, se vc estiver conectando com ADO no banco Oracle, é o tal do getchunk - veja as refs e em cima disso, avalie a info e faça uma pesquisa mais detalhada no sites de Suporte, foruns e na Documentação do Excel e do VBA, como citei... Agora : aproveitando que vc confirma que os seus CLOBs são todos menores que 32 KB, vc Nem Sequer precisa do trucão do UTL_FILE.PUT para gerar o arquivo num programinha PL/SQL, veja só : == Primeiro, criar tabela e uma massinha de dados : SQL create table TAB_TEST_CLOB ( 2 c1 number, 3 c2 clob); Tabela criada. SQL create or replace procedure lob_ins(p_id IN number, p_text IN varchar2 ) 2 as 3 l_clob clob; 4 BEGIN 5 insert into TAB_TEST_CLOB values (p_id, empty_clob() ) returning c2 into l_clob; 6 dbms_lob.write( l_clob,length(p_text), 1,p_text); 7* END; Procedimento criado. SQL exec lob_ins(1, 'Linha 1 com clob pequeno'); Procedimento PL/SQL concluÝdo com sucesso. SQL exec lob_ins(2, 'Linha 2:' || rpad('$', 2, '%') || ':fim clob2'); Procedimento PL/SQL concluÝdo com sucesso. SQL exec lob_ins(2, 'Linha 3:' || rpad('+', 22000, '#') || ':fim clob3'); Procedimento PL/SQL concluÝdo com sucesso. SQL commit; Commit concluÝdo. == veja que tenha um CLOB menor que 4000 e dois CLOBs maiores que 4000 mas menores que o limite de 32 KB do UTL_FILE e do PL/SQL : SQL select c1, dbms_lob.getlength(c2) tamanho from TAB_TEST_CLOB; C1 TAMANHO -- -- 1 24 2 20018 2 22018 SQL = Passo 2, criar um arquivo com os dados do CLOB (e as outras colunas separadas por CHR(9), que é o TAB : SQL DECLARE 2 l_output utl_file.file_type; 3 BEGIN 4 l_output := utl_file.fopen('DIR_ADMIN', 'ARQ_TESTE_CLOB.TXT', 'w', 32760); 5 for R in (select c1, c2 from TAB_TEST_CLOB) 6 loop 7 utl_file.put_line(l_output, R.c1 || chr(9) || R.c2); 8 end loop; 9 utl_file.fclose(l_output); 10* END; SQL / Procedimento PL/SQL concluÝdo com sucesso. = veja que gerou direitinho : C:\Windows\system32dir c:\admin\*.txt O volume na unidade C é HD NOVO 320 GB O Número de Série do Volume é C8A2-9666 Pasta de c:\admin 24/01/2013 20:42 42.072 ARQ_TESTE_CLOB.TXT 1 arquivo(s) 42.072 bytes 0 pasta(s) 66.144.690.176 bytes disponíveis C:\Windows\system32 == agora no Excel (Excel 2010, mas deve funcionar no 2007 teu) eu peço um Arquivo/Abrir, escolho o meu arquivo .TXT acima, escolho na importação a opção Delimitedo, escolho TAB como o caracter delimitador
[oracle_br] Exportar CLOB
Pessoal estou trabalhando com campos CLOB's, mas não estou conseguindo extrair os dados. A consulta retorna corretamente, mas não consigo exportar para um xls, csv,etc. Alguém sabe como posso disponibilizar estes campos em algum formato de arquivo? [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Re: Exportar CLOB
Não, as CLOB's que temos dão no máximo 22kb, utilizo o navigator quando preciso fazer consultas rápidas no banco, daí eu monto a consulta e envio um .xls para o desenvolvedor, mas no caso quando tem CLOB não da certo. Ja tentei a conexão via o excel, mas ele não reconhece quando tem o CLOB... De: J. Laurindo Chiappa jlchia...@yahoo.com.br Para: oracle_br@yahoogrupos.com.br Enviadas: Quinta-feira, 24 de Janeiro de 2013 14:16 Assunto: [oracle_br] Re: Exportar CLOB Bem, pra variar vc não diz versão de nada, não diz se os dados vão ser usados por um outro database Oracle (caso em que o exp ou o expdp podem servir), se essa tarefa precisa ser efetuada programaticamente OU se uma tool que tenha a capacidade (como por exemplo o freeware Oracle SQL Developer) pode ser manualmente executada, nem diz se os CLOBs são superiores ou não a 32 KB (o tamanho máximo de uma string no PL/SQL), mas seguinte : afora as tools que normalmente já manipulam isso para vc , supondo CLOBs maiores que 32 KB, se vc quer algo programado / automatizado via script, as opções são : a) no sqlplus, se vc setar com SET LONG nnn o tamanho máximo, com SPOOL vc pode gravar dados CLOB, desde Que : - o tamanho máximo dos teus CLOBs seja inferior ao máximo aceitado pelo sqlplus para o SET LONG e - as limitações do SPOOL (como a dificuldade de criar colunas nã-fixas) não te atrapalhem b) se por qquer motivo a) não te serviu, aí vc Vai ter que partir para a Programação , num das alternativas : 1. em PL/SQL, vc vai usar a UTL_FILE ** mas ** sem ser por put_line, mas sim juntando vários pedaços de 32 KB com PUT e FLUSH , http://searchoracle.techtarget.com/answer/Storing-CLOB-as-csv-file tem um exemplo (bem no fim da Página) 2. se vc tiver java disponível (no seu database ou no seu ambiente), e se vc tiver alguma mínima experiência nele, Java é uma outra opção para vc programar : http://www.dba-oracle.com/t_export_unload_blob_clob.htm é um exemplo 3. vc poder usar o pro*C da Oracle : http://phil-sqltips.blogspot.com.br/ tem um exemplo e algumas dicas básicas de compilação 4. vc pode, SE as tiver instaladas, tentar as rotinas de geração de dados em XML : http://stackoverflow.com/questions/6538128/oracle-automate-export-unload-of-data tem um exemplo, não muito completo mas tá lá, a considerar... Eu mesmo não mexi muito com esses caras, então não sei nem indicar um exemplo mais completo, mas eles exitem... okdoc ? E nem preciso dizer, quase TODAS as linguagens externas que podem conectar no RDBMS Oracle (perl/php, .NET, Delphi, VB, Cobol, etc, etc, etc) tem rotinas/comandos/built-ins de geração de arquivos que podem te ajudar, também... Idem para as tools que possuem linguagem de script interna e podem conectar no RDBMS, como Excel, por exemplo... []s Chiappa --- Em mailto:oracle_br%40yahoogrupos.com.br, Jales Jose Moraes escreveu Pessoal estou trabalhando com campos CLOB's, mas não estou conseguindo extrair os dados. A consulta retorna corretamente, mas não consigo exportar para um xls, csv,etc. Alguém sabe como posso disponibilizar estes campos em algum formato de arquivo? [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] Re: Exportar CLOB
é verdade. è que o meu aqui é 2007... De: J. Laurindo Chiappa jlchia...@yahoo.com.br Para: oracle_br@yahoogrupos.com.br Enviadas: Quinta-feira, 24 de Janeiro de 2013 15:24 Assunto: [oracle_br] Re: Exportar CLOB A respeito dos limites do Excel, em http://office.microsoft.com/en-us/excel-help/excel-specifications-and-limits-HP010342495.aspx eu vi que o máximo de uma coluna pode ser 32767 caracteres : SE o seu CLOB realmente é de no máximo 22 KB, vc não deve ter prob com isso ... []s Chiappa --- Em mailto:oracle_br%40yahoogrupos.com.br, J. Laurindo Chiappa escreveu Absolutamente não conheço/não uso o Navigator - já vi gente usando há uns tempos atrás mas eu mesmo não usei - , mas se é um negócio que vc faz Manualmente, sob demanda, eu Sugiro a alternativa não-programada de uma tool que garantidamente faça export de LOBs, como é o freeware da própria Oracle chamado SQL Developer : baixa ele em http://technet.oracle.com/ (pede um cadastro mas é de grátis) .. Com ele vc pode até afaik exportar os dados da sua consulta diretamente até em .XLS : só não sei se o padrão de arquivos .XLS permite uma coluna tão larga, mas é experimentar... Caso o Excel não permita, experimente o formato .XLS... []s Chiappa --- Em mailto:oracle_br%40yahoogrupos.com.br, Jales Jose Moraes escreveu Não, as CLOB's que temos dão no máximo 22kb, utilizo o navigator quando preciso fazer consultas rápidas no banco, daí eu monto a consulta e envio um .xls para o desenvolvedor, mas no caso quando tem CLOB não da certo. Ja tentei a conexão via o excel, mas ele não reconhece quando tem o CLOB... De: J. Laurindo Chiappa Para: mailto:oracle_br%40yahoogrupos.com.br Enviadas: Quinta-feira, 24 de Janeiro de 2013 14:16 Assunto: [oracle_br] Re: Exportar CLOB Bem, pra variar vc não diz versão de nada, não diz se os dados vão ser usados por um outro database Oracle (caso em que o exp ou o expdp podem servir), se essa tarefa precisa ser efetuada programaticamente OU se uma tool que tenha a capacidade (como por exemplo o freeware Oracle SQL Developer) pode ser manualmente executada, nem diz se os CLOBs são superiores ou não a 32 KB (o tamanho máximo de uma string no PL/SQL), mas seguinte : afora as tools que normalmente já manipulam isso para vc , supondo CLOBs maiores que 32 KB, se vc quer algo programado / automatizado via script, as opções são : a) no sqlplus, se vc setar com SET LONG nnn o tamanho máximo, com SPOOL vc pode gravar dados CLOB, desde Que : - o tamanho máximo dos teus CLOBs seja inferior ao máximo aceitado pelo sqlplus para o SET LONG e - as limitações do SPOOL (como a dificuldade de criar colunas nã-fixas) não te atrapalhem b) se por qquer motivo a) não te serviu, aí vc Vai ter que partir para a Programação , num das alternativas : 1. em PL/SQL, vc vai usar a UTL_FILE ** mas ** sem ser por put_line, mas sim juntando vários pedaços de 32 KB com PUT e FLUSH , http://searchoracle.techtarget.com/answer/Storing-CLOB-as-csv-file tem um exemplo (bem no fim da Página) 2. se vc tiver java disponível (no seu database ou no seu ambiente), e se vc tiver alguma mínima experiência nele, Java é uma outra opção para vc programar : http://www.dba-oracle.com/t_export_unload_blob_clob.htm é um exemplo 3. vc poder usar o pro*C da Oracle : http://phil-sqltips.blogspot.com.br/ tem um exemplo e algumas dicas básicas de compilação 4. vc pode, SE as tiver instaladas, tentar as rotinas de geração de dados em XML : http://stackoverflow.com/questions/6538128/oracle-automate-export-unload-of-data tem um exemplo, não muito completo mas tá lá, a considerar... Eu mesmo não mexi muito com esses caras, então não sei nem indicar um exemplo mais completo, mas eles exitem... okdoc ? E nem preciso dizer, quase TODAS as linguagens externas que podem conectar no RDBMS Oracle (perl/php, .NET, Delphi, VB, Cobol, etc, etc, etc) tem rotinas/comandos/built-ins de geração de arquivos que podem te ajudar, também... Idem para as tools que possuem linguagem de script interna e podem conectar no RDBMS, como Excel, por exemplo... []s Chiappa --- Em mailto:oracle_br%40yahoogrupos.com.br, Jales Jose Moraes escreveu Pessoal estou trabalhando com campos CLOB's, mas não estou conseguindo extrair os dados. A consulta retorna corretamente, mas não consigo exportar para um xls, csv,etc. Alguém sabe como posso disponibilizar estes campos em algum formato de arquivo? [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] Re: Exportar CLOB
Chiappa mas vi também que o 2007 comporta 32kb na célula. Acho que o problema pode ser que o excel não reconhece um formato CLOB. acho que vou ter que fazer um to_varchar e ir concatenando de 4 em 4kb... De: Jales Jose Moraes malphig...@yahoo.com.br Para: oracle_br@yahoogrupos.com.br oracle_br@yahoogrupos.com.br Enviadas: Quinta-feira, 24 de Janeiro de 2013 16:32 Assunto: Re: [oracle_br] Re: Exportar CLOB é verdade. è que o meu aqui é 2007... De: J. Laurindo Chiappa mailto:jlchiappa%40yahoo.com.br Para: mailto:oracle_br%40yahoogrupos.com.br Enviadas: Quinta-feira, 24 de Janeiro de 2013 15:24 Assunto: [oracle_br] Re: Exportar CLOB A respeito dos limites do Excel, em http://office.microsoft.com/en-us/excel-help/excel-specifications-and-limits-HP010342495.aspx eu vi que o máximo de uma coluna pode ser 32767 caracteres : SE o seu CLOB realmente é de no máximo 22 KB, vc não deve ter prob com isso ... []s Chiappa --- Em mailto:oracle_br%40yahoogrupos.com.br, J. Laurindo Chiappa escreveu Absolutamente não conheço/não uso o Navigator - já vi gente usando há uns tempos atrás mas eu mesmo não usei - , mas se é um negócio que vc faz Manualmente, sob demanda, eu Sugiro a alternativa não-programada de uma tool que garantidamente faça export de LOBs, como é o freeware da própria Oracle chamado SQL Developer : baixa ele em http://technet.oracle.com/ (pede um cadastro mas é de grátis) .. Com ele vc pode até afaik exportar os dados da sua consulta diretamente até em .XLS : só não sei se o padrão de arquivos .XLS permite uma coluna tão larga, mas é experimentar... Caso o Excel não permita, experimente o formato .XLS... []s Chiappa --- Em mailto:oracle_br%40yahoogrupos.com.br, Jales Jose Moraes escreveu Não, as CLOB's que temos dão no máximo 22kb, utilizo o navigator quando preciso fazer consultas rápidas no banco, daí eu monto a consulta e envio um .xls para o desenvolvedor, mas no caso quando tem CLOB não da certo. Ja tentei a conexão via o excel, mas ele não reconhece quando tem o CLOB... De: J. Laurindo Chiappa Para: mailto:oracle_br%40yahoogrupos.com.br Enviadas: Quinta-feira, 24 de Janeiro de 2013 14:16 Assunto: [oracle_br] Re: Exportar CLOB Bem, pra variar vc não diz versão de nada, não diz se os dados vão ser usados por um outro database Oracle (caso em que o exp ou o expdp podem servir), se essa tarefa precisa ser efetuada programaticamente OU se uma tool que tenha a capacidade (como por exemplo o freeware Oracle SQL Developer) pode ser manualmente executada, nem diz se os CLOBs são superiores ou não a 32 KB (o tamanho máximo de uma string no PL/SQL), mas seguinte : afora as tools que normalmente já manipulam isso para vc , supondo CLOBs maiores que 32 KB, se vc quer algo programado / automatizado via script, as opções são : a) no sqlplus, se vc setar com SET LONG nnn o tamanho máximo, com SPOOL vc pode gravar dados CLOB, desde Que : - o tamanho máximo dos teus CLOBs seja inferior ao máximo aceitado pelo sqlplus para o SET LONG e - as limitações do SPOOL (como a dificuldade de criar colunas nã-fixas) não te atrapalhem b) se por qquer motivo a) não te serviu, aí vc Vai ter que partir para a Programação , num das alternativas : 1. em PL/SQL, vc vai usar a UTL_FILE ** mas ** sem ser por put_line, mas sim juntando vários pedaços de 32 KB com PUT e FLUSH , http://searchoracle.techtarget.com/answer/Storing-CLOB-as-csv-file tem um exemplo (bem no fim da Página) 2. se vc tiver java disponível (no seu database ou no seu ambiente), e se vc tiver alguma mínima experiência nele, Java é uma outra opção para vc programar : http://www.dba-oracle.com/t_export_unload_blob_clob.htm é um exemplo 3. vc poder usar o pro*C da Oracle : http://phil-sqltips.blogspot.com.br/ tem um exemplo e algumas dicas básicas de compilação 4. vc pode, SE as tiver instaladas, tentar as rotinas de geração de dados em XML : http://stackoverflow.com/questions/6538128/oracle-automate-export-unload-of-data tem um exemplo, não muito completo mas tá lá, a considerar... Eu mesmo não mexi muito com esses caras, então não sei nem indicar um exemplo mais completo, mas eles exitem... okdoc ? E nem preciso dizer, quase TODAS as linguagens externas que podem conectar no RDBMS Oracle (perl/php, .NET, Delphi, VB, Cobol, etc, etc, etc) tem rotinas/comandos/built-ins de geração de arquivos que podem te ajudar, também... Idem para as tools que possuem linguagem de script interna e podem conectar no RDBMS, como Excel, por exemplo... []s Chiappa --- Em mailto:oracle_br%40yahoogrupos.com.br, Jales Jose Moraes escreveu Pessoal estou trabalhando com campos CLOB's, mas não estou conseguindo extrair os dados. A consulta retorna
[oracle_br] Duvida em sql
Pessoal estou executando uma consulta com a função NVL, porém o campo está nulo, mas não é convertido para 0, o retorno fica null também. Alguém poderia dar um auxilio? SELECT SUM ( NVL (vl_saldo, 0) + NVL (vl_saldo_ant, 0) ) saldo FROM sms.exec_financeiro WHERE sms.nu_seq_finan = 2251 [As partes desta mensagem que não continham texto foram removidas]
Re: RES: [oracle_br] Duvida em sql
Deu certo. obrigado... De: Marlon Pasquali - TI - Peccin S.A marlon.pasqu...@peccin.com.br Para: oracle_br@yahoogrupos.com.br Enviadas: Quarta-feira, 23 de Janeiro de 2013 15:52 Assunto: RES: [oracle_br] Duvida em sql Coloca o NVL na frente de tudo : SELECT nvl(SUM(NVL (vl_saldo, 0)+ NVL (vl_saldo_ant, 0)),0) saldo FROM sms.exec_financeiro WHERE sms.nu_seq_finan = 2251 MARLON ALEXANDRE PASQUALI De: mailto:oracle_br%40yahoogrupos.com.br [mailto:mailto:oracle_br%40yahoogrupos.com.br] Em nome de Jales Jose Moraes Enviada em: quarta-feira, 23 de janeiro de 2013 15:44 Para: grupo_oracle Assunto: [oracle_br] Duvida em sql Pessoal estou executando uma consulta com a função NVL, porém o campo está nulo, mas não é convertido para 0, o retorno fica null também. Alguém poderia dar um auxilio? SELECT SUM ( NVL (vl_saldo, 0) + NVL (vl_saldo_ant, 0) ) saldo FROM sms.exec_financeiro WHERE sms.nu_seq_finan = 2251 [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]
[oracle_br] Desativar schema
Pessoal estou precisando desativar um schema, para tal, faço um levantamento dos usuários/objetos que tem acesso a este schema e realizo os Revokes ou há uma forma direta de se fazer o procedimento? [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Desativar schema
Bom, pelo que entendi, seriam revogados aos acessos a nivel de DDL, para os usuários externos acredito que ainda seriam capazes de fazer consultas nesse schema. Ou não? De: Rafael Mendonca raffaell.t...@yahoo.com Para: oracle_br@yahoogrupos.com.br oracle_br@yahoogrupos.com.br Enviadas: Terça-feira, 22 de Janeiro de 2013 8:52 Assunto: Re: [oracle_br] Desativar schema Jales, eu tive a mesma dúvida há um tempo atrás e o mestre Chiappa respondeu o seguinte: --- Em mailto:oracle_br%40yahoogrupos.com.br, raffaell.ti77 escreveu Pessoal, boa tarde. Gostaria de saber se existe, e como, lockar todos os objetos de um determinado schema. Eu tenho o usuário XUXA, e nenhum usuário do database poderá realizar nenhuma modificação em nenhum objeto do schema XUXA. Alguém tem alguma sugestão? Oracle 11gR2. imho o Correto e Certo seria : tenha os objetos do schmema XUXA em tablespaces dedicadas a isso, Revoke de todo mundo os privilégios de UNLIMITED TABLESPACE (que permitem criar objs em qquer tablespace) e de ANY (especialmente CREATE ANY, COMPILE ANY, etc, que permitem criação/alteração de objetos em qquer schema), Mudança da senha do usuário XUXA (que deverá ser Secreta e conhecida apenas pelo Administrador desse schema) e tá feito o babado Caso por qquer motivo o Certo não possa ser feito, outra opção é vc ter uma trigger de DDL que barre alterações... []s Chiappa De: Jales Jose Moraes mailto:malphigjjm%40yahoo.com.br Para: grupo_oracle mailto:oracle_br%40yahoogrupos.com.br Enviadas: Terça-feira, 22 de Janeiro de 2013 8:36 Assunto: [oracle_br] Desativar schema Pessoal estou precisando desativar um schema, para tal, faço um levantamento dos usuários/objetos que tem acesso a este schema e realizo os Revokes ou há uma forma direta de se fazer o procedimento? [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] Re: Desativar schema
Sim, vou partir para a questão dos Revokes mesmo. Na base de desenv temos de fato os privilegios ANY, talvez nessa base eu possa criar um outro esquema e fazer o import para ele, essa parte preciso verificar. Obrigado pelas dicas de todos... De: J. Laurindo Chiappa jlchia...@yahoo.com.br Para: oracle_br@yahoogrupos.com.br Enviadas: Terça-feira, 22 de Janeiro de 2013 12:39 Assunto: [oracle_br] Re: Desativar schema Jales, vamos por partes : Primeiro, por default enquanto não houverem GRANTs específicos para os outro, só tem acesso a um schema (seja para queries, seja para DDLs ou DMLs) OU quem é dono dele OU quem recebeu os ultra-poderosos privilégios de DBA e/ou de ANY (ou seja, SELECT ANY TABLE, INSERT ANY, etc), OU se vc deu GRANTs para o PUBLIC, que é um schema geral, acessível a todos, okdoc ? Então aí temos : SE nesse database ninguém afora o DBA recebeu os super-poderosos privilégios ANY então SIM, basta vc fazer o REVOKE dos privilégios dos usuários todos (incluindo o PUBLIC) e kaput, nenhum usuário comum (só o DBA e o dono) poderão usar/ler de qquer forma esse schema, yes ?? para ainda mais restrição, vc altera a senha do owner do schema E locka o account dele, aí só o DBA poderá enxergar/ler/acessar esse schema... Esse é o caso mais simples... O mais complicado é se o seu banco é aquela quizumba aonde usuários não-DBA possuem privilégios de ANY (ou mesmo privilégio de SYSDBA, acredite vc ou não eu já vi isso mais de uma vez) , aí sem a Correção desses rombos de segurança com o REVOKE dos ANY e dos SYSDBA vc tem opções Limitadas : poderia bloquear DDLs com triggers de DDL, fazer com que os dados das tabelas não retornem criando uma política de row level security que os usuários comuns da aplicação não tenham, poderia criar sinônimos com os mesmos nomes dos objetos a serem escondidos no schema, poderia criar triggers de DML nas tabelas que façam RAISE_APPLICATION_ERROR para todos os usuários, poderia ter views, e quebra-galhos do tipo Mas tudo isso é quebra-galho, o Recomendado seria MESMO remover os privs de ANY e SYSDBA, e aí cair no caso acima []s Chiappa --- Em mailto:oracle_br%40yahoogrupos.com.br, Jales Jose Moraes escreveu Bom, pelo que entendi, seriam revogados aos acessos a nivel de DDL, para os usuários externos acredito que ainda seriam capazes de fazer consultas nesse schema. Ou não? De: Rafael Mendonca Para: mailto:oracle_br%40yahoogrupos.com.br; Enviadas: Terça-feira, 22 de Janeiro de 2013 8:52 Assunto: Re: [oracle_br] Desativar schema Jales, eu tive a mesma dúvida há um tempo atrás e o mestre Chiappa respondeu o seguinte: --- Em mailto:oracle_br%40yahoogrupos.com.br, raffaell.ti77 escreveu Pessoal, boa tarde. Gostaria de saber se existe, e como, lockar todos os objetos de um determinado schema. Eu tenho o usuário XUXA, e nenhum usuário do database poderá realizar nenhuma modificação em nenhum objeto do schema XUXA. Alguém tem alguma sugestão? Oracle 11gR2. imho o Correto e Certo seria : tenha os objetos do schmema XUXA em tablespaces dedicadas a isso, Revoke de todo mundo os privilégios de UNLIMITED TABLESPACE (que permitem criar objs em qquer tablespace) e de ANY (especialmente CREATE ANY, COMPILE ANY, etc, que permitem criação/alteração de objetos em qquer schema), Mudança da senha do usuário XUXA (que deverá ser Secreta e conhecida apenas pelo Administrador desse schema) e tá feito o babado Caso por qquer motivo o Certo não possa ser feito, outra opção é vc ter uma trigger de DDL que barre alterações... []s Chiappa De: Jales Jose Moraes mailto:malphigjjm%40yahoo.com.br Para: grupo_oracle mailto:oracle_br%40yahoogrupos.com.br Enviadas: Terça-feira, 22 de Janeiro de 2013 8:36 Assunto: [oracle_br] Desativar schema Pessoal estou precisando desativar um schema, para tal, faço um levantamento dos usuários/objetos que tem acesso a este schema e realizo os Revokes ou há uma forma direta de se fazer o procedimento? [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]
[oracle_br] Extração de campo CLOB
Pessoal estou precisando extrair para o excel, uma consulta no banco com alguns campos CLOB, mas está dando erro e não abre. Alguém sabe a forma correta? [As partes desta mensagem que não continham texto foram removidas]
[oracle_br] Ajuda em bloco anonimo
Pessoal estou precisando atualizar um registro de uma tabela com base no bloco abaixo, mas está dando erro, poderiam me auxiliar? declare@ @newpassword varchar(514);newbinarypassword varbinary(514);begin set @newpassword = replicate(char(255), 128) --blank password;set @newbinarypassword = cast (@newpassword as varbinary (514));update syn_user set password = @newbinarypassword where id = 0;end / [ começar ;1]: (Error): ORA-06550: linha 2, coluna 1: PLS-00103: Encontrado o símbolo @ quando um dos seguintes símbolos era esperado: function pragma procedimento subtype tipo um identificador um identificador delimitado por aspas duplas atual cursor deletar existe começar prior O símbolo @ foi ignorado. ORA-06550: linha 3, coluna 1: PLS-00103: Encontrado o símbolo @ quando um dos seguintes símbolos era esperado: function pragma procedimento subtype tipo um identificador um identificad [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Ajuda em bloco anonimo
Ok emerson, resolvi o problema. Mais tarde que vi só precisava mesmo do update. Obrigado... De: Emerson Martins emersonmarti...@gmail.com Para: oracle_br@yahoogrupos.com.br Enviadas: Terça-feira, 15 de Janeiro de 2013 9:42 Assunto: Re: [oracle_br] Ajuda em bloco anonimo Bom dia Jales.. Comece removendo esse @.Pois os mesmos nao pertencem a linguagem Pl/Sql..Recomendo ainda dar uma olhadinha no google sobre a sintaxe de blocos anonimos.. Em 15/01/2013 10:58, Rafael Mendonca raffaell.t...@yahoo.com escreveu: ** Jales, bom dia. Pelo que me parece você está escrevendo um código T-SQL enquanto deveria escrever um código PL-SQL. De: Jales Jose Moraes malphig...@yahoo.com.br Para: grupo_oracle oracle_br@yahoogrupos.com.br Enviadas: Terça-feira, 15 de Janeiro de 2013 8:51 Assunto: [oracle_br] Ajuda em bloco anonimo Pessoal estou precisando atualizar um registro de uma tabela com base no bloco abaixo, mas está dando erro, poderiam me auxiliar? declare@ @newpassword varchar(514);newbinarypassword varbinary(514);begin set @newpassword = replicate(char(255), 128) --blank password;set @newbinarypassword = cast (@newpassword as varbinary (514));update syn_user set password = @newbinarypassword where id = 0;end / [ começar ;1]: (Error): ORA-06550: linha 2, coluna 1: PLS-00103: Encontrado o símbolo @ quando um dos seguintes símbolos era esperado: function pragma procedimento subtype tipo atual cursor deletar existe começar prior O símbolo @ foi ignorado. ORA-06550: linha 3, coluna 1: PLS-00103: Encontrado o símbolo @ quando um dos seguintes símbolos era esperado: function pragma procedimento subtype tipo [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]
[oracle_br] Entendimento no order by
Senhores, um desenvolvedor veio me questionar porque uma consulta em sua ferramenta (SQL Developer) apresenta um retorno diferente do que executado na mesma ferramenta (mas em outra máquina) utilizando o mesmo order by (order by em duas colunas). Tem uma explicação para isto? [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Re: Entendimento no order by
Obrigado Zilmar e Chiappa, Era exatamente este parametro que estava diferente, executei o Alter Session nele e ordenou corretamente. De: Zilmar Furquim zfurq...@ig.com.br Para: oracle_br@yahoogrupos.com.br Enviadas: Segunda-feira, 14 de Janeiro de 2013 11:37 Assunto: [oracle_br] Re: Entendimento no order by Jales, Verifique o parâmetro NLS_SORT setado em cada uma das máquinas onde a consulta foi executada. Abs, Zilmar Furquim Synchro Systems --- Em mailto:oracle_br%40yahoogrupos.com.br, Jales Jose Moraes escreveu Senhores, um desenvolvedor veio me questionar porque uma consulta em sua ferramenta (SQL Developer) apresenta um retorno diferente do que executado na mesma ferramenta (mas em outra máquina) utilizando o mesmo order by (order by em duas colunas). Tem uma explicação para isto? [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
[oracle_br] erro de ddl em function
Pessoal tenho este create table dentro de uma function, compila corretamente, mas na hora do exec (select na tabela dual) da o erro de CREATE inválido. Os senhores podem me auxiliar na questão? begin v_sqlstring := 'create table purged_archives ( id number(38) not null, revisionnumber number not null, hexid varchar2(50) null, procflag char(1) null, hiveid number(11,0) null, MD5 raw(16) null, type number(11,0) null, compression number(11,0) null, archiveformat number(11,0) null)'; EXECUTE IMMEDIATE v_sqlstring; No exec: ORA-20001: ORA-00901: comando CREATE inválido ORA-06512: em sms.TEMP_TABLES, line 589 [As partes desta mensagem que não continham texto foram removidas]