Re: [oracle_br] Re: [PL/SQL] Dúvida Agrupar Próximos Registros
Grande Chiappa, Era mais ou menos isso que eu precisava sim... De uma dica de uma lógica que fosse melhor do que a minha... Irei fazer novos testes e qualquer coisa respondo aqui, por enquanto, muito obrigado !!! [ ]s Em sexta-feira, 27 de setembro de 2019 09:17:41 BRT, jlchia...@yahoo.com.br [oracle_br] escreveu: Blz ? Parece ser meio enrolada atua regra, demandaria mais do que os 2 minutos (máximo) que deixo pra responder, mas numa olhada rápida acho que vc está muito muito perto : minha única Ressalva é que vc Absolutamente Não Precisa abrir um cursor e ficar fazendo IFs, acredito que vc possa fazer algo tipo : SELECT inicio, fim, prazo, sum(CASE when prazo+1 = prx_inicio then prazo else 0) , ...colunas... FROM ( select t.inicio, t.fim, t.prazo, lead(t.inicio - 1) over (order by t.inicio) prx_inicio, lead(t.fim) over (order by t.fim) prx_fim, lead(t.prazo) over (order by t.prazo) prx_prazo from tabela t order by t.inicio, t.fim, t.prazo; ) ==> OU SEJA , vc só soma a coluna SE o valor obedece ás tuas regras É essa a técnica principal, okdoc ?? Como eu disse, não tive o tempo de mastigar algo mais preciso, mas ACREDITO que é por aí []s Chiappa #yiv3789662370 #yiv3789662370 -- #yiv3789662370ygrp-mkp {border:1px solid #d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv3789662370 #yiv3789662370ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv3789662370 #yiv3789662370ygrp-mkp #yiv3789662370hd {color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 0;}#yiv3789662370 #yiv3789662370ygrp-mkp #yiv3789662370ads {margin-bottom:10px;}#yiv3789662370 #yiv3789662370ygrp-mkp .yiv3789662370ad {padding:0 0;}#yiv3789662370 #yiv3789662370ygrp-mkp .yiv3789662370ad p {margin:0;}#yiv3789662370 #yiv3789662370ygrp-mkp .yiv3789662370ad a {color:#ff;text-decoration:none;}#yiv3789662370 #yiv3789662370ygrp-sponsor #yiv3789662370ygrp-lc {font-family:Arial;}#yiv3789662370 #yiv3789662370ygrp-sponsor #yiv3789662370ygrp-lc #yiv3789662370hd {margin:10px 0px;font-weight:700;font-size:78%;line-height:122%;}#yiv3789662370 #yiv3789662370ygrp-sponsor #yiv3789662370ygrp-lc .yiv3789662370ad {margin-bottom:10px;padding:0 0;}#yiv3789662370 #yiv3789662370actions {font-family:Verdana;font-size:11px;padding:10px 0;}#yiv3789662370 #yiv3789662370activity {background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv3789662370 #yiv3789662370activity span {font-weight:700;}#yiv3789662370 #yiv3789662370activity span:first-child {text-transform:uppercase;}#yiv3789662370 #yiv3789662370activity span a {color:#5085b6;text-decoration:none;}#yiv3789662370 #yiv3789662370activity span span {color:#ff7900;}#yiv3789662370 #yiv3789662370activity span .yiv3789662370underline {text-decoration:underline;}#yiv3789662370 .yiv3789662370attach {clear:both;display:table;font-family:Arial;font-size:12px;padding:10px 0;width:400px;}#yiv3789662370 .yiv3789662370attach div a {text-decoration:none;}#yiv3789662370 .yiv3789662370attach img {border:none;padding-right:5px;}#yiv3789662370 .yiv3789662370attach label {display:block;margin-bottom:5px;}#yiv3789662370 .yiv3789662370attach label a {text-decoration:none;}#yiv3789662370 blockquote {margin:0 0 0 4px;}#yiv3789662370 .yiv3789662370bold {font-family:Arial;font-size:13px;font-weight:700;}#yiv3789662370 .yiv3789662370bold a {text-decoration:none;}#yiv3789662370 dd.yiv3789662370last p a {font-family:Verdana;font-weight:700;}#yiv3789662370 dd.yiv3789662370last p span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv3789662370 dd.yiv3789662370last p span.yiv3789662370yshortcuts {margin-right:0;}#yiv3789662370 div.yiv3789662370attach-table div div a {text-decoration:none;}#yiv3789662370 div.yiv3789662370attach-table {width:400px;}#yiv3789662370 div.yiv3789662370file-title a, #yiv3789662370 div.yiv3789662370file-title a:active, #yiv3789662370 div.yiv3789662370file-title a:hover, #yiv3789662370 div.yiv3789662370file-title a:visited {text-decoration:none;}#yiv3789662370 div.yiv3789662370photo-title a, #yiv3789662370 div.yiv3789662370photo-title a:active, #yiv3789662370 div.yiv3789662370photo-title a:hover, #yiv3789662370 div.yiv3789662370photo-title a:visited {text-decoration:none;}#yiv3789662370 div#yiv3789662370ygrp-mlmsg #yiv3789662370ygrp-msg p a span.yiv3789662370yshortcuts {font-family:Verdana;font-size:10px;font-weight:normal;}#yiv3789662370 .yiv3789662370green {color:#628c2a;}#yiv3789662370 .yiv3789662370MsoNormal {margin:0 0 0 0;}#yiv3789662370 o {font-size:0;}#yiv3789662370 #yiv3789662370photos div {float:left;width:72px;}#yiv3789662370 #yiv3789662370photos div div {border:1px solid #66;min-height:62px;overflow:hidden;width:62px;}#yiv3789662370 #yiv3789662370photos div label
[oracle_br] Re: [PL/SQL] Dúvida Agrupar Próximos Registros
Blz ? Parece ser meio enrolada atua regra, demandaria mais do que os 2 minutos (máximo) que deixo pra responder, mas numa olhada rápida acho que vc está muito muito perto : minha única Ressalva é que vc Absolutamente Não Precisa abrir um cursor e ficar fazendo IFs, acredito que vc possa fazer algo tipo : SELECT inicio, fim, prazo, sum(CASE when prazo+1 = prx_inicio then prazo else 0) , ...colunas... FROM ( select t.inicio, t.fim, t.prazo, lead(t.inicio - 1) over (order by t.inicio) prx_inicio, lead(t.fim) over (order by t.fim) prx_fim, lead(t.prazo) over (order by t.prazo) prx_prazo from tabela t order by t.inicio, t.fim, t.prazo; ) ==> OU SEJA , vc só soma a coluna SE o valor obedece ás tuas regras É essa a técnica principal, okdoc ?? Como eu disse, não tive o tempo de mastigar algo mais preciso, mas ACREDITO que é por aí []s Chiappa
[oracle_br] Re: [PL/SQL] Dúvida Agrupar Próximos Registros
Blz ? Parece ser meio enrolada atua regra, demandaria mais do que os 2 minutos (máximo) que deixo pra responder, mas numa olhada rápida acho que vc está muito muito perto : minha única Ressalva é que vc Absolutamente Não Precisa abrir um cursor e ficar fazendo IFs, acredito que vc possa fazer algo tipo : SELECT inicio, fim, prazo, sum(CASE when prazo+1 = prx_inicio then prazo else 0) , ...colunas... FROM ( select t.inicio, t.fim, t.prazo, lead(t.inicio - 1) over (order by t.inicio) prx_inicio, lead(t.fim) over (order by t.fim) prx_fim, lead(t.prazo) over (order by t.prazo) prx_prazo from tabela t order by t.inicio, t.fim, t.prazo; ) ==> OU SEJA , vc só soma a coluna SE o valor obedece ás tuas regras É essa a técnica principal, okdoc ?? Como eu disse, não tive o tempo de mastigar algo mais preciso, mas ACREDITO que é por aí []s Chiappa
[oracle_br] Re: PL/SQL - trigger
Sim, é totalmente Possível vc saber qual valor está sendo inserido, provavelmente numa variável dentro da trigger : uma opção é a cláusula RETURNING , que desde há muito tempo existe e faz exatamente isso, veja http://stackoverflow.com/questions/361304/oracle-how-do-i-get-the-sequence-number-of-the-row-just-inserted para um Exemplo Ou até mesmo vc pode fazer o que se fazia antes , ie : alterar o que vc deve estar fazendo hoje, que certamente é INSERT INTO tabela ... VALUES (..., nomedasequence.nexval) para um V_SEQ := nomedasequence.nextval; INSERT INTO tabela VALUES (..., :V_SEQ, ...) Agora : uma vez que a informação está numa variável da trigger, como fazer para passar para a rotina que precisará disso para outro insert ?? O ** ideal ** seria que vc não tivesse que passar esse valor, fazendo com que o INSERT na outra tabela que usa o valor gerado pela sequence aconteça nesse mesma trigger, mas SE isso não for possível, vc terá que ter uma tabela de trabalho com essa informação : outras opções como GTT, contexts e variáveis globais servem para um caso único, uma ocorrência do valor, o que Imagino que não é o seu caso, vc pode ter Múltiplas sessões fazendo INSERTs e disparando a trigger, o que invalida outra coisa que não seja uma tabela de banco, mesmo, eu acho... []s Chiappa
Re: [oracle_br] Re: PL/SQL - trigger
No caso para acessar o valor gerado dentro trigger pela sequencia, você pode criar uma variável de pacote e então dentro da trigger setar seu valor e uma procedure consultar este valor. O valor da variável é valido apenas para a sessão. Exemplo: SQL connect producao_fas/senha@bdagnusConectado. SQL create or replace package PCK_TESTE is 2 3 procedure set_seq_table1(pk_table1 number); 4 5 function get_seq_table1 return number; 6 7 end PCK_TESTE; 8 / Pacote criado. SQL create or replace package body PCK_TESTE is 2 3 v_seq integer; 4 5 procedure set_seq_table1(pk_table1 number) is 6 begin 7 v_seq := pk_table1; 8 end; 9 10 function get_seq_table1 return number is 11 begin 12 return v_seq; 13 end; 14 15 end PCK_TESTE; 16 / Em uma sessão a trigger executa o SET e uma procedure da mesma sessão realiza o GET. --- SESSÂO 1 --- SQL connect producao_fas/senha@bdagnus Conectado. SQL call pck_teste.set_seq_table1(1); Chamada concluÝda. SQL select pck_teste.get_seq_table1 from dual; GET_SEQ_TABLE1 -- 1 --- SESSÂO 2 --- SQL connect producao_fas/senha@bdagnus Conectado. SQL call pck_teste.set_seq_table1(2); Chamada concluÝda. SQL select pck_teste.get_seq_table1 from dual; GET_SEQ_TABLE1 -- 2 --- VOLTAR NA SESSÂO 1 --- SQL select pck_teste.get_seq_table1 from dual; GET_SEQ_TABLE1 -- 1 Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3) Em Terça-feira, 22 de Abril de 2014 13:43, jlchia...@yahoo.com.br jlchia...@yahoo.com.br escreveu: Sim, é totalmente Possível vc saber qual valor está sendo inserido, provavelmente numa variável dentro da trigger : uma opção é a cláusula RETURNING , que desde há muito tempo existe e faz exatamente isso, veja http://stackoverflow.com/questions/361304/oracle-how-do-i-get-the-sequence-number-of-the-row-just-inserted para um Exemplo Ou até mesmo vc pode fazer o que se fazia antes , ie : alterar o que vc deve estar fazendo hoje, que certamente é INSERT INTO tabela ... VALUES (..., nomedasequence.nexval) para um V_SEQ := nomedasequence.nextval; INSERT INTO tabela VALUES (..., :V_SEQ, ...) Agora : uma vez que a informação está numa variável da trigger, como fazer para passar para a rotina que precisará disso para outro insert ?? O ** ideal ** seria que vc não tivesse que passar esse valor, fazendo com que o INSERT na outra tabela que usa o valor gerado pela sequence aconteça nesse mesma trigger, mas SE isso não for possível, vc terá que ter uma tabela de trabalho com essa informação : outras opções como GTT, contexts e variáveis globais servem para um caso único, uma ocorrência do valor, o que Imagino que não é o seu caso, vc pode ter Múltiplas sessões fazendo INSERTs e disparando a trigger, o que invalida outra coisa que não seja uma tabela de banco, mesmo, eu acho... []s Chiappa
Re: [oracle_br] Re: PL/SQL - trigger
Pessoal, Variáveis criadas na especificação do pacote também tem escopo somente de sessão, portanto, seria o mesmo que utilizar CURRVAL da sequence. []s Fábio Prado *Fábio Prado* http://www.fabioprado.net/2014/01/oracle-ace-o-que-e-isso.html www.fabioprado.net Compartilhando conhecimentos e treinando profissionais em Bancos de Dados Oracle Em 22 de abril de 2014 15:39, Alessandro Lúcio Cordeiro da Silva alecordeirosi...@yahoo.com.br escreveu: No caso para acessar o valor gerado dentro trigger pela sequencia, você pode criar uma variável de pacote e então dentro da trigger setar seu valor e uma procedure consultar este valor. O valor da variável é valido apenas para a sessão. Exemplo: SQL connect producao_fas/senha@bdagnus Conectado. SQL create or replace package PCK_TESTE is 2 3 procedure set_seq_table1(pk_table1 number); 4 5 function get_seq_table1 return number; 6 7 end PCK_TESTE; 8 / Pacote criado. SQL create or replace package body PCK_TESTE is 2 3 v_seq integer; 4 5 procedure set_seq_table1(pk_table1 number) is 6 begin 7 v_seq := pk_table1; 8 end; 9 10 function get_seq_table1 return number is 11 begin 12 return v_seq; 13 end; 14 15 end PCK_TESTE; 16 / Em uma sessão a trigger executa o SET e uma procedure da mesma sessão realiza o GET. --- SESSÂO 1 --- SQL connect producao_fas/senha@bdagnus Conectado. SQL call pck_teste.set_seq_table1(1); Chamada concluÝda. SQL select pck_teste.get_seq_table1 from dual; GET_SEQ_TABLE1 -- 1 --- SESSÂO 2 --- SQL connect producao_fas/senha@bdagnus Conectado. SQL call pck_teste.set_seq_table1(2); Chamada concluÝda. SQL select pck_teste.get_seq_table1 from dual; GET_SEQ_TABLE1 -- 2 --- VOLTAR NA SESSÂO 1 --- SQL select pck_teste.get_seq_table1 from dual; GET_SEQ_TABLE1 -- 1 Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3) Em Terça-feira, 22 de Abril de 2014 13:43, jlchia...@yahoo.com.br jlchia...@yahoo.com.br escreveu: Sim, é totalmente Possível vc saber qual valor está sendo inserido, provavelmente numa variável dentro da trigger : uma opção é a cláusula RETURNING , que desde há muito tempo existe e faz exatamente isso, veja http://stackoverflow.com/questions/361304/oracle-how-do-i-get-the-sequence-number-of-the-row-just-insertedpara um Exemplo Ou até mesmo vc pode fazer o que se fazia antes , ie : alterar o que vc deve estar fazendo hoje, que certamente é INSERT INTO tabela ... VALUES (..., nomedasequence.nexval) para um V_SEQ := nomedasequence.nextval; INSERT INTO tabela VALUES (..., :V_SEQ, ...) Agora : uma vez que a informação está numa variável da trigger, como fazer para passar para a rotina que precisará disso para outro insert ?? O ** ideal ** seria que vc não tivesse que passar esse valor, fazendo com que o INSERT na outra tabela que usa o valor gerado pela sequence aconteça nesse mesma trigger, mas SE isso não for possível, vc terá que ter uma tabela de trabalho com essa informação : outras opções como GTT, contexts e variáveis globais servem para um caso único, uma ocorrência do valor, o que Imagino que não é o seu caso, vc pode ter Múltiplas sessões fazendo INSERTs e disparando a trigger, o que invalida outra coisa que não seja uma tabela de banco, mesmo, eu acho... []s Chiappa
[oracle_br] Re: Pl Sql Developer X SQL Navigator
Mário, Acabei me confundindo com os nomes parecidos, uma vez que tenho mais de um produto em uso. As dicas que passei, referen-se ao Oracle SQL Developer, que é free, em java (roda o mesmo em Linux e Windows) e tem diversos recursos interessantes, atém dos relatórios prontos. Ederson Elias DBA Oracle http://br.linkedin.com/pub/ederson-elias/24/8b/8b0 --- Em oracle_br@yahoogrupos.com.br, Mario Rodrigues marioirodrigues@... escreveu Owww galera vlw mesmo!!! Rafael show de bola as querys obrigado Milton realmente os 2 são pagos e justamente isso... foi adquirida a licença para o Navigator ... o outro que eu era um Jack Sparow rsrsrsrs ... por ele ter justamente diversos recursos q eu conhecia... Agora Edson show de bola não to com o PLSQL Dev aqui, mas em casa vou procurar essa dos relatórios que eu não conhecia :D Bom obrigado a todos...o que foi falado e exemplificado aqui já me ajudou pacas...obg mais um vez a todos! Em 3 de outubro de 2012 09:21, ederson2001br ederson2001br@...escreveu: ** Alô Mario, Tem até mais que isto. Vá na guia RELATORIOS (à direita de CONEXÕES) / Administração do Banco de Dados / Relatórios do Dicionário de Dados / Sessões. Nesta área de relatórios, vc pode buscar sessões ativas bloqueadas por usuarios, eventos de espera, relatórios de memória. Quanto às query´es, se você chegar ao relatório desejado (existente no SQLDEVELOPER), basta clicar no ícone (verde escrito SQL) à direita do PLAY VERDE, que ele mostra a query, pode copiar e modificar conforme a sua necessidade. Ederson Elias DBA Oracle http://br.linkedin.com/pub/ederson-elias/24/8b/8b0 --- Em oracle_br@yahoogrupos.com.br, Mario Rodrigues marioirodrigues@ escreveu Pessoal Bom Dia Sempre usei MySql como banco de dados por isso preciso da opinião e ajuda dos senhores(as) No plsql developer existe uma opção Tools Session alguém sabe se no SQL Navigator tem isso? Tudo bem é só select * from $session e tals ... mas existem alguns recursos lá interessantes... Outra coisa alguém poderia indicar site ou arquivo onde eu pudesse dar uma estudada sobre performance e monitoramento no Oracle? Estou tendo uns probleminhas de alto processamento o que leva a baixa performance em determinado momento do dia...eu queria monitorar isso...dai claro se alguém tiver aquelas query's usadas no dia a dia pra monitorar e não tiver bronca em repassar tb agradeceria :P obg [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
[oracle_br] Re: PL/SQL ORACLE 11g
Tathyanna, deixe-me me meter um pouco aí na conversa : então, a dúvida do Milton é a mesma minha, o escopo dos novos comandos que vc quer... Pois tanto na linguagem SQL em todo novo release há adições, que ás vezes nem comandos próprios são : exemplo, entre os que vc cita o ROLLUP é uma função que vc pode usar junto com a cláusula GROUP BY do SELECT - não é um comando independente -, o CASE também é um adicional novo que vc pode usar em SELECTs ou em cláusulas de filtro de INSERT/UPDATEs/DELETEs, etc... A minha recomendação é uma só, goto manuais Oracle, lá vc vai encontrar direitinho especificado o que é comando, o que é add-on, o que é função, E (o melhor, pra fins de aprendizado), vai estar separadinho o que é pertencente á linguagem SQL, e/ou a linguagem PL/SQL, ou é funcção/rotina interna do database que pode ser usada em qquer linguagem dele... Não basta só afalar ah, quero conhecer os 'comandos' do Oracle, vc Necessariamente tem que conhecer/saber diferenciar SQL, PL/SQL, a quem pertence o tal comando... Se vc quiser uma lista dos comandos/add-ons/funcções novos apenas, vc usa o manual de New features... Os manuais todos vc encontra on-line e de grátis em http://tahiti.oracle.com/ , inclusive as versões mais antigas : isso é legal porque muitos novos comandos foram introduzidos na versão 10g e na 9i também e talvez vc não os tenha usado/não os conheça, é no manual de New Features dessas versões que vc os encontra... []s Chiappa --- Em oracle_br@yahoogrupos.com.br, Tathyanna Pelegrinni tathyanna@... escreveu Oi, Milton!! Gostaria de saber se há muitos comandos novos, na versão 11g do banco. Tipo qdo apareceram os comandos CASE, ROLLUP, CUBE etc. Mas, esse link q vc passou já tá bom demais! Não conhecia esse site, não. Excelente! Muito obrigada. [ ]s 2011/10/24 Milton Bastos Henriquis Junior milton.bastos@... ** Boa tarde Tathyanna Não entendi se você deseja estudar somente os novos recursos da linguagem PL/SQL da versão 11g, ou se você quer um material completo com tudo, incluindo os novos recursos... De qualquer maneira, segue minha contribuição: - No site abaixo há vários artigos sobre PL/SQL, agrupados pela versão, ou seja, ele mostra quais os novos recursos da versão 11g, e também mostra recursos que foram implementados nas versões anteriores (10g, 9i, etc...). Não é um material COMPLETO, e sim apenas alguns artigos dessas novas funcionalidades (não TODAS), eu particularmente gosto muito deste site, é uma das minha referências permanentes: http://www.oracle-base.com/articles/plsql/ArticlesPLSQL.php Att, -- Milton Bastos http://miltonbastos.com De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em nome de Tathyanna Pelegrinni Enviada em: segunda-feira, 24 de outubro de 2011 14:06 Para: oracle_br@yahoogrupos.com.br Assunto: [oracle_br] PL/SQL ORACLE 11g PessoALL, Alguém já possui em formato digital uma apostila ou um guia rápido de comandos para a versao 11g do Oracle, que possa disponibilizar aqui? Há muitas diferencas para a versao 10g? Comandos novos etc... Há? Vlw!! [As partes desta mensagem que não continham texto foram removidas] Clique aquihttps://www.mailcontrol.com/sr/wQw0zmjPoHdJTZGyOCrrhg== para reportar este e-mail como SPAM. This message has been scanned for malware by Websense. www.websense.com [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: PL/SQL ORACLE 11g
Ôpa!! Vou dar uma olhada nesse manual New Features, sim. Gostei muito dos 2 sites. Muitíssimo obrigada! :-D Grande abraço, P.S. Esclarecendo à vcs... o que estou procurando são novas funçoes. Se existem novas, quais são elas e para que servem? Digo isso, pq por exemplo, foi somente no inicio do ano passado que conheci o ROW_NUMBER() OVER e o RANK OVER, e adorei eleS. Me foi de grande utilidade várias vezes! 2011/10/24 José Laurindo jlchia...@yahoo.com.br ** Tathyanna, deixe-me me meter um pouco aí na conversa : então, a dúvida do Milton é a mesma minha, o escopo dos novos comandos que vc quer... Pois tanto na linguagem SQL em todo novo release há adições, que ás vezes nem comandos próprios são : exemplo, entre os que vc cita o ROLLUP é uma função que vc pode usar junto com a cláusula GROUP BY do SELECT - não é um comando independente -, o CASE também é um adicional novo que vc pode usar em SELECTs ou em cláusulas de filtro de INSERT/UPDATEs/DELETEs, etc... A minha recomendação é uma só, goto manuais Oracle, lá vc vai encontrar direitinho especificado o que é comando, o que é add-on, o que é função, E (o melhor, pra fins de aprendizado), vai estar separadinho o que é pertencente á linguagem SQL, e/ou a linguagem PL/SQL, ou é funcção/rotina interna do database que pode ser usada em qquer linguagem dele... Não basta só afalar ah, quero conhecer os 'comandos' do Oracle, vc Necessariamente tem que conhecer/saber diferenciar SQL, PL/SQL, a quem pertence o tal comando... Se vc quiser uma lista dos comandos/add-ons/funcções novos apenas, vc usa o manual de New features... Os manuais todos vc encontra on-line e de grátis em http://tahiti.oracle.com/ , inclusive as versões mais antigas : isso é legal porque muitos novos comandos foram introduzidos na versão 10g e na 9i também e talvez vc não os tenha usado/não os conheça, é no manual de New Features dessas versões que vc os encontra... []s Chiappa --- Em oracle_br@yahoogrupos.com.br, Tathyanna Pelegrinni tathyanna@... escreveu Oi, Milton!! Gostaria de saber se há muitos comandos novos, na versão 11g do banco. Tipo qdo apareceram os comandos CASE, ROLLUP, CUBE etc. Mas, esse link q vc passou já tá bom demais! Não conhecia esse site, não. Excelente! Muito obrigada. [ ]s 2011/10/24 Milton Bastos Henriquis Junior milton.bastos@... ** Boa tarde Tathyanna Não entendi se você deseja estudar somente os novos recursos da linguagem PL/SQL da versão 11g, ou se você quer um material completo com tudo, incluindo os novos recursos... De qualquer maneira, segue minha contribuição: - No site abaixo há vários artigos sobre PL/SQL, agrupados pela versão, ou seja, ele mostra quais os novos recursos da versão 11g, e também mostra recursos que foram implementados nas versões anteriores (10g, 9i, etc...). Não é um material COMPLETO, e sim apenas alguns artigos dessas novas funcionalidades (não TODAS), eu particularmente gosto muito deste site, é uma das minha referências permanentes: http://www.oracle-base.com/articles/plsql/ArticlesPLSQL.php Att, -- Milton Bastos http://miltonbastos.com De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em nome de Tathyanna Pelegrinni Enviada em: segunda-feira, 24 de outubro de 2011 14:06 Para: oracle_br@yahoogrupos.com.br Assunto: [oracle_br] PL/SQL ORACLE 11g PessoALL, Alguém já possui em formato digital uma apostila ou um guia rápido de comandos para a versao 11g do Oracle, que possa disponibilizar aqui? Há muitas diferencas para a versao 10g? Comandos novos etc... Há? Vlw!! [As partes desta mensagem que não continham texto foram removidas] Clique aquihttps://www.mailcontrol.com/sr/wQw0zmjPoHdJTZGyOCrrhg== para reportar este e-mail como SPAM. This message has been scanned for malware by Websense. www.websense.com [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] -- 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/
[oracle_br] Re: PL/SQL Foms e Reports
Olha Anderson só acrescentando o que o Chiappa ja citou, aqui na empresa ainda utilizandos como base de treinamento para estagiários o Livro: Oracle9i (ou Oracle8i) Para Desenvolvedores - Oracle Developer 6i Curso Completo da editora: Axcel Books escrito por: Lúcia Fernandes vc pode encontra-lo no mercado livre ou nesse link: http://livrosweb.com/book.php/id/6285 ele dá uma boa orientação de como funciona as ferramentas Forms/Reports, depois desse livro é que aplicamos um treinamento mais aprofundado. Lucimar dos Santos Programador Forms/Reports 6 e 9 --- Em oracle_br@yahoogrupos.com.br, Anderson A Campos [EMAIL PROTECTED] escreveu Caros senhores, Gostaria de começar a estudar forms e reports. Que literatura recomendam? Anderson Campos Veja quais são os assuntos do momento no Yahoo! +Buscados http://br.maisbuscados.yahoo.com
[oracle_br] Re: PL/SQL Foms e Reports
Sem a menor sombra de dúvida, primeiro de tudo recomendo os Demos e a documentação da próproa Oracle, e em technet.oracle.com a página de Developer. Eu recomendaria FORTEMENTE também um treinamentozinho, ainda que num centro de treinamento não-oficial, tipo introdutório, para começar : isso ajuda MUITO MUITO a conhecer melhor a IDE do Forms, e necessariamente num curso mesmo que introdutório e genérico o Instrutor vai explicar um pouco sobre os conceitos do Forms e do Reports, que são bem diferentes de outras tools. []s Chiappa == Palestrante ENPO.BR - acesse http://www.enpo- br.org/ Instrutor Workshops ENPO/TWS - acesse http://www.twstecnologia.com.br/ Agora Blogando em www.ora600.com.br - confira as novidades ! == Existem três frases que vão levar sua vida em diante: Não diga que fui eu, Já estava assim quando cheguei e Oh que boa idéia chefe. Homer Simpson --- Em oracle_br@yahoogrupos.com.br, Anderson A Campos [EMAIL PROTECTED] escreveu Caros senhores, Gostaria de começar a estudar forms e reports. Que literatura recomendam? Anderson Campos Veja quais são os assuntos do momento no Yahoo! +Buscados http://br.maisbuscados.yahoo.com
[oracle_br] Re: PL/SQL Foms e Reports
Como COMPLEMENTO (nunca em substituição às fontes citadas antes, mas complementando-as) eu posso citar os livros : Oracle Developer Forms Techniques, de Bulusu Lakshman, Editora Sams, Paperback Oracle Forms Developer: The Complete Video Course, de Benjamin Rosenzweig e Baman Motivala, Editora Prentice Hall Oracle Developer: Advanced Forms Reports, de Peter Koletzke e Paul Dorsey, Editora Oracle Press []s Chiappa == Palestrante ENPO.BR - acesse http://www.enpo- br.org/ Instrutor Workshops ENPO/TWS - acesse http://www.twstecnologia.com.br/ Agora Blogando em www.ora600.com.br - confira as novidades ! == Existem três frases que vão levar sua vida em diante: Não diga que fui eu, Já estava assim quando cheguei e Oh que boa idéia chefe. Homer Simpson --- Em oracle_br@yahoogrupos.com.br, jlchiappa [EMAIL PROTECTED] escreveu Sem a menor sombra de dúvida, primeiro de tudo recomendo os Demos e a documentação da próproa Oracle, e em technet.oracle.com a página de Developer. Eu recomendaria FORTEMENTE também um treinamentozinho, ainda que num centro de treinamento não-oficial, tipo introdutório, para começar : isso ajuda MUITO MUITO a conhecer melhor a IDE do Forms, e necessariamente num curso mesmo que introdutório e genérico o Instrutor vai explicar um pouco sobre os conceitos do Forms e do Reports, que são bem diferentes de outras tools. []s Chiappa == Palestrante ENPO.BR - acesse http://www.enpo- br.org/ Instrutor Workshops ENPO/TWS - acesse http://www.twstecnologia.com.br/ Agora Blogando em www.ora600.com.br - confira as novidades ! == Existem três frases que vão levar sua vida em diante: Não diga que fui eu, Já estava assim quando cheguei e Oh que boa idéia chefe. Homer Simpson --- Em oracle_br@yahoogrupos.com.br, Anderson A Campos cadeveloper@ escreveu Caros senhores, Gostaria de começar a estudar forms e reports. Que literatura recomendam? Anderson Campos Veja quais são os assuntos do momento no Yahoo! +Buscados http://br.maisbuscados.yahoo.com
[oracle_br] Re: PL/SQL...
Desculpe pessoal. Pelo meu software de e-mail (Outlook Express) eu não recebi essa mensagem. Então entre na página do grupo e só agora que eu vi. Chiappa, analisando o que vc disse, acho que pode ser o problema do AUTOCOMMIT, pois estou rodando essa package no SQL*PLUS. Quando a mesma estiver rodando em produção, ela vai ser rodado por scheduler do windows. Na lógica eu utilizo um cursor, que faz o select no DB2 e gravo algumas informações no DB2 e depois gravo informações no Oracle. Ela faz a exportação de mais ou menos umas 40 informações, depois dá esse erro, volto a rodar a package e termina o processo. Nesse processo eu dou o COMMIT duas vezes, por ser banco diferentes, um quando finaliza o processo do DB2 e outro quando finaliza o do Oracle, ai faço o FETCH e assim por diante. Há também um ROLLBACK para cada SGBD. Obrigado, Márcio Ricardo. --- Em oracle_br@yahoogrupos.com.br, Milton Bastos Henriquis Jr. [EMAIL PROTECTED] escreveu Seu e-mail já foi respondido pelo Chiappa, colega!! Vc não recebeu??? 2008/2/8 Márcio Ricardo [EMAIL PROTECTED]: Pessoal, alguém programa em PL/SQL que já passou por esse problema que postei abaixo? Márcio Ricardo Alves da Silva Programador Pleno * [EMAIL PROTECTED] marcio.silva%40config.com.br Config Informática Ltda Av. Eng. Luis Carlos Berrini, 801 - 7º andar 04571-010 - Brooklin Novo - São Paulo - SP ( Fone (11) 5501-8300 ( Fax (11) 5501-8302 8 www.config.com.br - Original Message - From: Márcio Ricardo [EMAIL PROTECTED]marcio_cbj%40yahoo.com.br To: oracle_br@yahoogrupos.com.br oracle_br% 40yahoogrupos.com.br; [EMAIL PROTECTED] GPOracle%40yahoogrupos.com.br Sent: Wednesday, February 06, 2008 8:14 AM Subject: [oracle_br] PL/SQL... Untitled DocumentBoas. Fiz uma package que faz o sincronismo entre o banco DB2 e Oracle... Em certos momentos do sincronismo recebo a mensagem de FETCH OUT OF SEQUENCE... executo a package novamente e volta a funcionar perfeitamente. Alguém sabe o que pode estar acontecendo? O que fazer para evitar o erro? Grato, Márcio Ricardo Alves da Silva Programador Pleno * [EMAIL PROTECTED] marcio.silva%40config.com.br Config Informática Ltda Av. Eng. Luis Carlos Berrini, 801 - 7º andar 04571-010 - Brooklin Novo - São Paulo - SP ( Fone (11) 5501-8300 ( Fax (11) 5501-8302 8 www.config.com.br [As partes desta mensagem que não continham texto foram removidas] O ENPO-BR 2008 (O maior evento de Profissionais de Oracle do Brasil!) será realizado no dia 29 de Março no auditório da FIAP - Faculdade de Administração e Informática Paulista em São Paulo. E tem total apoio deste Grupo. Veja mais em http://www.enpo-br.org/ -- 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/ -- O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: http://www.oraclebr.com.br/ -- Links do Yahoo! Grupos ___ Yahoo! Mail - Sempre a melhor opção para você! Experimente já e veja as novidades. http://br.yahoo.com/mailbeta/tudonovo/ [As partes desta mensagem que não continham texto foram removidas]
[oracle_br] Re: PL/SQL...
*** Muitíssimo *** provavelmente vc tem falha de lógica aí, decorrendo de má-formação da sua transação : por exemplo, num dado cursor vc faz um SELECT FOR UPDATE (que ** DEPENDE ** de locks para funcionar) e mete um COMMIT com esse cursor aberto, só pode dar galho... Ou vc pede SAVEPOINT prum ponto no tempo antes do cursor ser aberto, ou vc está usando uma variável implícita (criada num FOR LOOP, por exemplo) fora do loop/escope, algo do tipo Ou ainda, a tool de onde vc chama a Procedure está fazendo algo do tipo (com a nunca por demais xingada feature de AUTOCOMMIT do ODBC/JDBC, por aí... http://ora-01002.ora-code.com/ , http://www.oracle.com/technology/oramag/oracle/04-sep/o54asktom.html , http://www.orafaq.com/maillist/oracle-l/2000/10/05/1096.htm e http://www.freelists.org/archives/oracle-l/08-2004/msg01535.html são alguns exemplos de casos, mas a resposta é uma só, REVEJA e DEBUGUE a tua lógica, ponto. E é claro, veja lá se as features de Replicação built-in do Oracle, e/ou do DB2 e/ou outras opções (como dump em arquivo texto e leitura via loader/external tables) não te ajudam, sempre que vc puder substituir código seu pelo (normalmente) super-testado e interno código do banco, melhor... []s Chiappa --- Em oracle_br@yahoogrupos.com.br, Márcio Ricardo [EMAIL PROTECTED] escreveu Untitled DocumentBoas. Fiz uma package que faz o sincronismo entre o banco DB2 e Oracle... Em certos momentos do sincronismo recebo a mensagem de FETCH OUT OF SEQUENCE... executo a package novamente e volta a funcionar perfeitamente. Alguém sabe o que pode estar acontecendo? O que fazer para evitar o erro? Grato, Márcio Ricardo Alves da Silva Programador Pleno * [EMAIL PROTECTED] Config Informática Ltda Av. Eng. Luis Carlos Berrini, 801 - 7º andar 04571-010 - Brooklin Novo - São Paulo - SP ( Fone (11) 5501-8300 ( Fax (11) 5501-8302 8 www.config.com.br [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Re: PL/sql com xml
Ler direto do XML eu não fiz. Mas valei o XML usando o banco, inseri numa table e depois extrai os dados usando XSQL. Nada muito sobrenatural, fora as questões de performance, como mencionado pelo Chiappa. Se tiver interesse pvt-me que eu acho que até descolo uns .sql pra dar uma força! :D Grande abraço! Em 20/11/07, jlchiappa [EMAIL PROTECTED] escreveu: Bas'tarde. Intão,eu mesmo não tenho isso porque, graças ao bom Deus, ** nunca ** tive que me meter com essa meleca de XML (imho é um padrão não muito padronizado, é um tal de parser SAX pra lá, de DOM pra cá, de diferenças entre implementação XML da M$ e dos outros, argh..), além da performance pra grandes volumes (que é a minha área de atuação) não chegar aos pés dum arquivo-texto delimitado lido em paralelo (o ponto é que sendo uma linha = um registro fica faílimo paralelizar, já XML com os montes de linhas descrevendo campos fica beeem + difícil), mas que eu saiba ao invés de escrever um parser em PL/SQL, o que se faz é usar as rotinas XMLS prontas que o banco te disponibiliza, como discutido em http://asktom.oracle.com/pls/asktom/f?p=100:11:0P11_QUESTION_ID:2853285548502#72603584037166 , http://asktom.oracle.com/pls/asktom/f?p=100:11:0P11_QUESTION_ID:25380357469552#25388827174400 e em http://asktom.oracle.com/pls/asktom/f?p=100:11:0P11_QUESTION_ID:19631133652195#20158061372405 . Não esquecendo também que http://www.oracle.com/technology//tech/xml/index.html é a página-mãe dessa coisa, muuuito provavelmente vc deve acher nos códigos-exemplo de lá boas referências []s Chiappa --- Em oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br, [EMAIL PROTECTED] escreveu Boa tarde pessoal.. Alguem conhece algum material ou tem um exemplo de script pl/sql que le informações de um arquivo xml ? Grato. °v° /(S)\ Cristiano Carlos - Analista - TI ^ ^ SOFTWARE LIVRE Socialmente justo, economicamente viável e tecnologicamente sustentável -- E-mail classificado pelo Identificador de Spam Inteligente. Para alterar a categoria classificada, visite o Terra Mailhttp://mail.terra.com.br/cgi-bin/imail.cgi?+_u=dede2c_l=1,1195575091.481294.5741.tacamaca.hst.terra.com.br,20017,Des15,Des15 -- Esta mensagem foi verificada pelo E-mail Protegido Terrahttp://mail.terra.com.br/ . Scan engine: McAfee VirusScan / Atualizado em 19/11/2007 / Versão: 5.1.00 /5166 Proteja o seu e-mail Terra: http://mail.terra.com.br/ [As partes desta mensagem que não continham texto foram removidas]
RES: [oracle_br] Re: pl/sql - cursor
Luciana ao utilizar o comando BULK COLLECT vale a pena observar se há realmente a necessidade, pois esse comando prioriza o recurso da cpu para ele deixando os outros processos mais lentos até terminar o seu. []'s Alison --- Em oracle_br@yahoogrupos.com.br, Consulting 2001 Br [EMAIL PROTECTED] escreveu Luciana, Aproveitando a idéia do grande Marco, vc pode também utilizar o BULK COLLECT no comando select alimentando automaticamente o array select c1, c2, ... bulk collect into array from tabela, tabela... []s Ricardo --- Marco Fernandes (Desenvolvimento -TI) [EMAIL PROTECTED] wrote: Luciana, vc pode criar um array que recebe o cursor e depois no array vc trabalha tranquilo pra frente, pra trás, de revestrés, etc A declaração ficaria assim: TYPE SeuType IS TABLE OF SeuCursor%ROWTYPE INDEX BY BINARY_INTEGER; SeuArray SeuType; SeuRegistro SeuCursor%ROWTYPE; i number := 1; Para carregar o array vc pode fazer assim: FOR SeuRegistro in SeuCursor ( param1, param2, paramN ) LOOP SeuArray(i) := SeuRegistro; i := i + 1; END LOOP; Tendo seu array carregado pelo cursor vc pode navegar por ele usando o índice i. Espero ter ajudado. Abraço, Marco. -Mensagem original- De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] nome de Alison Enviada em: quinta-feira, 8 de novembro de 2007 21:31 Para: oracle_br@yahoogrupos.com.br Assunto: [oracle_br] Re: pl/sql - cursor Navegar pelo cursor para trás não dá, armazene o resultado do seu cursor em um type, aí vc pode manipular melhor as informações através do índice. []'s Alison --- Em [EMAIL PROTECTED] mailto:oracle_br%40yahoogrupos.com.br os.com.br, Luciana medellia@ escreveu Pessoal, Existe uma forma de navegar pelo cursor? Exemplo: estou no ultimo registro e quero voltar para o primeiro sem ter que fechar e abrir novamente o cursor. obrigada. Luciana [As partes desta mensagem que não continham texto foram removidas] __ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com
RES: [oracle_br] Re: pl/sql - cursor
Luciana, vc pode criar um array que recebe o cursor e depois no array vc trabalha tranquilo pra frente, pra trás, de revestrés, etc A declaração ficaria assim: TYPE SeuType IS TABLE OF SeuCursor%ROWTYPE INDEX BY BINARY_INTEGER; SeuArray SeuType; SeuRegistro SeuCursor%ROWTYPE; i number := 1; Para carregar o array vc pode fazer assim: FOR SeuRegistro in SeuCursor ( param1, param2, paramN ) LOOP SeuArray(i) := SeuRegistro; i := i + 1; END LOOP; Tendo seu array carregado pelo cursor vc pode navegar por ele usando o índice i. Espero ter ajudado. Abraço, Marco. -Mensagem original- De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] nome de Alison Enviada em: quinta-feira, 8 de novembro de 2007 21:31 Para: oracle_br@yahoogrupos.com.br Assunto: [oracle_br] Re: pl/sql - cursor Navegar pelo cursor para trás não dá, armazene o resultado do seu cursor em um type, aí vc pode manipular melhor as informações através do índice. []'s Alison --- Em [EMAIL PROTECTED] mailto:oracle_br%40yahoogrupos.com.br os.com.br, Luciana [EMAIL PROTECTED] escreveu Pessoal, Existe uma forma de navegar pelo cursor? Exemplo: estou no ultimo registro e quero voltar para o primeiro sem ter que fechar e abrir novamente o cursor. obrigada. Luciana [As partes desta mensagem que não continham texto foram removidas]
Re: RES: [oracle_br] Re: pl/sql - cursor
Luciana, Aproveitando a idéia do grande Marco, vc pode também utilizar o BULK COLLECT no comando select alimentando automaticamente o array select c1, c2, ... bulk collect into array from tabela, tabela... []s Ricardo --- Marco Fernandes (Desenvolvimento -TI) [EMAIL PROTECTED] wrote: Luciana, vc pode criar um array que recebe o cursor e depois no array vc trabalha tranquilo pra frente, pra trás, de revestrés, etc A declaração ficaria assim: TYPE SeuType IS TABLE OF SeuCursor%ROWTYPE INDEX BY BINARY_INTEGER; SeuArray SeuType; SeuRegistro SeuCursor%ROWTYPE; i number := 1; Para carregar o array vc pode fazer assim: FOR SeuRegistro in SeuCursor ( param1, param2, paramN ) LOOP SeuArray(i) := SeuRegistro; i := i + 1; END LOOP; Tendo seu array carregado pelo cursor vc pode navegar por ele usando o índice i. Espero ter ajudado. Abraço, Marco. -Mensagem original- De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] nome de Alison Enviada em: quinta-feira, 8 de novembro de 2007 21:31 Para: oracle_br@yahoogrupos.com.br Assunto: [oracle_br] Re: pl/sql - cursor Navegar pelo cursor para trás não dá, armazene o resultado do seu cursor em um type, aí vc pode manipular melhor as informações através do índice. []'s Alison --- Em [EMAIL PROTECTED] mailto:oracle_br%40yahoogrupos.com.br os.com.br, Luciana [EMAIL PROTECTED] escreveu Pessoal, Existe uma forma de navegar pelo cursor? Exemplo: estou no ultimo registro e quero voltar para o primeiro sem ter que fechar e abrir novamente o cursor. obrigada. Luciana [As partes desta mensagem que não continham texto foram removidas] __ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com
Re: [oracle_br] Re: pl/sql - cursor
Você poderia estar utilizando Bulk Collects para armazenar os valores do cursor dentro de um type. Em 08/11/07, Alison [EMAIL PROTECTED] escreveu: Navegar pelo cursor para trás não dá, armazene o resultado do seu cursor em um type, se for o caso, aí vc consegue manipular melhor as informações através do índice. []'s Alison --- Em oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br, Milton Bastos Henriquis Jr. [EMAIL PROTECTED] escreveu Que eu saiba, não dá pra voltar pra trás não... apenas pra frente!! On Nov 7, 2007 4:30 PM, Luciana [EMAIL PROTECTED] wrote: Pessoal, Existe uma forma de navegar pelo cursor? Exemplo: estou no ultimo registro e quero voltar para o primeiro sem ter que fechar e abrir novamente o cursor. obrigada. Luciana -- Diego Antonio Moura (15)33434634/97125532 [As partes desta mensagem que não continham texto foram removidas]
[oracle_br] Re: pl/sql - cursor
Navegar pelo cursor para trás não dá, armazene o resultado do seu cursor em um type, se for o caso, aí vc consegue manipular melhor as informações através do índice. []'s Alison --- Em oracle_br@yahoogrupos.com.br, Milton Bastos Henriquis Jr. [EMAIL PROTECTED] escreveu Que eu saiba, não dá pra voltar pra trás não... apenas pra frente!! On Nov 7, 2007 4:30 PM, Luciana [EMAIL PROTECTED] wrote: Pessoal, Existe uma forma de navegar pelo cursor? Exemplo: estou no ultimo registro e quero voltar para o primeiro sem ter que fechar e abrir novamente o cursor. obrigada. Luciana
[oracle_br] Re: pl/sql - cursor
Navegar pelo cursor para trás não dá, armazene o resultado do seu cursor em um type, aí vc pode manipular melhor as informações através do índice. []'s Alison --- Em oracle_br@yahoogrupos.com.br, Luciana [EMAIL PROTECTED] escreveu Pessoal, Existe uma forma de navegar pelo cursor? Exemplo: estou no ultimo registro e quero voltar para o primeiro sem ter que fechar e abrir novamente o cursor. obrigada. Luciana
[oracle_br] Re: PL/SQL
Sim, sem dúvida vc pode ter vários valores, e a sintaxe é SELECT col2,... coln INTO var1, var2, ..., varn, mas aí vc NECESSARIAMENTE teria que criar as vars, além do que (como vc sabe) select into só funciona se o SELECT retornar NO MÀXIMO uma única linha... Eu sempre tento codificar o ** mínimo ** possível, então sem dúvida se viável eu usaria CURSOR e ainda seria cursor implícito num for, que já me cria AUTOMAGICAMENTE uma variável rowtype que poderá conter todas as colunas lidas. Seria tipo : BEGIN for r_proc in (SELECT pj.SIG_UF, pj.COD_LOCALI_ESTADU, pj.NUM_ORGAO_ESTADU FROM processo_orig_judicial pj WHERE pj.NUM_REGIST_JUDICI = v_num_regist_judici_aux ) loop -- posso manipular os valores como quiser... r_proc.NUM_ORGAO_ESTADU := 10; -- posso fazer IFs if r_proc.SIG_UF = 'SP' then . ok ? Isso está totalmente explicado no manual de programadores PL/SQL, recomendo um bom estudo dele... []s Chiappa --- Em oracle_br@yahoogrupos.com.br, Eduardo de Paula [EMAIL PROTECTED] escreveu como q eu faço pra colocar INTO em várias variaveis, ou é melhor criar um cursor? SELECT pj.SIG_UF INTO v_sig_uf, pj.COD_LOCALI_ESTADU INTO v_cod_locali_estadu, pj.NUM_ORGAO_ESTADU INTO v_num_orgao_estadu FROM processo_orig_judicial pj WHERE pj.NUM_REGIST_JUDICI = v_num_regist_judici_aux; Obrigado. Eduardo
[oracle_br] Re: [PL-SQL] Listar Arquivos de um diretório
Vc pode sim, mas não com comandos nativos do PL/SQL, já que o PL/SQL ** não tem ** comandos pra isso : vc vai ter que escrever uma rotina externa e a chamar a partir do PL/SQL, as opções seriam : a) se esse bloco Pl/SQL reside num stored PL/SQL de banco (ou seja, procedure, function, etc) vc poder usar pipes enviando msg pra um programa daemon, ou externalprocedures, ou Java, dependendo da versão do banco e do que vc tem instalado b) se esse bloco PL/SQL não reside no banco, e sim numa tool cliente que seja capaz de chamar PL/SQLs (como sqlplus, Forms, etc) a maioria das tools clientes tem comandos para isso, vc usaria o comando específico da sua tool == O modo mais fácil de se obter isso na rotina externa, seja qual for a técnica usada, imho seria executando-se um DIR pathdodiretorio\*.* SAIDA.TXT , aí no PL/SQL vc simplesmente lê o arquivo SAIDA.TXT. == Claro também que estou falando aqui de ambiente client/server, se for ambiente WEB e na verdade vc está usando PL/SQL na web e vc quer so servidor web alcançar uma máquina-cliente aí muda totalmente a história, e complica bem... []s Chiappa --- Em oracle_br@yahoogrupos.com.br, Aldo Luís [EMAIL PROTECTED] escreveu Saudações, Alguém saberia me dizer se em um bloco pl-sql é possível listar todos os arquivos de um determinado diretório? Eu precisava de alguma forma saber quais os arquivos contidos em um determinado diretório. Alguém já precisou fazer isto? Sabe de algum caminho? Alguma dica? Grato, Aldo Luís [As partes desta mensagem que não continham texto foram removidas] -- Atenção! As mensagens deste grupo são de acesso público e de inteira responsabilidade de seus remetentes. Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ --__ Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine __ O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o link do mesmo para evitar trafego(pedidos) desnecessário. Yahoo! Grupos, um serviço oferecido por: PUBLICIDADE Links do Yahoo! Grupos Para visitar o site do seu grupo na web, acesse:http://br.groups.yahoo.com/group/oracle_br/ Para sair deste grupo, envie um e-mail para:[EMAIL PROTECTED] O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do Yahoo!.