Re: [oracle_br] Re: Inicio da carreira DBA

2013-02-11 Por tôpico carlos silva
Obrigado pelas dicas Chiappa!!



 


De: J. Laurindo Chiappa jlchia...@yahoo.com.br
Para: oracle_br@yahoogrupos.com.br 
Enviadas: Sábado, 9 de Fevereiro de 2013 15:48
Assunto: [oracle_br] Re: Inicio da carreira DBA


  
Ah, claro : hoje em dia muitas das melhores vagas disponíveis ainda estão em 
Consultorias : assim, além de se cadastrar não deixe de googlar por 
CONSULTORIAS ORACLE , de entrar na páginas da Oracle que listam Parceiros, e 
(principalmente) de montar uma rede de contatos no Linkedin - todas essas são 
fontes Excelentes de locais aonde vc mandar seu CV ou se oferecer/procurar 
vagas...

[]s

Chiappa

--- Em oracle_br@yahoogrupos.com.br, J. Laurindo Chiappa escreveu

 Colega, realmente mesmo para DBA Júnior o pessoal realmente exige alguma 
 experiência e isso é até compreensível : não só hoje em dia a verba (e o 
 Tempo) para Treinamento nas empresas estão cada vez mais minguados (então a 
 idéia é alguém que já possa de imediato produzir alguma coisinha, mesmo em 
 nível Jr.), mas também hoje em dia (dada a crescente exigência de 
 produtividade) em todas as Equipes (TI não é diferente neste sentido) mesmo 
 um DBA Júnior acaba tendo acesso e fazendo algumas tarefas simples em 
 ambientes produtivos (dificilmente hoje em dia há DBA Sêniores suficientes na 
 organização para fazerem pessoalmente todas as tarefas em prod), e aí em tese 
 alguém que já carrega alguma experiência mesmo que pequena estaria menos 
 sujeito a fazer besteira em prod...
 Sendo assim, realmente vai ser bastante difícil vc entra diretamente como DBA 
 mesmo que Júnior : até há chance de vc conseguir como DBA Trainee ou 
 Estagiário mas eu diria para vc considerar entrar na área de banco de dados 
 como secundário - por exemplo : como programador e/ou Analista que 
 desenvolvem em coma de RDBMS Oracle, ou como sysadmin de um ambiente 
 fortemente utilizador de RDBMSs Oracle, coisas assim...
 
 Finalmente, sobre auto-promoção : o Grupo aqui é extremamente Focado em 
 assuntos técnicos e em discussão geral do Mercado e dicas de carreira, então 
 via de regra não é Efetivo (nem exatamente Aceito livremente) postar vagas 
 e/ou requerer vagas, assim eu Sugiro que vc utilize os sites 
 especializados... Alguns dos nacionais mais conhecidos afora o APINFO que vc 
 já conhece e usa (alguns só mostram anúncios, outros permitem que vc cadastre 
 CV) :
 
 http://www.efetividade.net/2008/11/03/emprego-um-curriculo-vencedor-esta-ao-seu-alcance/
  (veja os links da página)
 http://noticias.uol.com.br/empregos/
 http://www.trabalhando.com.br/
 http://www.empregosti.com/
 http://empregos.trovitbrasil.com.br/
 http://br.jobrapido.com/
 http://www.tihunter.com/
 http://www.simplyhired.com.br/
 http://www.careerjet.com.br/
 http://novo.vagas.com.br/
 http://www.trovit.com.br/
 http://www.ceviu.com.br/
 http://www.buscoempregos.com/
 http://www.netcarreiras.com.br/
 http://www.buscojobs.com.br/
 http://www.emprega.info/
 http://www.alertadeemprego.com.br/
 http://www.boadica.com.br/
 http://www.curriculum.com.br/
 http://empregocerto.uol.com.br/
 http://www.profissionaisti.com.br/
 http://www.zap.com.br/empregos
 http://www.manager.com.br/
 http://www.emprega.info/
 http://www.netcarreiras.com.br/
 
 E outra dica : hoje em dia o site-padrão para vc fazer contatos/networking 
 profissional é ainda o Linkedin , em http://www.linkedin.com/ : deixe 
 facebook, msn/skype, pinterest, etc, etc, para outros fins, há muito ruído 
 nesses... 
 
 []s
 
 Chiappa
 
 --- Em oracle_br@yahoogrupos.com.br, carlos silva escreveu
 
  Possuo cadastro na Apinfo e inclusive todas as vagas que consegui foi 
  através do site, continuo recebendo propostas mais estão exigindo muita 
  experiência para um iniciante. Mais de qualquer forma obrigado pela 
  atenção!!
      
  
  
  De: Fabricio Pedroso Jorge 
  Para: oracle_br@yahoogrupos.com.br 
  Enviadas: Sábado, 9 de Fevereiro de 2013 14:25
  Assunto: Re: [oracle_br] Inicio da carreira DBA
  
  Cadastra teu curriculo na APINFO... já recebi algumas propostas cujos
  entrevistadores me disseram terem encontrado meu curriculo por lá. Acho que
  vale a pena. e em SP, sempre tem vaga pra DBA.
  
  Em 9 de fevereiro de 2013 14:17, carlos silva
  escreveu:
  
   **
  
  
   Boa tarde Fabricio,
  
   Moro no Grande ABC, na cidade de São Paulo. No momento busco uma
   oportunidade para atuar em São Paulo.
  
  
  
   Att,
   Carlos
  
   
   De: Fabricio Pedroso Jorge fpjbito@
   Para: oracle_br@yahoogrupos.com.br
   Enviadas: Sábado, 9 de Fevereiro de 2013 14:07
   Assunto: Re: [oracle_br] Inicio da carreira DBA
  
   Em qual cidade você reside? E você teria possibilidade de mudar de cidade?
  
   Em 9 de fevereiro de 2013 12:53, carlos silva
   carlos_nsilva@escreveu:
  
**
   
   
Boa tarde Pessoal,
   
Estou buscando uma oportunidade para trabalhar na área de banco de dados
Oracle como Júnior. 

[oracle_br] FW: Como faço para salvar um .XML e uma pasta local?

2013-02-11 Por tôpico Carlos Silva










Ola, pessoa!

   Fiz um processo de criar um xml, e inserir em uma tabela, como faço para 
extrair esse dado da tabela e jogar em uma pasta local do windows como 
.xml(arquivo).  Se alguém tiver algum exemplo ajudaria bastante
 
Abraços,

  

[As partes desta mensagem que não continham texto foram removidas]



[oracle_br] Formspider

2013-02-11 Por tôpico Ricardo Monteiro
Oi pessoal.

Alguém está usando ou fazendo testes com o formspider?

Estou desenvolvendo uma aplicação aqui e gostaria de saber a opinião de quem 
está nas mesmas condições


Ricardo


[As partes desta mensagem que não continham texto foram removidas]



RE: [oracle_br] Duvida

2013-02-11 Por tôpico gabriel Tomaz


Alguem pode me ajudar na resolução desse exercício segue como esta ficando:
estou usando sql*plus
DECLAREL_VFRASE VARCHAR2(240) := 'Digite uma Frase.';L_VFRASE_TEST 
VARCHAR2(240);L_VFRASE_NOVO VARCHAR2(240);L_VQBRLINHA VARCAHR2(240);BEGINFOR 
L_VFRASE  100 LOOPIF DBMS_OUTPUT.put_line('Frase é maior que 100 
caracteres');L_VFRASE := INSTR( L_VFRASE,' ');L_VFRASE_TEST := L_VFRASE + 
L_VFRASE_TEST;L_VFRASE_TEST := 0;L_VQBRLINHA :=END;
O exercício e o seguinte:Escreva um programa em que dado uma frase e a 
quantidade de colunas que podem ser exibidas na tela, faça a quebra de linhas 
sem quebrar as palavras.
Por exemplo, se passarmos a frase Um pequeno jabuti xereta viu dez cegonhas 
felizes. e pedirmos para ela ser exibida em 20 colunas, teremos como 
resposta:Um pequeno jabutixereta viu dezcegonhas felizes. 
Grato 
To: oracle_br@yahoogrupos.com.br
From: gabriel_tom...@hotmail.com
Date: Sun, 10 Feb 2013 15:51:36 -0300
Subject: Re: [oracle_br] Duvida
















 



  



  
  
  Gostaria de fazer usando o sql plus.



-Original Message-



From: Milton Bastos Henriquis Jr.

Sent: 10 Feb 2013 17:53:04 GMT

To: oracle_br@yahoogrupos.com.br

Subject: Re: [oracle_br] Duvida



Gabriel, explique ONDE você quer fazer isso.



Vc está estudando o que? SQL?

Vc quer fazer isso aí no SQL*Plus?



2013/2/9 gabriel Tomaz gabriel_tom...@hotmail.com



 **







 Caros , gostaria de saber se podem me ajudar estou iniciando com Oracle e

 estou resolvendo alguns exercícios para aprimorar meus conhecimentos. Estou

 com o seguinte dificuldade:

 Dado uma frase e a quantidade de colunas que podem ser exibidas na tela,

 faça a quebra de linhas sem quebrar as palavras.

 Gostaria de saber se existe algum comando para fazer a quebra de linha e

 como ficaria meu bloco?

 desde já agradeço.



 [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]





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

* 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:
oracle_br-unsubscr...@yahoogrupos.com.br

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html




[oracle_br] Re: Duvida

2013-02-11 Por tôpico J. Laurindo Chiappa
  Bom, não vou me meter a codificar na prática (não serei desmancha-prazeres 
tirando a sua alegria) mas : Imaginando que o limite da linha é de 100 
caracteres, E QUE o sql*plus já foi configurado com SET LINESIZE 100, temos que 
:
  
  - se a linha é de 100 caracteres e a qtdade de colunas está definida na 
variável V_QTD_COL (digamos), aí 100 / V_QTD_COL te dá o tamanho de cada coluna 
em caracteres , são pedaços desse tamanho da string original que vc vai ter que 
extrair
  - o principal comando para vc extrair uma substring a partir de uma string 
maior é o SUBSTR, consulte a Documentação para vc aprender o uso dele
  - não há um comando para quebrar linhas no PL/SQL, nem na package 
DBMS_OUTPUT (que é o que vc está usando) : o que vc vai ter que fazer é OU 
inserir na string a ser exibida o(s) caracteres de controle que sinalizam end 
of line (se o seu sistema operacional for Windows eles são CHR(13) || CHR(10) , 
enquanto no Linux/Unix é só o CHR(13)
- eu entendo que a idéia é que, se o fim da coluna não cai num espaço em 
branco, vc terá que finalizar a substring do SUBSTR no primeiro espaço em 
branco à esquerda da posição de fim da coluna e insreir uma quebra de linha 
após o espaço, fazendo o restante cair na linha de baixo quando exibido : 
provavelmente para isso vc vai precisar do INSTR, que procura a ocorrência de 
um caracter 

  A minha dica portanto é : Dá uma estudada nesses comandos que citei e faz um 
esforço inicial, tenta escrever uma versão dessa lógica : não conseguindo, a 
gente pode palpitar/tentar mostrar onde vc falhou, aí vc escreve uma segunda 
versão, e aí vai até vc conseguir - é Assim que se aprende, por tentativa e 
erro ...
  
   []s
   
 Chiappa

--- Em oracle_br@yahoogrupos.com.br, gabriel Tomaz  escreveu

 
 
 Alguem pode me ajudar na resolução desse exercício segue como esta ficando:
 estou usando sql*plus
 DECLAREL_VFRASE VARCHAR2(240) := 'Digite uma Frase.';L_VFRASE_TEST 
 VARCHAR2(240);L_VFRASE_NOVO VARCHAR2(240);L_VQBRLINHA VARCAHR2(240);BEGINFOR 
 L_VFRASE  100 LOOPIF DBMS_OUTPUT.put_line('Frase é maior que 100 
 caracteres');L_VFRASE := INSTR( L_VFRASE,' ');L_VFRASE_TEST := L_VFRASE + 
 L_VFRASE_TEST;L_VFRASE_TEST := 0;L_VQBRLINHA :=END;
 O exercício e o seguinte:Escreva um programa em que dado uma frase e a 
 quantidade de colunas que podem ser exibidas na tela, faça a quebra de linhas 
 sem quebrar as palavras.
 Por exemplo, se passarmos a frase Um pequeno jabuti xereta viu dez cegonhas 
 felizes. e pedirmos para ela ser exibida em 20 colunas, teremos como 
 resposta:Um pequeno jabutixereta viu dezcegonhas felizes. 
 Grato 
 To: oracle_br@yahoogrupos.com.br
 From: gabriel_tomazc@...
 Date: Sun, 10 Feb 2013 15:51:36 -0300
 Subject: Re: [oracle_br] Duvida
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  
 
 
 
   
 
 
 
   
   
   Gostaria de fazer usando o sql plus.
 
 
 
 -Original Message-
 
 
 
 From: Milton Bastos Henriquis Jr.
 
 Sent: 10 Feb 2013 17:53:04 GMT
 
 To: oracle_br@yahoogrupos.com.br
 
 Subject: Re: [oracle_br] Duvida
 
 
 
 Gabriel, explique ONDE você quer fazer isso.
 
 
 
 Vc está estudando o que? SQL?
 
 Vc quer fazer isso aí no SQL*Plus?
 
 
 
 2013/2/9 gabriel Tomaz gabriel_tomazc@...
 
 
 
  **
 
 
 
 
 
 
 
  Caros , gostaria de saber se podem me ajudar estou iniciando com Oracle e
 
  estou resolvendo alguns exercícios para aprimorar meus conhecimentos. Estou
 
  com o seguinte dificuldade:
 
  Dado uma frase e a quantidade de colunas que podem ser exibidas na tela,
 
  faça a quebra de linhas sem quebrar as palavras.
 
  Gostaria de saber se existe algum comando para fazer a quebra de linha e
 
  como ficaria meu bloco?
 
  desde já agradeço.
 
 
 
  [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] Re: FW: Como faço para salvar um .XML e uma pasta local?

2013-02-11 Por tôpico J. Laurindo Chiappa
  Explica melhor pra gente : na tal tabela vc já tem o documento XML completo e 
formatado, é isso ? Ou ainda prtecisa de algum parse, alguma complementação ?
 Outra coisa : ele está gravado num único registro (numa coluna CLOB ou XML, 
talvez) , ou numa coluna VARCHAR com dados em vários registros ??
   Mas de qquer maneira o negócio é : SE o documento XML está completo, ele é 
nada mais que um TEXTO, e TEXTO OU vc grava em disco com o UTL_FILE no servidor 
Oracle (e depois transfere, ou usa mapeamento/NFS), OU pela aplicação vc usa os 
comandos que existirem para gravar, okdoc ? 
 Já SE o documento está incompleto e/ou necessita de algum 
parse/formatação/adição, aí vc nos diga o que falta que a gente pode tentar 
palpitar/demonstrar...
   
[]s

  Chiappa

--- Em oracle_br@yahoogrupos.com.br, Carlos Silva  escreveu

 
 
 
 
 
 
 
 
 
 
 Ola, pessoa!
 
Fiz um processo de criar um xml, e inserir em uma tabela, como faço 
 para extrair esse dado da tabela e jogar em uma pasta local do windows como 
 .xml(arquivo).  Se alguém tiver algum exemplo ajudaria bastante
  
 Abraços,
   
   
 
 [As partes desta mensagem que não continham texto foram removidas]





RE: [oracle_br] Re: Duvida

2013-02-11 Por tôpico gabriel Tomaz


Estou dando uma lida aqui. Alguém teria algum exemplo dessa função SUBTR ?No 
exemplo que digitei abaixo esta correto meu raciocínio?  
To: oracle_br@yahoogrupos.com.br
From: jlchia...@yahoo.com.br
Date: Mon, 11 Feb 2013 14:47:54 +
Subject: [oracle_br] Re: Duvida
















 



  



  
  
Bom, não vou me meter a codificar na prática (não serei 
desmancha-prazeres tirando a sua alegria) mas : Imaginando que o limite da 
linha é de 100 caracteres, E QUE o sql*plus já foi configurado com SET LINESIZE 
100, temos que :

  

  - se a linha é de 100 caracteres e a qtdade de colunas está definida na 
variável V_QTD_COL (digamos), aí 100 / V_QTD_COL te dá o tamanho de cada coluna 
em caracteres , são pedaços desse tamanho da string original que vc vai ter que 
extrair

  - o principal comando para vc extrair uma substring a partir de uma string 
maior é o SUBSTR, consulte a Documentação para vc aprender o uso dele

  - não há um comando para quebrar linhas no PL/SQL, nem na package 
DBMS_OUTPUT (que é o que vc está usando) : o que vc vai ter que fazer é OU 
inserir na string a ser exibida o(s) caracteres de controle que sinalizam end 
of line (se o seu sistema operacional for Windows eles são CHR(13) || CHR(10) , 
enquanto no Linux/Unix é só o CHR(13)

- eu entendo que a idéia é que, se o fim da coluna não cai num espaço em 
branco, vc terá que finalizar a substring do SUBSTR no primeiro espaço em 
branco à esquerda da posição de fim da coluna e insreir uma quebra de linha 
após o espaço, fazendo o restante cair na linha de baixo quando exibido : 
provavelmente para isso vc vai precisar do INSTR, que procura a ocorrência de 
um caracter 



A minha dica portanto é : Dá uma estudada nesses comandos que citei e faz um 
esforço inicial, tenta escrever uma versão dessa lógica : não conseguindo, a 
gente pode palpitar/tentar mostrar onde vc falhou, aí vc escreve uma segunda 
versão, e aí vai até vc conseguir - é Assim que se aprende, por tentativa e 
erro ...

  

   []s

   

 Chiappa



--- Em oracle_br@yahoogrupos.com.br, gabriel Tomaz  escreveu



 

 

 Alguem pode me ajudar na resolução desse exercício segue como esta ficando:

 estou usando sql*plus

 DECLAREL_VFRASE VARCHAR2(240) := 'Digite uma Frase.';L_VFRASE_TEST 
 VARCHAR2(240);L_VFRASE_NOVO VARCHAR2(240);L_VQBRLINHA VARCAHR2(240);BEGINFOR 
 L_VFRASE  100 LOOPIF DBMS_OUTPUT.put_line('Frase é maior que 100 
 caracteres');L_VFRASE := INSTR( L_VFRASE,' ');L_VFRASE_TEST := L_VFRASE + 
 L_VFRASE_TEST;L_VFRASE_TEST := 0;L_VQBRLINHA :=END;

 O exercício e o seguinte:Escreva um programa em que dado uma frase e a 
 quantidade de colunas que podem ser exibidas na tela, faça a quebra de linhas 
 sem quebrar as palavras.

 Por exemplo, se passarmos a frase Um pequeno jabuti xereta viu dez cegonhas 
 felizes. e pedirmos para ela ser exibida em 20 colunas, teremos como 
 resposta:Um pequeno jabutixereta viu dezcegonhas felizes. 

 Grato 

 To: oracle_br@yahoogrupos.com.br

 From: gabriel_tomazc@...

 Date: Sun, 10 Feb 2013 15:51:36 -0300

 Subject: Re: [oracle_br] Duvida

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  

 

 

 

   

 

 

 

   

   

   Gostaria de fazer usando o sql plus.

 

 

 

 -Original Message-

 

 

 

 From: Milton Bastos Henriquis Jr.

 

 Sent: 10 Feb 2013 17:53:04 GMT

 

 To: oracle_br@yahoogrupos.com.br

 

 Subject: Re: [oracle_br] Duvida

 

 

 

 Gabriel, explique ONDE você quer fazer isso.

 

 

 

 Vc está estudando o que? SQL?

 

 Vc quer fazer isso aí no SQL*Plus?

 

 

 

 2013/2/9 gabriel Tomaz gabriel_tomazc@...

 

 

 

  **

 

 

 

 

 

 

 

  Caros , gostaria de saber se podem me ajudar estou iniciando com Oracle e

 

  estou resolvendo alguns exercícios para aprimorar meus conhecimentos. Estou

 

  com o seguinte dificuldade:

 

  Dado uma frase e a quantidade de colunas que podem ser exibidas na tela,

 

  faça a quebra de linhas sem quebrar as palavras.

 

  Gostaria de saber se existe algum comando para fazer a quebra de linha e

 

  como ficaria meu bloco?

 

  desde já agradeço.

 

 

 

  [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

 

 

 

 

 

 

  

 

 

 

 

 


Re: [oracle_br] Re: Duvida

2013-02-11 Por tôpico Alisson Luz
Select subtr('teste',0,1) from dual;

Nesse caso o resultado seria a letra 't'

Enviado via iPhone Alisson Luz

Em 11/02/2013, às 13:56, gabriel Tomaz gabriel_tom...@hotmail.com escreveu:

 
 
 Estou dando uma lida aqui. Alguém teria algum exemplo dessa função SUBTR ?No 
 exemplo que digitei abaixo esta correto meu raciocínio?  
 To: oracle_br@yahoogrupos.com.br
 From: jlchia...@yahoo.com.br
 Date: Mon, 11 Feb 2013 14:47:54 +
 Subject: [oracle_br] Re: Duvida
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Bom, não vou me meter a codificar na prática (não serei 
 desmancha-prazeres tirando a sua alegria) mas : Imaginando que o limite da 
 linha é de 100 caracteres, E QUE o sql*plus já foi configurado com SET 
 LINESIZE 100, temos que :
 
 
 
  - se a linha é de 100 caracteres e a qtdade de colunas está definida na 
 variável V_QTD_COL (digamos), aí 100 / V_QTD_COL te dá o tamanho de cada 
 coluna em caracteres , são pedaços desse tamanho da string original que vc 
 vai ter que extrair
 
  - o principal comando para vc extrair uma substring a partir de uma string 
 maior é o SUBSTR, consulte a Documentação para vc aprender o uso dele
 
  - não há um comando para quebrar linhas no PL/SQL, nem na package 
 DBMS_OUTPUT (que é o que vc está usando) : o que vc vai ter que fazer é OU 
 inserir na string a ser exibida o(s) caracteres de controle que sinalizam end 
 of line (se o seu sistema operacional for Windows eles são CHR(13) || CHR(10) 
 , enquanto no Linux/Unix é só o CHR(13)
 
 - eu entendo que a idéia é que, se o fim da coluna não cai num espaço em 
 branco, vc terá que finalizar a substring do SUBSTR no primeiro espaço em 
 branco à esquerda da posição de fim da coluna e insreir uma quebra de linha 
 após o espaço, fazendo o restante cair na linha de baixo quando exibido : 
 provavelmente para isso vc vai precisar do INSTR, que procura a ocorrência de 
 um caracter 
 
 
 
 A minha dica portanto é : Dá uma estudada nesses comandos que citei e faz um 
 esforço inicial, tenta escrever uma versão dessa lógica : não conseguindo, a 
 gente pode palpitar/tentar mostrar onde vc falhou, aí vc escreve uma segunda 
 versão, e aí vai até vc conseguir - é Assim que se aprende, por tentativa e 
 erro ...
 
 
 
   []s
 
 
 
 Chiappa
 
 
 
 --- Em oracle_br@yahoogrupos.com.br, gabriel Tomaz  escreveu
 
 
 
 
 Alguem pode me ajudar na resolução desse exercício segue como esta ficando:
 
 estou usando sql*plus
 
 DECLAREL_VFRASE VARCHAR2(240) := 'Digite uma Frase.';L_VFRASE_TEST 
 VARCHAR2(240);L_VFRASE_NOVO VARCHAR2(240);L_VQBRLINHA VARCAHR2(240);BEGINFOR 
 L_VFRASE  100 LOOPIF DBMS_OUTPUT.put_line('Frase é maior que 100 
 caracteres');L_VFRASE := INSTR( L_VFRASE,' ');L_VFRASE_TEST := L_VFRASE + 
 L_VFRASE_TEST;L_VFRASE_TEST := 0;L_VQBRLINHA :=END;
 
 O exercício e o seguinte:Escreva um programa em que dado uma frase e a 
 quantidade de colunas que podem ser exibidas na tela, faça a quebra de 
 linhas sem quebrar as palavras.
 
 Por exemplo, se passarmos a frase Um pequeno jabuti xereta viu dez cegonhas 
 felizes. e pedirmos para ela ser exibida em 20 colunas, teremos como 
 resposta:Um pequeno jabutixereta viu dezcegonhas felizes. 
 
 Grato
 
 To: oracle_br@yahoogrupos.com.br
 
 From: gabriel_tomazc@...
 
 Date: Sun, 10 Feb 2013 15:51:36 -0300
 
 Subject: Re: [oracle_br] Duvida
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  Gostaria de fazer usando o sql plus.
 
 
 
 
 -Original Message-
 
 
 
 
 From: Milton Bastos Henriquis Jr.
 
 
 Sent: 10 Feb 2013 17:53:04 GMT
 
 
 To: oracle_br@yahoogrupos.com.br
 
 
 Subject: Re: [oracle_br] Duvida
 
 
 
 
 Gabriel, explique ONDE você quer fazer isso.
 
 
 
 
 Vc está estudando o que? SQL?
 
 
 Vc quer fazer isso aí no SQL*Plus?
 
 
 
 
 2013/2/9 gabriel Tomaz gabriel_tomazc@...
 
 
 
 
 **
 
 
 
 
 
 
 
 
 Caros , gostaria de saber se podem me ajudar estou iniciando com Oracle e
 
 
 estou resolvendo alguns exercícios para aprimorar meus conhecimentos. Estou
 
 
 com o seguinte dificuldade:
 
 
 Dado uma frase e a quantidade de colunas que podem ser exibidas na tela,
 
 
 faça a quebra de linhas sem quebrar as palavras.
 
 
 Gostaria de saber se existe algum comando para fazer a quebra de linha e
 
 
 como ficaria meu bloco?
 
 
 desde já agradeço.
 
 
 
 
 [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: 
 

[oracle_br] Re: Duvida

2013-02-11 Por tôpico J. Laurindo Chiappa
  Bem, a Documentação que eu citei são os manuais Oracle : todos eles estão 
online no site http://tahiti.oracle.com e há um DEDICADO à linguagem SQL e seus 
comandos/funções nativas, lá vc acha tanto a sintaxe quanto uns três ou quatro 
exemplos de cada coisa... Vc não diz a versão mas supondo 11gR2 
http://docs.oracle.com/cd/E11882_01/server.112/e26088/functions181.htm#SQLRF06114
 é a ref
   Sobre o exemplo que vc digitou, se é este trecho :
   

DECLAREL_VFRASE VARCHAR2(240) := 'Digite uma Frase.';L_VFRASE_TEST
VARCHAR2(240);L_VFRASE_NOVO VARCHAR2(240);L_VQBRLINHA VARCAHR2(240);BEGINFOR
L_VFRASE  100 LOOPIF DBMS_OUTPUT.put_line('Frase é maior que 100
caracteres');L_VFRASE := INSTR( L_VFRASE,' ');L_VFRASE_TEST := L_VFRASE +
L_VFRASE_TEST;L_VFRASE_TEST := 0;L_VQBRLINHA :=END;


  Aonde vc vê SUBSTR nele ? Eu não vejo...
   Anyway, segue ainda outro exemplo exemplificando a utilização do SUBSTR , 
primeiro extraindo uma substring a partir da posição 1 até aonde achar um 
espaço em branco, e depois extraindo uma substring iniciando não em 1, mas 
aonde acahr um espaço em branco, E além disso essa última substring extraída eu 
coloca na variável v_frase , na prática Sobrepondo e perdendo o que eu tinha 
antes : 
   
SQL set serveroutput on size unlimited;
SQL DECLARE
  2 v_frase varchar2(200) := 'Frase de teste para Exemplo!';
  3  BEGIN
  4 for i in 1..4 loop
  5dbms_output.put_line(substr(v_frase, 1, instr(v_frase, ' ')));
  6v_frase := substr(v_frase, instr(v_frase, ' ')+1);
  7 end loop;
  8 dbms_output.put_line(v_frase);
  9  END;
 10  /
Frase
de
teste
para
Exemplo!

Procedimento PL/SQL concluÝdo com sucesso.

  Mas repito, para vc poder entender esse exemplo, plz dá uma estudada no 
manual citado, faça antes os exemplinhos menores que estão no manual, escreva 
um exemplo seu simples variando com um FOR algum dos argumentos do SUBSTR.. É 
assim que se aprende...
  
   []s
   
 Chiappa
 

--- Em oracle_br@yahoogrupos.com.br, gabriel Tomaz  escreveu

 
 
 Estou dando uma lida aqui. Alguém teria algum exemplo dessa função SUBTR ?No 
 exemplo que digitei abaixo esta correto meu raciocínio?  
 To: oracle_br@yahoogrupos.com.br
 From: jlchiappa@...
 Date: Mon, 11 Feb 2013 14:47:54 +
 Subject: [oracle_br] Re: Duvida
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  
 
 
 
   
 
 
 
   
   
 Bom, não vou me meter a codificar na prática (não serei 
 desmancha-prazeres tirando a sua alegria) mas : Imaginando que o limite da 
 linha é de 100 caracteres, E QUE o sql*plus já foi configurado com SET 
 LINESIZE 100, temos que :
 
   
 
   - se a linha é de 100 caracteres e a qtdade de colunas está definida na 
 variável V_QTD_COL (digamos), aí 100 / V_QTD_COL te dá o tamanho de cada 
 coluna em caracteres , são pedaços desse tamanho da string original que vc 
 vai ter que extrair
 
   - o principal comando para vc extrair uma substring a partir de uma string 
 maior é o SUBSTR, consulte a Documentação para vc aprender o uso dele
 
   - não há um comando para quebrar linhas no PL/SQL, nem na package 
 DBMS_OUTPUT (que é o que vc está usando) : o que vc vai ter que fazer é OU 
 inserir na string a ser exibida o(s) caracteres de controle que sinalizam end 
 of line (se o seu sistema operacional for Windows eles são CHR(13) || CHR(10) 
 , enquanto no Linux/Unix é só o CHR(13)
 
 - eu entendo que a idéia é que, se o fim da coluna não cai num espaço em 
 branco, vc terá que finalizar a substring do SUBSTR no primeiro espaço em 
 branco à esquerda da posição de fim da coluna e insreir uma quebra de linha 
 após o espaço, fazendo o restante cair na linha de baixo quando exibido : 
 provavelmente para isso vc vai precisar do INSTR, que procura a ocorrência de 
 um caracter 
 
 
 
 A minha dica portanto é : Dá uma estudada nesses comandos que citei e faz um 
 esforço inicial, tenta escrever uma versão dessa lógica : não conseguindo, a 
 gente pode palpitar/tentar mostrar onde vc falhou, aí vc escreve uma segunda 
 versão, e aí vai até vc conseguir - é Assim que se aprende, por tentativa e 
 erro ...
 
   
 
[]s
 

 
  Chiappa
 
 
 
 --- Em oracle_br@yahoogrupos.com.br, gabriel Tomaz  escreveu
 
 
 
  
 
  
 
  Alguem pode me ajudar na resolução desse exercício segue como esta ficando:
 
  estou usando sql*plus
 
  DECLAREL_VFRASE VARCHAR2(240) := 'Digite uma Frase.';L_VFRASE_TEST 
  VARCHAR2(240);L_VFRASE_NOVO VARCHAR2(240);L_VQBRLINHA 
  VARCAHR2(240);BEGINFOR L_VFRASE  100 LOOPIF DBMS_OUTPUT.put_line('Frase é 
  maior que 100 caracteres');L_VFRASE := INSTR( L_VFRASE,' ');L_VFRASE_TEST 
  := L_VFRASE + L_VFRASE_TEST;L_VFRASE_TEST := 0;L_VQBRLINHA :=END;
 
  O exercício e o seguinte:Escreva um programa em que dado uma frase e a 
  quantidade de colunas que podem ser exibidas na tela, faça a quebra de 
  linhas sem quebrar as palavras.
 
  Por exemplo, se passarmos a frase Um pequeno jabuti xereta viu dez 
  cegonhas felizes. e pedirmos para ela ser exibida 

RE: [oracle_br] Re: Duvida

2013-02-11 Por tôpico gabriel Tomaz

Com base no uso da SUBSTR alguém poderia validar ou aperfeiçoar o código ou da 
dicas para melhorar.

DECLARE
L_VFRASE  VARCHAR2(240) := 'Digite uma Frase.';L_VFRASE_TEST   
  VARCHAR2(240);L_VFRASE_NOVO VARCHAR2(240);L_VQBRLINHA   
VARCAHR2(240);L_valor_novo  VARCAHR2(240);L_TESTE_QBR   
VARCAHR2(240);L_FRA_certVARCAHR2(240);L_frase   
VARCAHR2(240);L_VFRASE_TEST1VARCHAR2(240);

BEGIN
FOR L_VFRASE  100 LOOPIF DBMS_OUTPUT.put_line('Frase é maior que 100 
caracteres');L_VFRASE  := INSTR( L_VFRASE,' ');L_VFRASE_TEST
 := L_VFRASE + L_VFRASE_TEST;L_VFRASE_TEST := 0;L_VQBRLINHA   
:=  L_VFRASE + L_valor_novo;L_VQBRLINHA   :=  -1;L_TESTE_QBR   
:= SUBSTR(L_FRA_CERT,L_valor_novo);L_FRASE   := 
SUBSTR(L_FRA_CERT,L_VALOR_NOVO + LENGTH(L_FRA_CERT));
IF L_VQBRLINHA 10 then
L_L_TESTE_QBR := (CONCAT(L_VFRASE_TEST1,''),L_TESTE_QBR);
END IF:dbms_output.put_line(L_VFRASE);dbms_output.put_line 
(L_TESTE_QBR);dbms_output.put_line (L_FRASE);
dbms_output.put_line(L_VQBRLINHA);
END;
CC: oracle_br@yahoogrupos.com.br
To: oracle_br@yahoogrupos.com.br
From: alisson...@yahoo.com.br
Date: Mon, 11 Feb 2013 13:24:44 -0200
Subject: Re: [oracle_br] Re: Duvida
















 



  



  
  
  Select subtr('teste',0,1) from dual;



Nesse caso o resultado seria a letra 't'



Enviado via iPhone Alisson Luz



Em 11/02/2013, às 13:56, gabriel Tomaz gabriel_tom...@hotmail.com escreveu:



 

 

 Estou dando uma lida aqui. Alguém teria algum exemplo dessa função SUBTR ?No 
 exemplo que digitei abaixo esta correto meu raciocínio?  

 To: oracle_br@yahoogrupos.com.br

 From: jlchia...@yahoo.com.br

 Date: Mon, 11 Feb 2013 14:47:54 +

 Subject: [oracle_br] Re: Duvida

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Bom, não vou me meter a codificar na prática (não serei 
 desmancha-prazeres tirando a sua alegria) mas : Imaginando que o limite da 
 linha é de 100 caracteres, E QUE o sql*plus já foi configurado com SET 
 LINESIZE 100, temos que :

 

 

 

  - se a linha é de 100 caracteres e a qtdade de colunas está definida na 
 variável V_QTD_COL (digamos), aí 100 / V_QTD_COL te dá o tamanho de cada 
 coluna em caracteres , são pedaços desse tamanho da string original que vc 
 vai ter que extrair

 

  - o principal comando para vc extrair uma substring a partir de uma string 
 maior é o SUBSTR, consulte a Documentação para vc aprender o uso dele

 

  - não há um comando para quebrar linhas no PL/SQL, nem na package 
 DBMS_OUTPUT (que é o que vc está usando) : o que vc vai ter que fazer é OU 
 inserir na string a ser exibida o(s) caracteres de controle que sinalizam end 
 of line (se o seu sistema operacional for Windows eles são CHR(13) || CHR(10) 
 , enquanto no Linux/Unix é só o CHR(13)

 

 - eu entendo que a idéia é que, se o fim da coluna não cai num espaço em 
 branco, vc terá que finalizar a substring do SUBSTR no primeiro espaço em 
 branco à esquerda da posição de fim da coluna e insreir uma quebra de linha 
 após o espaço, fazendo o restante cair na linha de baixo quando exibido : 
 provavelmente para isso vc vai precisar do INSTR, que procura a ocorrência de 
 um caracter 

 

 

 

 A minha dica portanto é : Dá uma estudada nesses comandos que citei e faz um 
 esforço inicial, tenta escrever uma versão dessa lógica : não conseguindo, a 
 gente pode palpitar/tentar mostrar onde vc falhou, aí vc escreve uma segunda 
 versão, e aí vai até vc conseguir - é Assim que se aprende, por tentativa e 
 erro ...

 

 

 

   []s

 

 

 

 Chiappa

 

 

 

 --- Em oracle_br@yahoogrupos.com.br, gabriel Tomaz  escreveu

 

 

 

 

 Alguem pode me ajudar na resolução desse exercício segue como esta ficando:

 

 estou usando sql*plus

 

 DECLAREL_VFRASE VARCHAR2(240) := 'Digite uma Frase.';L_VFRASE_TEST 
 VARCHAR2(240);L_VFRASE_NOVO VARCHAR2(240);L_VQBRLINHA VARCAHR2(240);BEGINFOR 
 L_VFRASE  100 LOOPIF DBMS_OUTPUT.put_line('Frase é maior que 100 
 caracteres');L_VFRASE := INSTR( L_VFRASE,' ');L_VFRASE_TEST := L_VFRASE + 
 L_VFRASE_TEST;L_VFRASE_TEST := 0;L_VQBRLINHA :=END;

 

 O exercício e o seguinte:Escreva um programa em que dado uma frase e a 
 quantidade de colunas que podem ser exibidas na tela, faça a quebra de 
 linhas sem quebrar as palavras.

 

 Por exemplo, se passarmos a frase Um pequeno jabuti xereta viu dez cegonhas 
 felizes. e pedirmos para ela ser exibida em 20 colunas, teremos como 
 resposta:Um pequeno jabutixereta viu dezcegonhas felizes. 

 

 Grato

 

 To: oracle_br@yahoogrupos.com.br

 

 From: gabriel_tomazc@...

 

 Date: Sun, 10 Feb 2013 15:51:36 -0300

 

 Subject: Re: [oracle_br] Duvida

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  Gostaria de fazer usando o sql plus.

 

 

 

 

 -Original Message-

 

 

 

 

 From: Milton Bastos Henriquis Jr.

 

 

 

RE: [oracle_br] Re: Duvida

2013-02-11 Por tôpico gabriel Tomaz

Com base no uso da SUBSTR alguém poderia validar ou aperfeiçoar o código ou da 
dicas para melhorar.DECLAREL_VFRASE  VARCHAR2(240) := 'Digite uma 
Frase.';L_VFRASE_TEST VARCHAR2(240);L_VFRASE_NOVO 
VARCHAR2(240);L_VQBRLINHA   VARCAHR2(240);L_valor_novo  
VARCAHR2(240);L_TESTE_QBR   VARCAHR2(240);L_FRA_cert
VARCAHR2(240);L_frase   VARCAHR2(240);L_VFRASE_TEST1
VARCHAR2(240);BEGINFOR L_VFRASE  100 LOOPIF DBMS_OUTPUT.put_line('Frase é 
maior que 100 caracteres');L_VFRASE  := INSTR( L_VFRASE,' 
');L_VFRASE_TEST := L_VFRASE + L_VFRASE_TEST;L_VFRASE_TEST := 
0;L_VQBRLINHA   :=  L_VFRASE + L_valor_novo;L_VQBRLINHA   :=  
-1;L_TESTE_QBR   := SUBSTR(L_FRA_CERT,L_valor_novo);L_FRASE 
  := SUBSTR(L_FRA_CERT,L_VALOR_NOVO + LENGTH(L_FRA_CERT));IF L_VQBRLINHA 10 
thenL_L_TESTE_QBR := (CONCAT(L_VFRASE_TEST1,''),L_TESTE_QBR);END 
IF:dbms_output.put_line(L_VFRASE);dbms_output.put_line 
(L_TESTE_QBR);dbms_output.put_line 
(L_FRASE);dbms_output.put_line(L_VQBRLINHA);END;To: oracle_br@yahoogrupos.com.br
From: jlchia...@yahoo.com.br
Date: Mon, 11 Feb 2013 16:40:53 +
Subject: [oracle_br] Re: Duvida
















 



  



  
  
Bem, a Documentação que eu citei são os manuais Oracle : todos eles 
estão online no site http://tahiti.oracle.com e há um DEDICADO à linguagem SQL 
e seus comandos/funções nativas, lá vc acha tanto a sintaxe quanto uns três ou 
quatro exemplos de cada coisa... Vc não diz a versão mas supondo 11gR2 
http://docs.oracle.com/cd/E11882_01/server.112/e26088/functions181.htm#SQLRF06114
 é a ref

   Sobre o exemplo que vc digitou, se é este trecho :

   



DECLAREL_VFRASE VARCHAR2(240) := 'Digite uma Frase.';L_VFRASE_TEST

VARCHAR2(240);L_VFRASE_NOVO VARCHAR2(240);L_VQBRLINHA VARCAHR2(240);BEGINFOR

L_VFRASE  100 LOOPIF DBMS_OUTPUT.put_line('Frase é maior que 100

caracteres');L_VFRASE := INSTR( L_VFRASE,' ');L_VFRASE_TEST := L_VFRASE +

L_VFRASE_TEST;L_VFRASE_TEST := 0;L_VQBRLINHA :=END;





Aonde vc vê SUBSTR nele ? Eu não vejo...

   Anyway, segue ainda outro exemplo exemplificando a utilização do SUBSTR , 
primeiro extraindo uma substring a partir da posição 1 até aonde achar um 
espaço em branco, e depois extraindo uma substring iniciando não em 1, mas 
aonde acahr um espaço em branco, E além disso essa última substring extraída eu 
coloca na variável v_frase , na prática Sobrepondo e perdendo o que eu tinha 
antes : 

   

SQL set serveroutput on size unlimited;

SQL DECLARE

  2 v_frase varchar2(200) := 'Frase de teste para Exemplo!';

  3  BEGIN

  4 for i in 1..4 loop

  5dbms_output.put_line(substr(v_frase, 1, instr(v_frase, ' ')));

  6v_frase := substr(v_frase, instr(v_frase, ' ')+1);

  7 end loop;

  8 dbms_output.put_line(v_frase);

  9  END;

 10  /

Frase

de

teste

para

Exemplo!



Procedimento PL/SQL concluÝdo com sucesso.



Mas repito, para vc poder entender esse exemplo, plz dá uma estudada no manual 
citado, faça antes os exemplinhos menores que estão no manual, escreva um 
exemplo seu simples variando com um FOR algum dos argumentos do SUBSTR.. É 
assim que se aprende...

  

   []s

   

 Chiappa

 



--- Em oracle_br@yahoogrupos.com.br, gabriel Tomaz  escreveu



 

 

 Estou dando uma lida aqui. Alguém teria algum exemplo dessa função SUBTR ?No 
 exemplo que digitei abaixo esta correto meu raciocínio?  

 To: oracle_br@yahoogrupos.com.br

 From: jlchiappa@...

 Date: Mon, 11 Feb 2013 14:47:54 +

 Subject: [oracle_br] Re: Duvida

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  

 

 

 

   

 

 

 

   

   

 Bom, não vou me meter a codificar na prática (não serei 
 desmancha-prazeres tirando a sua alegria) mas : Imaginando que o limite da 
 linha é de 100 caracteres, E QUE o sql*plus já foi configurado com SET 
 LINESIZE 100, temos que :

 

   

 

   - se a linha é de 100 caracteres e a qtdade de colunas está definida na 
 variável V_QTD_COL (digamos), aí 100 / V_QTD_COL te dá o tamanho de cada 
 coluna em caracteres , são pedaços desse tamanho da string original que vc 
 vai ter que extrair

 

   - o principal comando para vc extrair uma substring a partir de uma string 
 maior é o SUBSTR, consulte a Documentação para vc aprender o uso dele

 

   - não há um comando para quebrar linhas no PL/SQL, nem na package 
 DBMS_OUTPUT (que é o que vc está usando) : o que vc vai ter que fazer é OU 
 inserir na string a ser exibida o(s) caracteres de controle que sinalizam end 
 of line (se o seu sistema operacional for Windows eles são CHR(13) || CHR(10) 
 , enquanto no Linux/Unix é só o CHR(13)

 

 - eu entendo que a idéia é que, se o fim da coluna não cai num espaço em 
 branco, vc terá que finalizar a substring do SUBSTR no primeiro espaço em 
 branco à esquerda da posição de fim da coluna e insreir uma quebra de linha 
 após o 

Re: [oracle_br] Re: Duvida

2013-02-11 Por tôpico Roberto Warstat
Gabriel,

Antes de mais nada, esse teu código está funcionando?
Dando uma olhada aqui eu reparei que:
- a declaração das
variáveis L_VQBRLINHA, L_valor_novo, L_TESTE_QBR, L_FRA_cert e L_frase
estão incorretas - o tipo de dados foi escrito errado;
- está faltando END LOOP e END IF;

Corrige esse itens, executa o teu programa e se tiver dúvida posta de novo,
com o programa funcionando, como está sendo a saída e como tu
gostaria\entende que deveria ser.

[]´s
Roberto


Em 11 de fevereiro de 2013 14:42, gabriel Tomaz
gabriel_tom...@hotmail.comescreveu:


 Com base no uso da SUBSTR alguém poderia validar ou aperfeiçoar o código
 ou da dicas para melhorar.

 DECLARE
 L_VFRASE  VARCHAR2(240) := 'Digite uma Frase.';L_VFRASE_TEST
 VARCHAR2(240);L_VFRASE_NOVO VARCHAR2(240);L_VQBRLINHA
 VARCAHR2(240);L_valor_novo  VARCAHR2(240);L_TESTE_QBR
 VARCAHR2(240);L_FRA_certVARCAHR2(240);L_frase
 VARCAHR2(240);L_VFRASE_TEST1VARCHAR2(240);

 BEGIN
 FOR L_VFRASE  100 LOOPIF DBMS_OUTPUT.put_line('Frase é maior que 100
 caracteres');L_VFRASE  := INSTR( L_VFRASE,' ');L_VFRASE_TEST
   := L_VFRASE + L_VFRASE_TEST;L_VFRASE_TEST := 0;L_VQBRLINHA
 :=  L_VFRASE + L_valor_novo;L_VQBRLINHA   :=
  -1;L_TESTE_QBR   := SUBSTR(L_FRA_CERT,L_valor_novo);L_FRASE
 := SUBSTR(L_FRA_CERT,L_VALOR_NOVO + LENGTH(L_FRA_CERT));
 IF L_VQBRLINHA 10 then
 L_L_TESTE_QBR := (CONCAT(L_VFRASE_TEST1,''),L_TESTE_QBR);
 END IF:dbms_output.put_line(L_VFRASE);dbms_output.put_line
 (L_TESTE_QBR);dbms_output.put_line (L_FRASE);
 dbms_output.put_line(L_VQBRLINHA);
 END;
 CC: oracle_br@yahoogrupos.com.br
 To: oracle_br@yahoogrupos.com.br
 From: alisson...@yahoo.com.br
 Date: Mon, 11 Feb 2013 13:24:44 -0200
 Subject: Re: [oracle_br] Re: Duvida


























   Select subtr('teste',0,1) from dual;



 Nesse caso o resultado seria a letra 't'



 Enviado via iPhone Alisson Luz



 Em 11/02/2013, às 13:56, gabriel Tomaz gabriel_tom...@hotmail.com
 escreveu:



 

 

  Estou dando uma lida aqui. Alguém teria algum exemplo dessa função SUBTR
 ?No exemplo que digitei abaixo esta correto meu raciocínio?

  To: oracle_br@yahoogrupos.com.br

  From: jlchia...@yahoo.com.br

  Date: Mon, 11 Feb 2013 14:47:54 +

  Subject: [oracle_br] Re: Duvida

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 Bom, não vou me meter a codificar na prática (não serei
 desmancha-prazeres tirando a sua alegria) mas : Imaginando que o limite da
 linha é de 100 caracteres, E QUE o sql*plus já foi configurado com SET
 LINESIZE 100, temos que :

 

 

 

   - se a linha é de 100 caracteres e a qtdade de colunas está definida na
 variável V_QTD_COL (digamos), aí 100 / V_QTD_COL te dá o tamanho de cada
 coluna em caracteres , são pedaços desse tamanho da string original que vc
 vai ter que extrair

 

   - o principal comando para vc extrair uma substring a partir de uma
 string maior é o SUBSTR, consulte a Documentação para vc aprender o uso dele

 

   - não há um comando para quebrar linhas no PL/SQL, nem na package
 DBMS_OUTPUT (que é o que vc está usando) : o que vc vai ter que fazer é OU
 inserir na string a ser exibida o(s) caracteres de controle que sinalizam
 end of line (se o seu sistema operacional for Windows eles são CHR(13) ||
 CHR(10) , enquanto no Linux/Unix é só o CHR(13)

 

  - eu entendo que a idéia é que, se o fim da coluna não cai num espaço em
 branco, vc terá que finalizar a substring do SUBSTR no primeiro espaço em
 branco à esquerda da posição de fim da coluna e insreir uma quebra de linha
 após o espaço, fazendo o restante cair na linha de baixo quando exibido :
 provavelmente para isso vc vai precisar do INSTR, que procura a ocorrência
 de um caracter

 

 

 

  A minha dica portanto é : Dá uma estudada nesses comandos que citei e
 faz um esforço inicial, tenta escrever uma versão dessa lógica : não
 conseguindo, a gente pode palpitar/tentar mostrar onde vc falhou, aí vc
 escreve uma segunda versão, e aí vai até vc conseguir - é Assim que se
 aprende, por tentativa e erro ...

 

 

 

[]s

 

 

 

  Chiappa

 

 

 

  --- Em oracle_br@yahoogrupos.com.br, gabriel Tomaz  escreveu

 

 

 

 

  Alguem pode me ajudar na resolução desse exercício segue como esta
 ficando:

 

  estou usando sql*plus

 

  DECLAREL_VFRASE VARCHAR2(240) := 'Digite uma Frase.';L_VFRASE_TEST
 VARCHAR2(240);L_VFRASE_NOVO VARCHAR2(240);L_VQBRLINHA
 VARCAHR2(240);BEGINFOR L_VFRASE  100 LOOPIF DBMS_OUTPUT.put_line('Frase é
 maior que 100 caracteres');L_VFRASE := INSTR( L_VFRASE,' ');L_VFRASE_TEST
 := L_VFRASE + L_VFRASE_TEST;L_VFRASE_TEST := 0;L_VQBRLINHA :=END;

 

  O exercício e o seguinte:Escreva um programa em que dado uma frase e a
 quantidade de colunas que podem ser exibidas na tela, faça a quebra de
 linhas sem quebrar as palavras.

 

  Por exemplo, se passarmos a frase Um pequeno jabuti xereta viu dez
 cegonhas 

RE: [oracle_br] Re: Duvida

2013-02-11 Por tôpico gabriel Tomaz

Qual seria o tipo de dados correto?

To: oracle_br@yahoogrupos.com.br
From: ro.wars...@gmail.com
Date: Mon, 11 Feb 2013 14:47:57 -0200
Subject: Re: [oracle_br] Re: Duvida
















 



  



  
  
  Gabriel,



Antes de mais nada, esse teu código está funcionando?

Dando uma olhada aqui eu reparei que:

- a declaração das

variáveis L_VQBRLINHA, L_valor_novo, L_TESTE_QBR, L_FRA_cert e L_frase

estão incorretas - o tipo de dados foi escrito errado;

- está faltando END LOOP e END IF;



Corrige esse itens, executa o teu programa e se tiver dúvida posta de novo,

com o programa funcionando, como está sendo a saída e como tu

gostaria\entende que deveria ser.



[]´s

Roberto



Em 11 de fevereiro de 2013 14:42, gabriel Tomaz

gabriel_tom...@hotmail.comescreveu:





 Com base no uso da SUBSTR alguém poderia validar ou aperfeiçoar o código

 ou da dicas para melhorar.



 DECLARE

 L_VFRASE  VARCHAR2(240) := 'Digite uma Frase.';L_VFRASE_TEST

 VARCHAR2(240);L_VFRASE_NOVO VARCHAR2(240);L_VQBRLINHA

 VARCAHR2(240);L_valor_novo  VARCAHR2(240);L_TESTE_QBR

 VARCAHR2(240);L_FRA_certVARCAHR2(240);L_frase

 VARCAHR2(240);L_VFRASE_TEST1VARCHAR2(240);



 BEGIN

 FOR L_VFRASE  100 LOOPIF DBMS_OUTPUT.put_line('Frase é maior que 100

 caracteres');L_VFRASE  := INSTR( L_VFRASE,' ');L_VFRASE_TEST

   := L_VFRASE + L_VFRASE_TEST;L_VFRASE_TEST := 0;L_VQBRLINHA

 :=  L_VFRASE + L_valor_novo;L_VQBRLINHA   :=

  -1;L_TESTE_QBR   := SUBSTR(L_FRA_CERT,L_valor_novo);L_FRASE

 := SUBSTR(L_FRA_CERT,L_VALOR_NOVO + LENGTH(L_FRA_CERT));

 IF L_VQBRLINHA 10 then

 L_L_TESTE_QBR := (CONCAT(L_VFRASE_TEST1,''),L_TESTE_QBR);

 END IF:dbms_output.put_line(L_VFRASE);dbms_output.put_line

 (L_TESTE_QBR);dbms_output.put_line (L_FRASE);

 dbms_output.put_line(L_VQBRLINHA);

 END;

 CC: oracle_br@yahoogrupos.com.br

 To: oracle_br@yahoogrupos.com.br

 From: alisson...@yahoo.com.br

 Date: Mon, 11 Feb 2013 13:24:44 -0200

 Subject: Re: [oracle_br] Re: Duvida





















































   Select subtr('teste',0,1) from dual;







 Nesse caso o resultado seria a letra 't'







 Enviado via iPhone Alisson Luz







 Em 11/02/2013, às 13:56, gabriel Tomaz gabriel_tom...@hotmail.com

 escreveu:







 



 



  Estou dando uma lida aqui. Alguém teria algum exemplo dessa função SUBTR

 ?No exemplo que digitei abaixo esta correto meu raciocínio?



  To: oracle_br@yahoogrupos.com.br



  From: jlchia...@yahoo.com.br



  Date: Mon, 11 Feb 2013 14:47:54 +



  Subject: [oracle_br] Re: Duvida



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 Bom, não vou me meter a codificar na prática (não serei

 desmancha-prazeres tirando a sua alegria) mas : Imaginando que o limite da

 linha é de 100 caracteres, E QUE o sql*plus já foi configurado com SET

 LINESIZE 100, temos que :



 



 



 



   - se a linha é de 100 caracteres e a qtdade de colunas está definida na

 variável V_QTD_COL (digamos), aí 100 / V_QTD_COL te dá o tamanho de cada

 coluna em caracteres , são pedaços desse tamanho da string original que vc

 vai ter que extrair



 



   - o principal comando para vc extrair uma substring a partir de uma

 string maior é o SUBSTR, consulte a Documentação para vc aprender o uso dele



 



   - não há um comando para quebrar linhas no PL/SQL, nem na package

 DBMS_OUTPUT (que é o que vc está usando) : o que vc vai ter que fazer é OU

 inserir na string a ser exibida o(s) caracteres de controle que sinalizam

 end of line (se o seu sistema operacional for Windows eles são CHR(13) ||

 CHR(10) , enquanto no Linux/Unix é só o CHR(13)



 



  - eu entendo que a idéia é que, se o fim da coluna não cai num espaço em

 branco, vc terá que finalizar a substring do SUBSTR no primeiro espaço em

 branco à esquerda da posição de fim da coluna e insreir uma quebra de linha

 após o espaço, fazendo o restante cair na linha de baixo quando exibido :

 provavelmente para isso vc vai precisar do INSTR, que procura a ocorrência

 de um caracter



 



 



 



  A minha dica portanto é : Dá uma estudada nesses comandos que citei e

 faz um esforço inicial, tenta escrever uma versão dessa lógica : não

 conseguindo, a gente pode palpitar/tentar mostrar onde vc falhou, aí vc

 escreve uma segunda versão, e aí vai até vc conseguir - é Assim que se

 aprende, por tentativa e erro ...



 



 



 



[]s



 



 



 



  Chiappa



 



 



 



  --- Em oracle_br@yahoogrupos.com.br, gabriel Tomaz  escreveu



 



 



 



 



  Alguem pode me ajudar na resolução desse exercício segue como esta

 ficando:



 



  estou usando sql*plus



 



  DECLAREL_VFRASE VARCHAR2(240) := 'Digite uma Frase.';L_VFRASE_TEST

 VARCHAR2(240);L_VFRASE_NOVO VARCHAR2(240);L_VQBRLINHA

 

RE: [oracle_br] Re: Duvida

2013-02-11 Por tôpico gabriel Tomaz

Gostaria de saber qual seria o tipo de dados correto para ser colocado nessas 
variáveis? Enquanto O problema com o fechamento do IF já corrigi.

To: oracle_br@yahoogrupos.com.br
From: ro.wars...@gmail.com
Date: Mon, 11 Feb 2013 14:47:57 -0200
Subject: Re: [oracle_br] Re: Duvida
















 



  



  
  
  Gabriel,



Antes de mais nada, esse teu código está funcionando?

Dando uma olhada aqui eu reparei que:

- a declaração das

variáveis L_VQBRLINHA, L_valor_novo, L_TESTE_QBR, L_FRA_cert e L_frase

estão incorretas - o tipo de dados foi escrito errado;

- está faltando END LOOP e END IF;



Corrige esse itens, executa o teu programa e se tiver dúvida posta de novo,

com o programa funcionando, como está sendo a saída e como tu

gostaria\entende que deveria ser.



[]´s

Roberto



Em 11 de fevereiro de 2013 14:42, gabriel Tomaz

gabriel_tom...@hotmail.comescreveu:





 Com base no uso da SUBSTR alguém poderia validar ou aperfeiçoar o código

 ou da dicas para melhorar.



 DECLARE

 L_VFRASE  VARCHAR2(240) := 'Digite uma Frase.';L_VFRASE_TEST

 VARCHAR2(240);L_VFRASE_NOVO VARCHAR2(240);L_VQBRLINHA

 VARCAHR2(240);L_valor_novo  VARCAHR2(240);L_TESTE_QBR

 VARCAHR2(240);L_FRA_certVARCAHR2(240);L_frase

 VARCAHR2(240);L_VFRASE_TEST1VARCHAR2(240);



 BEGIN

 FOR L_VFRASE  100 LOOPIF DBMS_OUTPUT.put_line('Frase é maior que 100

 caracteres');L_VFRASE  := INSTR( L_VFRASE,' ');L_VFRASE_TEST

   := L_VFRASE + L_VFRASE_TEST;L_VFRASE_TEST := 0;L_VQBRLINHA

 :=  L_VFRASE + L_valor_novo;L_VQBRLINHA   :=

  -1;L_TESTE_QBR   := SUBSTR(L_FRA_CERT,L_valor_novo);L_FRASE

 := SUBSTR(L_FRA_CERT,L_VALOR_NOVO + LENGTH(L_FRA_CERT));

 IF L_VQBRLINHA 10 then

 L_L_TESTE_QBR := (CONCAT(L_VFRASE_TEST1,''),L_TESTE_QBR);

 END IF:dbms_output.put_line(L_VFRASE);dbms_output.put_line

 (L_TESTE_QBR);dbms_output.put_line (L_FRASE);

 dbms_output.put_line(L_VQBRLINHA);

 END;

 CC: oracle_br@yahoogrupos.com.br

 To: oracle_br@yahoogrupos.com.br

 From: alisson...@yahoo.com.br

 Date: Mon, 11 Feb 2013 13:24:44 -0200

 Subject: Re: [oracle_br] Re: Duvida





















































   Select subtr('teste',0,1) from dual;







 Nesse caso o resultado seria a letra 't'







 Enviado via iPhone Alisson Luz







 Em 11/02/2013, às 13:56, gabriel Tomaz gabriel_tom...@hotmail.com

 escreveu:







 



 



  Estou dando uma lida aqui. Alguém teria algum exemplo dessa função SUBTR

 ?No exemplo que digitei abaixo esta correto meu raciocínio?



  To: oracle_br@yahoogrupos.com.br



  From: jlchia...@yahoo.com.br



  Date: Mon, 11 Feb 2013 14:47:54 +



  Subject: [oracle_br] Re: Duvida



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 Bom, não vou me meter a codificar na prática (não serei

 desmancha-prazeres tirando a sua alegria) mas : Imaginando que o limite da

 linha é de 100 caracteres, E QUE o sql*plus já foi configurado com SET

 LINESIZE 100, temos que :



 



 



 



   - se a linha é de 100 caracteres e a qtdade de colunas está definida na

 variável V_QTD_COL (digamos), aí 100 / V_QTD_COL te dá o tamanho de cada

 coluna em caracteres , são pedaços desse tamanho da string original que vc

 vai ter que extrair



 



   - o principal comando para vc extrair uma substring a partir de uma

 string maior é o SUBSTR, consulte a Documentação para vc aprender o uso dele



 



   - não há um comando para quebrar linhas no PL/SQL, nem na package

 DBMS_OUTPUT (que é o que vc está usando) : o que vc vai ter que fazer é OU

 inserir na string a ser exibida o(s) caracteres de controle que sinalizam

 end of line (se o seu sistema operacional for Windows eles são CHR(13) ||

 CHR(10) , enquanto no Linux/Unix é só o CHR(13)



 



  - eu entendo que a idéia é que, se o fim da coluna não cai num espaço em

 branco, vc terá que finalizar a substring do SUBSTR no primeiro espaço em

 branco à esquerda da posição de fim da coluna e insreir uma quebra de linha

 após o espaço, fazendo o restante cair na linha de baixo quando exibido :

 provavelmente para isso vc vai precisar do INSTR, que procura a ocorrência

 de um caracter



 



 



 



  A minha dica portanto é : Dá uma estudada nesses comandos que citei e

 faz um esforço inicial, tenta escrever uma versão dessa lógica : não

 conseguindo, a gente pode palpitar/tentar mostrar onde vc falhou, aí vc

 escreve uma segunda versão, e aí vai até vc conseguir - é Assim que se

 aprende, por tentativa e erro ...



 



 



 



[]s



 



 



 



  Chiappa



 



 



 



  --- Em oracle_br@yahoogrupos.com.br, gabriel Tomaz  escreveu



 



 



 



 



  Alguem pode me ajudar na resolução desse exercício segue como esta

 ficando:



 



  estou usando sql*plus



 



  DECLAREL_VFRASE 

Re: [oracle_br] Re: Duvida

2013-02-11 Por tôpico Roberto Warstat
Sugestão, antes de tenta executa no SQL*Plus, coloca o teu programa em um
editor tipo bloco de notas e verifica ele. Aí vai começar a aparecer os
erros.
Usa a identação para melhorar a leitura do programa.

[]´s
Roberto


Em 11 de fevereiro de 2013 14:54, gabriel Tomaz
gabriel_tom...@hotmail.comescreveu:


 Qual seria o tipo de dados correto?

 To: oracle_br@yahoogrupos.com.br
 From: ro.wars...@gmail.com
 Date: Mon, 11 Feb 2013 14:47:57 -0200
 Subject: Re: [oracle_br] Re: Duvida


























   Gabriel,



 Antes de mais nada, esse teu código está funcionando?

 Dando uma olhada aqui eu reparei que:

 - a declaração das

 variáveis L_VQBRLINHA, L_valor_novo, L_TESTE_QBR, L_FRA_cert e L_frase

 estão incorretas - o tipo de dados foi escrito errado;

 - está faltando END LOOP e END IF;



 Corrige esse itens, executa o teu programa e se tiver dúvida posta de novo,

 com o programa funcionando, como está sendo a saída e como tu

 gostaria\entende que deveria ser.



 []´s

 Roberto



 Em 11 de fevereiro de 2013 14:42, gabriel Tomaz

 gabriel_tom...@hotmail.comescreveu:



 

  Com base no uso da SUBSTR alguém poderia validar ou aperfeiçoar o código

  ou da dicas para melhorar.

 

  DECLARE

  L_VFRASE  VARCHAR2(240) := 'Digite uma Frase.';L_VFRASE_TEST

  VARCHAR2(240);L_VFRASE_NOVO VARCHAR2(240);L_VQBRLINHA

  VARCAHR2(240);L_valor_novo  VARCAHR2(240);L_TESTE_QBR

  VARCAHR2(240);L_FRA_certVARCAHR2(240);L_frase

  VARCAHR2(240);L_VFRASE_TEST1VARCHAR2(240);

 

  BEGIN

  FOR L_VFRASE  100 LOOPIF DBMS_OUTPUT.put_line('Frase é maior que 100

  caracteres');L_VFRASE  := INSTR( L_VFRASE,' ');L_VFRASE_TEST

:= L_VFRASE + L_VFRASE_TEST;L_VFRASE_TEST := 0;L_VQBRLINHA

  :=  L_VFRASE + L_valor_novo;L_VQBRLINHA   :=

   -1;L_TESTE_QBR   := SUBSTR(L_FRA_CERT,L_valor_novo);L_FRASE

  := SUBSTR(L_FRA_CERT,L_VALOR_NOVO + LENGTH(L_FRA_CERT));

  IF L_VQBRLINHA 10 then

  L_L_TESTE_QBR := (CONCAT(L_VFRASE_TEST1,''),L_TESTE_QBR);

  END IF:dbms_output.put_line(L_VFRASE);dbms_output.put_line

  (L_TESTE_QBR);dbms_output.put_line (L_FRASE);

  dbms_output.put_line(L_VQBRLINHA);

  END;

  CC: oracle_br@yahoogrupos.com.br

  To: oracle_br@yahoogrupos.com.br

  From: alisson...@yahoo.com.br

  Date: Mon, 11 Feb 2013 13:24:44 -0200

  Subject: Re: [oracle_br] Re: Duvida

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Select subtr('teste',0,1) from dual;

 

 

 

  Nesse caso o resultado seria a letra 't'

 

 

 

  Enviado via iPhone Alisson Luz

 

 

 

  Em 11/02/2013, às 13:56, gabriel Tomaz gabriel_tom...@hotmail.com

  escreveu:

 

 

 

  

 

  

 

   Estou dando uma lida aqui. Alguém teria algum exemplo dessa função
 SUBTR

  ?No exemplo que digitei abaixo esta correto meu raciocínio?

 

   To: oracle_br@yahoogrupos.com.br

 

   From: jlchia...@yahoo.com.br

 

   Date: Mon, 11 Feb 2013 14:47:54 +

 

   Subject: [oracle_br] Re: Duvida

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  Bom, não vou me meter a codificar na prática (não serei

  desmancha-prazeres tirando a sua alegria) mas : Imaginando que o limite
 da

  linha é de 100 caracteres, E QUE o sql*plus já foi configurado com SET

  LINESIZE 100, temos que :

 

  

 

  

 

  

 

- se a linha é de 100 caracteres e a qtdade de colunas está definida
 na

  variável V_QTD_COL (digamos), aí 100 / V_QTD_COL te dá o tamanho de cada

  coluna em caracteres , são pedaços desse tamanho da string original que
 vc

  vai ter que extrair

 

  

 

- o principal comando para vc extrair uma substring a partir de uma

  string maior é o SUBSTR, consulte a Documentação para vc aprender o uso
 dele

 

  

 

- não há um comando para quebrar linhas no PL/SQL, nem na package

  DBMS_OUTPUT (que é o que vc está usando) : o que vc vai ter que fazer é
 OU

  inserir na string a ser exibida o(s) caracteres de controle que sinalizam

  end of line (se o seu sistema operacional for Windows eles são CHR(13) ||

  CHR(10) , enquanto no Linux/Unix é só o CHR(13)

 

  

 

   - eu entendo que a idéia é que, se o fim da coluna não cai num espaço
 em

  branco, vc terá que finalizar a substring do SUBSTR no primeiro espaço em

  branco à esquerda da posição de fim da coluna e insreir uma quebra de
 linha

  após o espaço, fazendo o restante cair na linha de baixo quando exibido :

  provavelmente para isso vc vai precisar do INSTR, que procura a
 ocorrência

  de um caracter

 

  

 

  

 

  

 

   A minha dica portanto é : Dá uma estudada nesses comandos que citei e

  faz um esforço inicial, tenta escrever uma versão dessa lógica : não

  conseguindo, a gente pode palpitar/tentar mostrar onde vc falhou, aí vc

  escreve uma segunda 

RE: [oracle_br] Re: Duvida

2013-02-11 Por tôpico gabriel Tomaz

Valeu pela dica. Mas sabe informar qual tipo de dados seria essas minhas 
variáveis ?

To: oracle_br@yahoogrupos.com.br
From: ro.wars...@gmail.com
Date: Mon, 11 Feb 2013 15:04:13 -0200
Subject: Re: [oracle_br] Re: Duvida
















 



  



  
  
  Sugestão, antes de tenta executa no SQL*Plus, coloca o teu programa em um

editor tipo bloco de notas e verifica ele. Aí vai começar a aparecer os

erros.

Usa a identação para melhorar a leitura do programa.



[]´s

Roberto



Em 11 de fevereiro de 2013 14:54, gabriel Tomaz

gabriel_tom...@hotmail.comescreveu:





 Qual seria o tipo de dados correto?



 To: oracle_br@yahoogrupos.com.br

 From: ro.wars...@gmail.com

 Date: Mon, 11 Feb 2013 14:47:57 -0200

 Subject: Re: [oracle_br] Re: Duvida





















































   Gabriel,







 Antes de mais nada, esse teu código está funcionando?



 Dando uma olhada aqui eu reparei que:



 - a declaração das



 variáveis L_VQBRLINHA, L_valor_novo, L_TESTE_QBR, L_FRA_cert e L_frase



 estão incorretas - o tipo de dados foi escrito errado;



 - está faltando END LOOP e END IF;







 Corrige esse itens, executa o teu programa e se tiver dúvida posta de novo,



 com o programa funcionando, como está sendo a saída e como tu



 gostaria\entende que deveria ser.







 []´s



 Roberto







 Em 11 de fevereiro de 2013 14:42, gabriel Tomaz



 gabriel_tom...@hotmail.comescreveu:







 



  Com base no uso da SUBSTR alguém poderia validar ou aperfeiçoar o código



  ou da dicas para melhorar.



 



  DECLARE



  L_VFRASE  VARCHAR2(240) := 'Digite uma Frase.';L_VFRASE_TEST



  VARCHAR2(240);L_VFRASE_NOVO VARCHAR2(240);L_VQBRLINHA



  VARCAHR2(240);L_valor_novo  VARCAHR2(240);L_TESTE_QBR



  VARCAHR2(240);L_FRA_certVARCAHR2(240);L_frase



  VARCAHR2(240);L_VFRASE_TEST1VARCHAR2(240);



 



  BEGIN



  FOR L_VFRASE  100 LOOPIF DBMS_OUTPUT.put_line('Frase é maior que 100



  caracteres');L_VFRASE  := INSTR( L_VFRASE,' ');L_VFRASE_TEST



:= L_VFRASE + L_VFRASE_TEST;L_VFRASE_TEST := 0;L_VQBRLINHA



  :=  L_VFRASE + L_valor_novo;L_VQBRLINHA   :=



   -1;L_TESTE_QBR   := SUBSTR(L_FRA_CERT,L_valor_novo);L_FRASE



  := SUBSTR(L_FRA_CERT,L_VALOR_NOVO + LENGTH(L_FRA_CERT));



  IF L_VQBRLINHA 10 then



  L_L_TESTE_QBR := (CONCAT(L_VFRASE_TEST1,''),L_TESTE_QBR);



  END IF:dbms_output.put_line(L_VFRASE);dbms_output.put_line



  (L_TESTE_QBR);dbms_output.put_line (L_FRASE);



  dbms_output.put_line(L_VQBRLINHA);



  END;



  CC: oracle_br@yahoogrupos.com.br



  To: oracle_br@yahoogrupos.com.br



  From: alisson...@yahoo.com.br



  Date: Mon, 11 Feb 2013 13:24:44 -0200



  Subject: Re: [oracle_br] Re: Duvida



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



Select subtr('teste',0,1) from dual;



 



 



 



  Nesse caso o resultado seria a letra 't'



 



 



 



  Enviado via iPhone Alisson Luz



 



 



 



  Em 11/02/2013, às 13:56, gabriel Tomaz gabriel_tom...@hotmail.com



  escreveu:



 



 



 



  



 



  



 



   Estou dando uma lida aqui. Alguém teria algum exemplo dessa função

 SUBTR



  ?No exemplo que digitei abaixo esta correto meu raciocínio?



 



   To: oracle_br@yahoogrupos.com.br



 



   From: jlchia...@yahoo.com.br



 



   Date: Mon, 11 Feb 2013 14:47:54 +



 



   Subject: [oracle_br] Re: Duvida



 



  



 



  



 



  



 



  



 



  



 



  



 



  



 



  



 



  



 



  



 



  



 



  



 



  



 



  



 



  



 



  



 



  



 



  



 



  



 



  



 



  



 



  



 



  



 



  



 



  



 



  



 



  Bom, não vou me meter a codificar na prática (não serei



  desmancha-prazeres tirando a sua alegria) mas : Imaginando que o limite

 da



  linha é de 100 caracteres, E QUE o sql*plus já foi configurado com SET



  LINESIZE 100, temos que :



 



  



 



  



 



  



 



- se a linha é de 100 caracteres e a qtdade de colunas está definida

 na



  variável V_QTD_COL (digamos), aí 100 / V_QTD_COL te dá o tamanho de cada



  coluna em caracteres , são pedaços desse tamanho da string original que

 vc



  vai ter que extrair



 



  



 



- o principal comando para vc extrair uma substring a partir de uma



  string maior é o SUBSTR, consulte a Documentação para vc aprender o uso

 dele



 



  



 



- não há um comando para quebrar linhas no PL/SQL, nem na package



  DBMS_OUTPUT (que é o que vc está usando) : o que vc vai ter que fazer é

 OU



  inserir na string a ser exibida o(s) caracteres de controle que sinalizam



  end of line (se o seu sistema operacional for Windows eles são CHR(13) ||



  CHR(10) , enquanto no Linux/Unix é só o CHR(13)


RE: [oracle_br] Re: Duvida

2013-02-11 Por tôpico gabriel Tomaz



Alguém sabe informar qual seria o tipo dessas  variáveis L_VQBRLINHA, 
L_valor_novo, L_TESTE_QBR, L_FRA_cert e L_frase se alguém  quiser fazer algum 
ajustar a melhorar o código fica a vontade.  
DECLARE
 L_VFRASE  VARCHAR2(240) := 'Digite uma Frase.'; 
L_VFRASE_TEST VARCHAR2(240); L_VFRASE_NOVO VARCHAR2(240);   
  L_VQBRLINHA   VARCAHR2(240); L_valor_novo  VARCAHR2(240); 
L_TESTE_QBR   VARCAHR2(240); L_FRA_cert
VARCAHR2(240); L_frase   VARCAHR2(240); L_VFRASE_TEST1  
  VARCHAR2(240);

 BEGIN
  FOR L_VFRASE  100 LOOPIF DBMS_OUTPUT.put_line('Frase é maior que 100 
caracteres');   L_VFRASE  := INSTR( L_VFRASE,' ');   
L_VFRASE_TEST := L_VFRASE + L_VFRASE_TEST;   L_VFRASE_TEST 
:= 0;   L_VQBRLINHA   :=  L_VFRASE + L_valor_novo;   
L_VQBRLINHA   :=  -1;   L_TESTE_QBR   := 
SUBSTR(L_FRA_CERT,L_valor_novo);   L_FRASE   := 
SUBSTR(L_FRA_CERT,L_VALOR_NOVO + LENGTH(L_FRA_CERT));
IF L_VQBRLINHA 10 then
L_L_TESTE_QBR := (CONCAT(L_VFRASE_TEST1,''),L_TESTE_QBR);
   END IF:dbms_output.put_line(L_VFRASE);dbms_output.put_line 
(L_TESTE_QBR);dbms_output.put_line (L_FRASE);
dbms_output.put_line(L_VQBRLINHA);
   END IF;  END LOOP:END;
To: oracle_br@yahoogrupos.com.br
From: ro.wars...@gmail.com
Date: Mon, 11 Feb 2013 15:04:13 -0200
Subject: Re: [oracle_br] Re: Duvida
















 



  



  
  
  Sugestão, antes de tenta executa no SQL*Plus, coloca o teu programa em um

editor tipo bloco de notas e verifica ele. Aí vai começar a aparecer os

erros.

Usa a identação para melhorar a leitura do programa.



[]´s

Roberto



Em 11 de fevereiro de 2013 14:54, gabriel Tomaz

gabriel_tom...@hotmail.comescreveu:





 Qual seria o tipo de dados correto?



 To: oracle_br@yahoogrupos.com.br

 From: ro.wars...@gmail.com

 Date: Mon, 11 Feb 2013 14:47:57 -0200

 Subject: Re: [oracle_br] Re: Duvida





















































   Gabriel,







 Antes de mais nada, esse teu código está funcionando?



 Dando uma olhada aqui eu reparei que:



 - a declaração das



 variáveis L_VQBRLINHA, L_valor_novo, L_TESTE_QBR, L_FRA_cert e L_frase



 estão incorretas - o tipo de dados foi escrito errado;



 - está faltando END LOOP e END IF;







 Corrige esse itens, executa o teu programa e se tiver dúvida posta de novo,



 com o programa funcionando, como está sendo a saída e como tu



 gostaria\entende que deveria ser.







 []´s



 Roberto







 Em 11 de fevereiro de 2013 14:42, gabriel Tomaz



 gabriel_tom...@hotmail.comescreveu:







 



  Com base no uso da SUBSTR alguém poderia validar ou aperfeiçoar o código



  ou da dicas para melhorar.



 



  DECLARE



  L_VFRASE  VARCHAR2(240) := 'Digite uma Frase.';L_VFRASE_TEST



  VARCHAR2(240);L_VFRASE_NOVO VARCHAR2(240);L_VQBRLINHA



  VARCAHR2(240);L_valor_novo  VARCAHR2(240);L_TESTE_QBR



  VARCAHR2(240);L_FRA_certVARCAHR2(240);L_frase



  VARCAHR2(240);L_VFRASE_TEST1VARCHAR2(240);



 



  BEGIN



  FOR L_VFRASE  100 LOOPIF DBMS_OUTPUT.put_line('Frase é maior que 100



  caracteres');L_VFRASE  := INSTR( L_VFRASE,' ');L_VFRASE_TEST



:= L_VFRASE + L_VFRASE_TEST;L_VFRASE_TEST := 0;L_VQBRLINHA



  :=  L_VFRASE + L_valor_novo;L_VQBRLINHA   :=



   -1;L_TESTE_QBR   := SUBSTR(L_FRA_CERT,L_valor_novo);L_FRASE



  := SUBSTR(L_FRA_CERT,L_VALOR_NOVO + LENGTH(L_FRA_CERT));



  IF L_VQBRLINHA 10 then



  L_L_TESTE_QBR := (CONCAT(L_VFRASE_TEST1,''),L_TESTE_QBR);



  END IF:dbms_output.put_line(L_VFRASE);dbms_output.put_line



  (L_TESTE_QBR);dbms_output.put_line (L_FRASE);



  dbms_output.put_line(L_VQBRLINHA);



  END;



  CC: oracle_br@yahoogrupos.com.br



  To: oracle_br@yahoogrupos.com.br



  From: alisson...@yahoo.com.br



  Date: Mon, 11 Feb 2013 13:24:44 -0200



  Subject: Re: [oracle_br] Re: Duvida



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



Select subtr('teste',0,1) from dual;



 



 



 



  Nesse caso o resultado seria a letra 't'



 



 



 



  Enviado via iPhone Alisson Luz



 



 



 



  Em 11/02/2013, às 13:56, gabriel Tomaz gabriel_tom...@hotmail.com



  escreveu:



 



 



 



  



 



  



 



   Estou dando uma lida aqui. Alguém teria algum exemplo dessa função

 SUBTR



  ?No exemplo que digitei abaixo esta correto meu raciocínio?



 



   To: oracle_br@yahoogrupos.com.br



 



   From: jlchia...@yahoo.com.br



 



   Date: Mon, 11 Feb 2013 14:47:54 +



 



   Subject: [oracle_br] Re: Duvida



 



  



 



  



 



  



 



  



 



  



 



  



 



  



 



  



 



  



 



  



 



  



 

RE: [oracle_br] Re: Duvida

2013-02-11 Por tôpico gabriel Tomaz

Alguém pode validar novamente para me onde pode estar errado?DECLARE
 L_VFRASE  VARCHAR2(240) := 'Digite uma Frase.'; 
L_VFRASE_TEST VARCHAR2(240); L_VFRASE_NOVO VARCHAR2(240);   
  L_VQBR_LINHA  VARCAHR2(240); L_VALOR_NOVO  VARCAHR2(240); 
L_TESTE_QBR   VARCAHR2(240); L_FRA_CERT
VARCAHR2(240); L_FRASE   VARCAHR2(240); L_VFRASE_TEST1  
  VARCHAR2(240);

 BEGIN
  FOR L_VFRASE  100 LOOPIF DBMS_OUTPUT.put_line('Frase é maior que 100 
caracteres');   L_VFRASE  := INSTR( L_VFRASE,' ');   
L_VFRASE_TEST := L_VFRASE + L_VFRASE_TEST;   L_VFRASE_TEST 
:= 0;   L_VQBRLINHA   :=  L_VFRASE + L_valor_novo;   
L_VQBRLINHA   :=  -1;   L_TESTE_QBR   := 
SUBSTR(L_FRA_CERT,L_valor_novo);   L_FRASE   := 
SUBSTR(L_FRA_CERT,L_VALOR_NOVO + LENGTH(L_FRA_CERT));
IF L_VQBRLINHA 10 then
L_L_TESTE_QBR := (CONCAT(L_VFRASE_TEST1,''),L_TESTE_QBR);
   END IF:dbms_output.put_line(L_VFRASE);dbms_output.put_line 
(L_TESTE_QBR);dbms_output.put_line (L_FRASE);
dbms_output.put_line(L_VQBRLINHA);
   END IF;  END LOOP:END;To: oracle_br@yahoogrupos.com.br
From: ro.wars...@gmail.com
Date: Mon, 11 Feb 2013 15:12:04 -0200
Subject: Re: [oracle_br] Re: Duvida
















 



  



  
  
  Não te direi diretamente. Olha o teu código e vai ver que o tipo de dado

está correto, mas a escrita está errada.

Como eu disse, tem que analisar o código para ir descobrindo os erros.

Desse jeito, irá aprender.



[]´s

Roberto



Em 11 de fevereiro de 2013 15:08, gabriel Tomaz

gabriel_tom...@hotmail.comescreveu:





 Valeu pela dica. Mas sabe informar qual tipo de dados seria essas minhas

 variáveis ?



 To: oracle_br@yahoogrupos.com.br

 From: ro.wars...@gmail.com

 Date: Mon, 11 Feb 2013 15:04:13 -0200

 Subject: Re: [oracle_br] Re: Duvida





















































   Sugestão, antes de tenta executa no SQL*Plus, coloca o teu programa

 em um



 editor tipo bloco de notas e verifica ele. Aí vai começar a aparecer os



 erros.



 Usa a identação para melhorar a leitura do programa.







 []´s



 Roberto







 Em 11 de fevereiro de 2013 14:54, gabriel Tomaz



 gabriel_tom...@hotmail.comescreveu:







 



  Qual seria o tipo de dados correto?



 



  To: oracle_br@yahoogrupos.com.br



  From: ro.wars...@gmail.com



  Date: Mon, 11 Feb 2013 14:47:57 -0200



  Subject: Re: [oracle_br] Re: Duvida



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



Gabriel,



 



 



 



  Antes de mais nada, esse teu código está funcionando?



 



  Dando uma olhada aqui eu reparei que:



 



  - a declaração das



 



  variáveis L_VQBRLINHA, L_valor_novo, L_TESTE_QBR, L_FRA_cert e L_frase



 



  estão incorretas - o tipo de dados foi escrito errado;



 



  - está faltando END LOOP e END IF;



 



 



 



  Corrige esse itens, executa o teu programa e se tiver dúvida posta de

 novo,



 



  com o programa funcionando, como está sendo a saída e como tu



 



  gostaria\entende que deveria ser.



 



 



 



  []´s



 



  Roberto



 



 



 



  Em 11 de fevereiro de 2013 14:42, gabriel Tomaz



 



  gabriel_tom...@hotmail.comescreveu:



 



 



 



  



 



   Com base no uso da SUBSTR alguém poderia validar ou aperfeiçoar o

 código



 



   ou da dicas para melhorar.



 



  



 



   DECLARE



 



   L_VFRASE  VARCHAR2(240) := 'Digite uma

 Frase.';L_VFRASE_TEST



 



   VARCHAR2(240);L_VFRASE_NOVO VARCHAR2(240);L_VQBRLINHA



 



   VARCAHR2(240);L_valor_novo  VARCAHR2(240);L_TESTE_QBR



 



   VARCAHR2(240);L_FRA_certVARCAHR2(240);L_frase



 



   VARCAHR2(240);L_VFRASE_TEST1VARCHAR2(240);



 



  



 



   BEGIN



 



   FOR L_VFRASE  100 LOOPIF DBMS_OUTPUT.put_line('Frase é maior que 100



 



   caracteres');L_VFRASE  := INSTR( L_VFRASE,'

 ');L_VFRASE_TEST



 



 := L_VFRASE + L_VFRASE_TEST;L_VFRASE_TEST :=

 0;L_VQBRLINHA



 



   :=  L_VFRASE + L_valor_novo;L_VQBRLINHA   :=



 



-1;L_TESTE_QBR   := SUBSTR(L_FRA_CERT,L_valor_novo);L_FRASE



 



   := SUBSTR(L_FRA_CERT,L_VALOR_NOVO + LENGTH(L_FRA_CERT));



 



   IF L_VQBRLINHA 10 then



 



   L_L_TESTE_QBR := (CONCAT(L_VFRASE_TEST1,''),L_TESTE_QBR);



 



   END IF:dbms_output.put_line(L_VFRASE);dbms_output.put_line



 



   (L_TESTE_QBR);dbms_output.put_line (L_FRASE);



 



   dbms_output.put_line(L_VQBRLINHA);



 



   END;



 



   CC: oracle_br@yahoogrupos.com.br



 



   To: oracle_br@yahoogrupos.com.br



 



   From: alisson...@yahoo.com.br



 



   Date: Mon, 11 Feb 2013 13:24:44 -0200



 



   Subject: 

[oracle_br] Problemas com o Datapump

2013-02-11 Por tôpico Régis Pradela
Senhores, boa tarde!

Estou enfrentando alguns problemas utilizado o Datapump, gostaria de saber
se  já viu este problema:

== Ambiente:
Virtualizado com Oracle VM
SO: Oracle Enterprise Linux 5.2
RAC 10.2.0.4
RDBMS 10.2.0.4

Ao iniciar o export do banco de dados o seguinte erro é encontrado:
[oracle@prd migra]$ expdp system/xxx parfile=expdp.par

Export: Release 10.2.0.4.0 - 64bit Production on Monday, 11 February, 2013
16:03:28

Copyright (c) 2003, 2007, Oracle.  All rights reserved.

Connected to: Oracle Database 10g Release 10.2.0.4.0 - 64bit Production
With the Real Application Clusters option
Starting SYSTEM.SYS_EXPORT_SCHEMA_01:  system/ parfile=expdp.par
Estimate in progress using BLOCKS method...
Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA

UDE-8: operation generated ORACLE error 31626
ORA-31626: job does not exist
ORA-06512: at SYS.KUPC$QUE_INT, line 536
ORA-25254: time-out in LISTEN while waiting for a message
ORA-06512: at SYS.DBMS_DATAPUMP, line 2772
ORA-06512: at SYS.DBMS_DATAPUMP, line 3886
ORA-06512: at line 1

Conteúdo do arquivo de parâmetros:
CONTENT=ALL
DIRECTORY=dmpdir
DUMPFILE=expdp_full_prd_%u.dmp
FLASHBACK_TIME=to_timestamp(to_char(sysdate,'-mm-dd
hh24:mi:ss'),'-mm-dd hh24:mi:ss')
FULL=Y
JOB_NAME=expdp_full_prd
LOGFILE=expdp_full_prd.log
EXCLUDE=STATISTICS
FILESIZE=8G

Fiz testes com o full e também por schema.
Verifiquei que todos os componentes do banco de dados estão válidos.
Segui a nota do metalink How To Cleanup Orphaned DataPump Jobs In
DBA_DATAPUMP_JOBS ? [ID 336014.1].

Enfim, acredito ter feito a lição de casa, porem, não encontro resolução
para este problema.

Estou precisando migrar dois bancos de dados (LNX -- AIX) , que são
grandes, e via exp/imp convencional está demorando muito, espero que possam
me ajudar.
Sei que posso utilizar outras formas de migração (RMAN convert + TTS), mas o
cliente espera que os objetos sejam reorganizados, por isto o datapump me
ajudaria bastante.

OBS:  o datapump  via rede (dblink) funciona, mas, demora muito para
executar.

-- 
R.P.
DBA Oracle
Blog: www.rpradela.com.br

Oracle Database 11g Administrator Certified Professional
Oracle Database 11g Administrator Certified Associate
Oracle Database 10g Real Applications Clusters Administrator Certified
Expert (OCE)
Oracle Enterprise Linux Certified Implementation Specialist (OCE)
Oracle Database 11g Data Warehousing Certified Implementation Specialist
Oracle Exadata 11g Certified Implementation Specialist




[As partes desta mensagem que não continham texto foram removidas]



Re: [oracle_br] Problemas com o Datapump

2013-02-11 Por tôpico Régis Pradela
Complementado, encontrei os seguintes erros no trace do DM0:

upprdp: Error 1422 detected in master process DM00.
OPIRIP: Uncaught error 447. Error stack:
ORA-00447: fatal error in background process
ORA-31666: Master process DM00 had an unhandled exception.
ORA-01422: exact fetch returns more than requested number of rows
ORA-06512: at SYS.KUPM$MCP, line 6115
ORA-06512: at SYS.KUPM$MCP, line 11587
ORA-06512: at SYS.KUPM$MCP, line 11520
ORA-06512: at SYS.KUPM$MCP, line 11338
ORA-06512: at SYS.KUPM$MCP, line 925
ORA-01422: exact fetch returns more than requested number of rows
ORA-06512: at line 2

-- 
R.P.
DBA Oracle
Blog: www.rpradela.com.br

Oracle Database 11g Administrator Certified Professional
Oracle Database 11g Administrator Certified Associate
Oracle Database 10g Real Applications Clusters Administrator Certified
Expert (OCE)
Oracle Enterprise Linux Certified Implementation Specialist (OCE)
Oracle Database 11g Data Warehousing Certified Implementation Specialist
Oracle Exadata 11g Certified Implementation Specialist

From:  Régis  Pradela pradel...@yahoo.com.br
Reply-To:  oracle_br@yahoogrupos.com.br
Date:  segunda-feira, 11 de fevereiro de 2013 16:12
To:  oracle_br@yahoogrupos.com.br
Subject:  [oracle_br] Problemas com o Datapump

 
 
 
   

Senhores, boa tarde!

Estou enfrentando alguns problemas utilizado o Datapump, gostaria de saber
se  já viu este problema:

== Ambiente:
Virtualizado com Oracle VM
SO: Oracle Enterprise Linux 5.2
RAC 10.2.0.4
RDBMS 10.2.0.4

Ao iniciar o export do banco de dados o seguinte erro é encontrado:
[oracle@prd migra]$ expdp system/xxx parfile=expdp.par

Export: Release 10.2.0.4.0 - 64bit Production on Monday, 11 February, 2013
16:03:28

Copyright (c) 2003, 2007, Oracle.  All rights reserved.

Connected to: Oracle Database 10g Release 10.2.0.4.0 - 64bit Production
With the Real Application Clusters option
Starting SYSTEM.SYS_EXPORT_SCHEMA_01:  system/ parfile=expdp.par
Estimate in progress using BLOCKS method...
Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA

UDE-8: operation generated ORACLE error 31626
ORA-31626: job does not exist
ORA-06512: at SYS.KUPC$QUE_INT, line 536
ORA-25254: time-out in LISTEN while waiting for a message
ORA-06512: at SYS.DBMS_DATAPUMP, line 2772
ORA-06512: at SYS.DBMS_DATAPUMP, line 3886
ORA-06512: at line 1

Conteúdo do arquivo de parâmetros:
CONTENT=ALL
DIRECTORY=dmpdir
DUMPFILE=expdp_full_prd_%u.dmp
FLASHBACK_TIME=to_timestamp(to_char(sysdate,'-mm-dd
hh24:mi:ss'),'-mm-dd hh24:mi:ss')
FULL=Y
JOB_NAME=expdp_full_prd
LOGFILE=expdp_full_prd.log
EXCLUDE=STATISTICS
FILESIZE=8G

Fiz testes com o full e também por schema.
Verifiquei que todos os componentes do banco de dados estão válidos.
Segui a nota do metalink How To Cleanup Orphaned DataPump Jobs In
DBA_DATAPUMP_JOBS ? [ID 336014.1].

Enfim, acredito ter feito a lição de casa, porem, não encontro resolução
para este problema.

Estou precisando migrar dois bancos de dados (LNX -- AIX) , que são
grandes, e via exp/imp convencional está demorando muito, espero que possam
me ajudar.
Sei que posso utilizar outras formas de migração (RMAN convert + TTS), mas o
cliente espera que os objetos sejam reorganizados, por isto o datapump me
ajudaria bastante.

OBS:  o datapump  via rede (dblink) funciona, mas, demora muito para
executar.

-- 
R.P.
DBA Oracle
Blog: www.rpradela.com.br

Oracle Database 11g Administrator Certified Professional
Oracle Database 11g Administrator Certified Associate
Oracle Database 10g Real Applications Clusters Administrator Certified
Expert (OCE)
Oracle Enterprise Linux Certified Implementation Specialist (OCE)
Oracle Database 11g Data Warehousing Certified Implementation Specialist
Oracle Exadata 11g Certified Implementation Specialist

[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: Problemas com o Datapump

2013-02-11 Por tôpico J. Laurindo Chiappa
  Colega, muito provavelmente é bug Reconhecido : aqui no Grupo mesmo 
http://br.groups.yahoo.com/group/oracle_br/message/111598 mostra um caso aonde 
apareceu esse comportamento em 10.2.0.4, e 
http://arjudba.blogspot.com.br/2010/12/datapump-export-expdp-client-gets-ude-8.html
 também  Veja a nota metalink referente e experimente aplicar o patchset 
10.2.0.5 ao menos, esse cara corrigiu um caminhão de bugs referentes à 
datapump, Enormes chances desse daí estar listado nas correções do 10.2.0.5 
também...
   
Especificamente sobre performance, um outro ponto é que DE FORMA ALGUMA vc 
pode esperar meter um FULL=Y (o que IMPLICA ter apenas UMA sessão de 
exportação, além de exportar INCLUSIVE schemas eventualmente desnecessários) e 
esperar ter a máxima performance, okdoc ? PARALELISMO é o nome do jogo quando 
se fala de exportação em grandes volumes... Da mesma forma, para que vc está 
especificando um FLASHBACK_TIME ?? Via de regra, se vc vai fazer uma migração, 
isso é uma operação PLANEJADA, em que há uma Janela de Manutenção sem usuários 
ativos, sim ?

Além disso eu recomendo (tanto na tentativa de melhorar performance 
quanto de tentar work-aroundar os bugs) que vc considere os pontos abaixo, COM 
A RESSALVA que tanto a quantidade de RAM a alocar, quanto o número de sessões 
de exportação simultâneas, quanto a qtdade de Parallelismo nos SQLs do datapump 
não podem ser NEM demasiados, sob pena de vc criar gargalos, nem inexistentes 
ou muito pequenas - alguma experimentação no SEU ambiente, com o SEU hardware, 
deve ser esclarecedora :

- quando vc vc fazer o paralelismo de execução (ie, ter Múltiplas 
sessões de exportação simultâneas, cada qual fazendo um schema, talvez), tente 
NÃO usar o nome de arquivo com variável(como auquela %u) - tente usar nomes 
FIXOS , para tudo (dump files, logs, diretórios, Tudo)

- não informe o nome de job

- NÃO exporte índices e constraints, pois além de causarem mais I/Os 
eles podem causar má-performance se importados : é MUITO mais eficiente vc 
exportar APENAS e TÃO SOMENTE os dados, os importar, depois exportar o DDL de 
índices e constraints, e finalmente alterar esses DDLs para que eles possam ser 
Aplicados no banco-destino em modo PARALLEL DDL, com NOVALIDATE/NOLOGGING, 
cfrme necessário

- use os parâmetros adequados para performance : no caso do datapump, 
principalmente PARALLEL (qtdade de paralelismo nos SQLs) e ajustes de banco 
(como aumento temporário de PGA e SGA, alocação de LARGE POOL, colocação de 
tabelas em modo NOLOGGING para permitir a IMPORTAÇÃO em direct-mode, etc), E no 
caso do exp tradicional principalmente é usar DIRECT=Y BUFFER=qtdade em bytes 
que vc VAI ter com certeza livre RECORDLENGTH=65535 10485760 , além das opções 
de Exclusão correspondentes...

== Aliás, antes de descartar o exp tradicional, PLZ faça um teste 
JUSTO, colocando as opções de performance como necessário, para ver se 
Realmente o exp não serviria...

[]s
   
 Chiappa

--- Em oracle_br@yahoogrupos.com.br, Régis  Pradela  escreveu

 Senhores, boa tarde!
 
 Estou enfrentando alguns problemas utilizado o Datapump, gostaria de saber
 se  já viu este problema:
 
 == Ambiente:
 Virtualizado com Oracle VM
 SO: Oracle Enterprise Linux 5.2
 RAC 10.2.0.4
 RDBMS 10.2.0.4
 
 Ao iniciar o export do banco de dados o seguinte erro é encontrado:
 [oracle@prd migra]$ expdp system/xxx parfile=expdp.par
 
 Export: Release 10.2.0.4.0 - 64bit Production on Monday, 11 February, 2013
 16:03:28
 
 Copyright (c) 2003, 2007, Oracle.  All rights reserved.
 
 Connected to: Oracle Database 10g Release 10.2.0.4.0 - 64bit Production
 With the Real Application Clusters option
 Starting SYSTEM.SYS_EXPORT_SCHEMA_01:  system/ parfile=expdp.par
 Estimate in progress using BLOCKS method...
 Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
 
 UDE-8: operation generated ORACLE error 31626
 ORA-31626: job does not exist
 ORA-06512: at SYS.KUPC$QUE_INT, line 536
 ORA-25254: time-out in LISTEN while waiting for a message
 ORA-06512: at SYS.DBMS_DATAPUMP, line 2772
 ORA-06512: at SYS.DBMS_DATAPUMP, line 3886
 ORA-06512: at line 1
 
 Conteúdo do arquivo de parâmetros:
 CONTENT=ALL
 DIRECTORY=dmpdir
 DUMPFILE=expdp_full_prd_%u.dmp
 FLASHBACK_TIME=to_timestamp(to_char(sysdate,'-mm-dd
 hh24:mi:ss'),'-mm-dd hh24:mi:ss')
 FULL=Y
 JOB_NAME=expdp_full_prd
 LOGFILE=expdp_full_prd.log
 EXCLUDE=STATISTICS
 FILESIZE=8G
 
 Fiz testes com o full e também por schema.
 Verifiquei que todos os componentes do banco de dados estão válidos.
 Segui a nota do metalink How To Cleanup Orphaned DataPump Jobs In
 DBA_DATAPUMP_JOBS ? [ID 336014.1].
 
 Enfim, acredito ter feito a lição de casa, porem, não encontro resolução
 para este problema.
 
 Estou precisando migrar dois bancos de dados (LNX -- AIX) , que são
 grandes, e via exp/imp convencional está demorando muito, espero que 

RE: [oracle_br] Re: Duvida

2013-02-11 Por tôpico gabriel Tomaz

Caros o jeito certo de declarar as variáveis  seria a assim:
L_NVFRASE  VARCHAR2(240) := 'Digite uma Frase.';L_NVFRASE_TEST 
VARCHAR2(240);L_NVFRASE_NOVOVARCHAR2(240);L_NVQBR_LINHA
VARCAHR2(240);L_NVALOR_NOVO  VARCAHR2(240);L_NTESTE_QBR 
VARCAHR2(240);L_NFRA_CERT   VARCAHR2(240);L_NFRASE 
VARCAHR2(240);L_NVFRASE_TEST1VARCHAR2(240);

To: oracle_br@yahoogrupos.com.br
From: ro.wars...@gmail.com
Date: Mon, 11 Feb 2013 15:44:04 -0200
Subject: Re: [oracle_br] Re: Duvida
















 



  



  
  
  Aí embaixo está o teu programa, devidamente formatado - coisa que disse

para que tu fizesse para enxergar melhor.

O que está de errado aí:

- declaração de variáveis errada. Não me refiro ao tipo de dados, mas como

ele está escrito. Se procura na documentação que o Chiappa passou antes,

vai ver os tipos de dados que o Oracle tem;

- tem : no lugar ;. Isso gera erro e o teu programa não vai executa;

- o primeiro IF tá estranho. O IF serve para comparar valores e decidir o

quê irá fazer. Nesse caso ele não está fazendo isso, além de faltar coisa.



DECLARE

 L_VFRASE  VARCHAR2(240) := 'Digite uma Frase.';

 L_VFRASE_TEST VARCHAR2(240);

 L_VFRASE_NOVO VARCHAR2(240);

 L_VQBR_LINHA  VARCAHR2(240);

 L_VALOR_NOVO  VARCAHR2(240);

 L_TESTE_QBR   VARCAHR2(240);

 L_FRA_CERTVARCAHR2(240);

 L_FRASE   VARCAHR2(240);

 L_VFRASE_TEST1VARCHAR2(240);

BEGIN

 FOR L_VFRASE  100

   LOOP

 IF DBMS_OUTPUT.put_line('Frase é maior que 100 caracteres');

L_VFRASE  := INSTR( L_VFRASE,' ');

L_VFRASE_TEST := L_VFRASE + L_VFRASE_TEST;

L_VFRASE_TEST := 0;

L_VQBRLINHA   :=  L_VFRASE + L_valor_novo;

L_VQBRLINHA   :=  -1;

L_TESTE_QBR   := SUBSTR(L_FRA_CERT,L_valor_novo);

L_FRASE   := SUBSTR(L_FRA_CERT,L_VALOR_NOVO +

LENGTH(L_FRA_CERT));

IF L_VQBRLINHA 10 then

   L_L_TESTE_QBR := (CONCAT(L_VFRASE_TEST1,''),L_TESTE_QBR);

END IF:

dbms_output.put_line(L_VFRASE);

dbms_output.put_line (L_TESTE_QBR);

dbms_output.put_line (L_FRASE);

dbms_output.put_line(L_VQBRLINHA);

 END IF;

   END LOOP:

END;



Quando passar um código para que seja analisado, tenta sempre passar assim,

pois fica mais fácil para o pessoal entender. Muitas vezes nem precisarão

colocar em um editor para ver onde está o problema, podendo fazer isso no

e-mail mesmo.



[]´s

Roberto



Em 11 de fevereiro de 2013 15:21, gabriel Tomaz

gabriel_tom...@hotmail.comescreveu:





 Alguém pode validar novamente para me onde pode estar errado?DECLARE

  L_VFRASE  VARCHAR2(240) := 'Digite uma Frase.';

 L_VFRASE_TEST VARCHAR2(240); L_VFRASE_NOVO

 VARCHAR2(240); L_VQBR_LINHA  VARCAHR2(240); L_VALOR_NOVO

VARCAHR2(240); L_TESTE_QBR   VARCAHR2(240);

 L_FRA_CERTVARCAHR2(240); L_FRASE

 VARCAHR2(240); L_VFRASE_TEST1VARCHAR2(240);



  BEGIN

   FOR L_VFRASE  100 LOOPIF DBMS_OUTPUT.put_line('Frase é maior que

 100 caracteres');   L_VFRASE  := INSTR( L_VFRASE,' ');

   L_VFRASE_TEST := L_VFRASE + L_VFRASE_TEST;   L_VFRASE_TEST

   := 0;   L_VQBRLINHA   :=  L_VFRASE + L_valor_novo;

 L_VQBRLINHA   :=  -1;   L_TESTE_QBR   :=

 SUBSTR(L_FRA_CERT,L_valor_novo);   L_FRASE   :=

 SUBSTR(L_FRA_CERT,L_VALOR_NOVO + LENGTH(L_FRA_CERT));

 IF L_VQBRLINHA 10 then

 L_L_TESTE_QBR := (CONCAT(L_VFRASE_TEST1,''),L_TESTE_QBR);

END IF:dbms_output.put_line(L_VFRASE);dbms_output.put_line

 (L_TESTE_QBR);dbms_output.put_line (L_FRASE);

 dbms_output.put_line(L_VQBRLINHA);

END IF;  END LOOP:END;To: oracle_br@yahoogrupos.com.br

 From: ro.wars...@gmail.com

 Date: Mon, 11 Feb 2013 15:12:04 -0200

 Subject: Re: [oracle_br] Re: Duvida





















































   Não te direi diretamente. Olha o teu código e vai ver que o tipo de

 dado



 está correto, mas a escrita está errada.



 Como eu disse, tem que analisar o código para ir descobrindo os erros.



 Desse jeito, irá aprender.







 []´s



 Roberto







 Em 11 de fevereiro de 2013 15:08, gabriel Tomaz



 gabriel_tom...@hotmail.comescreveu:







 



  Valeu pela dica. Mas sabe informar qual tipo de dados seria essas minhas



  variáveis ?



 



  To: oracle_br@yahoogrupos.com.br



  From: ro.wars...@gmail.com



  Date: Mon, 11 Feb 2013 15:04:13 -0200



  Subject: Re: [oracle_br] Re: Duvida



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 




Re: [oracle_br] Re: Problemas com o Datapump

2013-02-11 Por tôpico Régis Pradela
Chiappa, boa tarde!

Muito obrigado pela resposta, mas o bug indiciado nos links são diferentes
do que enviei, vide mensagem de erro.
Quanto a parte de paralelismo, infelizmente não é um ambiente EE, sendo
assim, vou implementar o mesmo na unha, como tenho diversos schemas no
banco de dados, vou quebrar em diversos processos de exp/imp, por schema.
Quanto ao flashback_time, estou utilizando pois como estou montando uma
homologação do ambiente, o atual produção está sendo utilizado e não posso
para-lo agora, durante a migração não estarei utilizando este parâmetro.

Porem, tenho boas noticias, acabei de encontrar um solução de contorno, em
um forum chinês (god bless google translate!!) encontrei um usuário com o
mesmo erro e dizendo algo do tipo, após ajustar o otimizador, o problema
foi sanado, pois bem, este banco trabalha com o otimizador em modo regra,
sendo assim, mudei o otimizador para custo, e o problema foi sanado.
Como a aplicação recomenda utilizar modo regra, fiz uma trigger para
alterar sempre que for uma sessão do datapump.

Grande abs.
-- 
R.P.
DBA Oracle
Blog: www.rpradela.com.br

Oracle Database 11g Administrator Certified Professional
Oracle Database 11g Administrator Certified Associate
Oracle Database 10g Real Applications Clusters Administrator Certified
Expert (OCE)
Oracle Enterprise Linux Certified Implementation Specialist (OCE)
Oracle Database 11g Data Warehousing Certified Implementation Specialist
Oracle Exadata 11g Certified Implementation Specialist

From:  J. Laurindo Chiappa jlchia...@yahoo.com.br
Reply-To:  oracle_br@yahoogrupos.com.br
Date:  segunda-feira, 11 de fevereiro de 2013 16:55
To:  oracle_br@yahoogrupos.com.br
Subject:  [oracle_br] Re: Problemas com o Datapump

 
 
 
   

  Colega, muito provavelmente é bug Reconhecido : aqui no Grupo mesmo
http://br.groups.yahoo.com/group/oracle_br/message/111598 mostra um caso
aonde apareceu esse comportamento em 10.2.0.4, e
http://arjudba.blogspot.com.br/2010/12/datapump-export-expdp-client-gets-ude
-8.html também  Veja a nota metalink referente e experimente aplicar o
patchset 10.2.0.5 ao menos, esse cara corrigiu um caminhão de bugs
referentes à datapump, Enormes chances desse daí estar listado nas correções
do 10.2.0.5 também...
 
 Especificamente sobre performance, um outro ponto é que DE FORMA ALGUMA vc
pode esperar meter um FULL=Y (o que IMPLICA ter apenas UMA sessão de
exportação, além de exportar INCLUSIVE schemas eventualmente desnecessários)
e esperar ter a máxima performance, okdoc ? PARALELISMO é o nome do jogo
quando se fala de exportação em grandes volumes... Da mesma forma, para que
vc está especificando um FLASHBACK_TIME ?? Via de regra, se vc vai fazer uma
migração, isso é uma operação PLANEJADA, em que há uma Janela de Manutenção
sem usuários ativos, sim ?

Além disso eu recomendo (tanto na tentativa de melhorar performance quanto
de tentar work-aroundar os bugs) que vc considere os pontos abaixo, COM A
RESSALVA que tanto a quantidade de RAM a alocar, quanto o número de sessões
de exportação simultâneas, quanto a qtdade de Parallelismo nos SQLs do
datapump não podem ser NEM demasiados, sob pena de vc criar gargalos, nem
inexistentes ou muito pequenas - alguma experimentação no SEU ambiente, com
o SEU hardware, deve ser esclarecedora :

- quando vc vc fazer o paralelismo de execução (ie, ter Múltiplas sessões de
exportação simultâneas, cada qual fazendo um schema, talvez), tente NÃO usar
o nome de arquivo com variável(como auquela %u) - tente usar nomes FIXOS ,
para tudo (dump files, logs, diretórios, Tudo)

- não informe o nome de job

- NÃO exporte índices e constraints, pois além de causarem mais I/Os eles
podem causar má-performance se importados : é MUITO mais eficiente vc
exportar APENAS e TÃO SOMENTE os dados, os importar, depois exportar o DDL
de índices e constraints, e finalmente alterar esses DDLs para que eles
possam ser Aplicados no banco-destino em modo PARALLEL DDL, com
NOVALIDATE/NOLOGGING, cfrme necessário

- use os parâmetros adequados para performance : no caso do datapump,
principalmente PARALLEL (qtdade de paralelismo nos SQLs) e ajustes de banco
(como aumento temporário de PGA e SGA, alocação de LARGE POOL, colocação de
tabelas em modo NOLOGGING para permitir a IMPORTAÇÃO em direct-mode, etc), E
no caso do exp tradicional principalmente é usar DIRECT=Y BUFFER=qtdade em
bytes que vc VAI ter com certeza livre RECORDLENGTH=65535 10485760 , além
das opções de Exclusão correspondentes...

== Aliás, antes de descartar o exp tradicional, PLZ faça um teste JUSTO,
colocando as opções de performance como necessário, para ver se Realmente o
exp não serviria...

[]s
 
 Chiappa

--- Em oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br
, Régis  Pradela  escreveu

 Senhores, boa tarde!
 
 Estou enfrentando alguns problemas utilizado o Datapump, gostaria de saber
 se  já viu este problema:
 
 == Ambiente:
 Virtualizado com Oracle VM
 SO: Oracle Enterprise Linux 5.2
 RAC 10.2.0.4
 RDBMS 

[oracle_br] Re: Problemas com o Datapump

2013-02-11 Por tôpico J. Laurindo Chiappa
  Sobre o work-around, eu realmente ** jamais ** adivinharia , até porque vc 
Não Disse que era um banco usando o (obsoleto e não-Suportado no 10g) modo 
regra... Sobre o FLASHBACK, como eu disse, será que REALMENTE não teria uma 
janela para vc fazer o export ? Pois SQL por SCN ** tem ** o seu preço para 
performance, e não é desprezível, dependendo da carga/nível de utilização...
  Da mesma maneira, vc não disse que era banco não-EE, então paralelismo de SQL 
realmente tá fora... NÂO DEIXE de experimentar/testar as Outras opções de 
performance que citei, porém, BEM COMO de mensurar a performance do exp 
(bem-ajustado com todos os parãmetros que citei, etc) contra o expdp - teste 
AMBOS via exportação do mesmo schema (só dados, sem constraints/índices/nada), 
e veja o que vai ver...
  Finalmente : o objetivo aqui quando eu falo de quebrar a exportação (talvez 
por schema) é, além do fato de vc EVITAR exportar schemas presentes no seu 
banco mas irrelevantes para a aplicação (exemplo, schema de intermedia/text, 
schemas-exemplos, schemas internos como o SYSTEM, etc, e´como eu disse, vc ter 
múltiplas sessões fazendo exportação : o busílis é que se vc tiver uma sessão 
só, no momento em que ela começa a fazer a exportação de um objeto grande, só 
quando essa exportação terminar é que o próximo objeto é exportado - é MUITO 
mais eficiente vc ter outras sessões de exportação exportando outros objetos 
menores enquanto o grande está sendo cuidado por outra... 
   O ponto a notar é que eu estou Imaginando que mais ou menos as tabelas 
grandes estao distribuídas pelos schemas : caso haja um schema especial que 
contenha quase todas as tabelas grandes, talvez seja mais eficiente vc ter uma 
sessão de export exportando a tabela grande A, outra exportando a tabela grande 
B, outra exportando a tabela grande C, e umas outras duas sessões, talvez, 
exportando os schemas que só tem tabelas pequenas O teu objetivo aqui é 
usar a capacidade do subsistema de I/O no máximo possível, sim ? POR ISSO 
também que seria muito, mas MUITO mesmo, recomendável vc fazer esse export  
numa janela de manutenção, EVITANDO concorrência com usuários, okdoc ? SE vc 
não tiver DE JEITO NENHUM uma janela de manutenção, aí vc VAI pagar o preço do 
FLASHBACK (ou do CONSISTENT=Y no exp tradicional), VAI pagar o preço de não ter 
todaa capacidade de I/O para vc, VAI pagar o preço de ter que ficar indo atrás 
de bloco de rollback/undo (se houver DML concorrente com os dados a exportar), 
não tem milagres...
   
[]s

  Chiappa

--- Em oracle_br@yahoogrupos.com.br, Régis  Pradela  escreveu

 Chiappa, boa tarde!
 
 Muito obrigado pela resposta, mas o bug indiciado nos links são diferentes
 do que enviei, vide mensagem de erro.
 Quanto a parte de paralelismo, infelizmente não é um ambiente EE, sendo
 assim, vou implementar o mesmo na unha, como tenho diversos schemas no
 banco de dados, vou quebrar em diversos processos de exp/imp, por schema.
 Quanto ao flashback_time, estou utilizando pois como estou montando uma
 homologação do ambiente, o atual produção está sendo utilizado e não posso
 para-lo agora, durante a migração não estarei utilizando este parâmetro.
 
 Porem, tenho boas noticias, acabei de encontrar um solução de contorno, em
 um forum chinês (god bless google translate!!) encontrei um usuário com o
 mesmo erro e dizendo algo do tipo, após ajustar o otimizador, o problema
 foi sanado, pois bem, este banco trabalha com o otimizador em modo regra,
 sendo assim, mudei o otimizador para custo, e o problema foi sanado.
 Como a aplicação recomenda utilizar modo regra, fiz uma trigger para
 alterar sempre que for uma sessão do datapump.
 
 Grande abs.
 -- 
 R.P.
 DBA Oracle
 Blog: www.rpradela.com.br
 
 Oracle Database 11g Administrator Certified Professional
 Oracle Database 11g Administrator Certified Associate
 Oracle Database 10g Real Applications Clusters Administrator Certified
 Expert (OCE)
 Oracle Enterprise Linux Certified Implementation Specialist (OCE)
 Oracle Database 11g Data Warehousing Certified Implementation Specialist
 Oracle Exadata 11g Certified Implementation Specialist
 
 From:  J. Laurindo Chiappa 
 Reply-To:  
 Date:  segunda-feira, 11 de fevereiro de 2013 16:55
 To:  
 Subject:  [oracle_br] Re: Problemas com o Datapump
 
  
  
  

 
   Colega, muito provavelmente é bug Reconhecido : aqui no Grupo mesmo
 http://br.groups.yahoo.com/group/oracle_br/message/111598 mostra um caso
 aonde apareceu esse comportamento em 10.2.0.4, e
 http://arjudba.blogspot.com.br/2010/12/datapump-export-expdp-client-gets-ude
 -8.html também  Veja a nota metalink referente e experimente aplicar o
 patchset 10.2.0.5 ao menos, esse cara corrigiu um caminhão de bugs
 referentes à datapump, Enormes chances desse daí estar listado nas correções
 do 10.2.0.5 também...
  
  Especificamente sobre performance, um outro ponto é que DE FORMA ALGUMA vc
 pode esperar meter um FULL=Y (o que IMPLICA ter apenas UMA sessão de
 

Re: [oracle_br] Re: Problemas com o Datapump

2013-02-11 Por tôpico Régis Pradela
Chiappa, 

Sim, eu realmente falhei em não especificar estas informações.
Quanto ao modo regra, eu também havia me esquecido, e como trabalho em
consultoria, trabalho com muitos bancos, e neste caso este ponto acabou
passando desapercebido, apenas ao ler o forum que lembrei deste ponto.
Eu terei uma janela para o GO Live, onde poderei parar os bancos, mas por
enquanto, para homologação, terei que me contentar com o flashback.
Estou fazendo o export full, porem, durante o import estou levando apenas os
schemas que preciso.
No caso deste ambiente, 2 schemas detém 50% do tamanho do bd, então quebrei
em 4 processos, 1 para cada schema grande o outros dois para os schemas
menores.

Grato pelas dicas! Grande abs.

-- 
R.P.
DBA Oracle
Blog: www.rpradela.com.br

Oracle Database 11g Administrator Certified Professional
Oracle Database 11g Administrator Certified Associate
Oracle Database 10g Real Applications Clusters Administrator Certified
Expert (OCE)
Oracle Enterprise Linux Certified Implementation Specialist (OCE)
Oracle Database 11g Data Warehousing Certified Implementation Specialist
Oracle Exadata 11g Certified Implementation Specialist

From:  J. Laurindo Chiappa jlchia...@yahoo.com.br
Reply-To:  oracle_br@yahoogrupos.com.br
Date:  segunda-feira, 11 de fevereiro de 2013 18:49
To:  oracle_br@yahoogrupos.com.br
Subject:  [oracle_br] Re: Problemas com o Datapump

 
 
 
   

  Sobre o work-around, eu realmente ** jamais ** adivinharia , até porque vc
Não Disse que era um banco usando o (obsoleto e não-Suportado no 10g) modo
regra... Sobre o FLASHBACK, como eu disse, será que REALMENTE não teria uma
janela para vc fazer o export ? Pois SQL por SCN ** tem ** o seu preço para
performance, e não é desprezível, dependendo da carga/nível de utilização...
 Da mesma maneira, vc não disse que era banco não-EE, então paralelismo de
SQL realmente tá fora... NÂO DEIXE de experimentar/testar as Outras opções
de performance que citei, porém, BEM COMO de mensurar a performance do exp
(bem-ajustado com todos os parãmetros que citei, etc) contra o expdp - teste
AMBOS via exportação do mesmo schema (só dados, sem
constraints/índices/nada), e veja o que vai ver...
 Finalmente : o objetivo aqui quando eu falo de quebrar a exportação (talvez
por schema) é, além do fato de vc EVITAR exportar schemas presentes no seu
banco mas irrelevantes para a aplicação (exemplo, schema de intermedia/text,
schemas-exemplos, schemas internos como o SYSTEM, etc, e´como eu disse, vc
ter múltiplas sessões fazendo exportação : o busílis é que se vc tiver uma
sessão só, no momento em que ela começa a fazer a exportação de um objeto
grande, só quando essa exportação terminar é que o próximo objeto é
exportado - é MUITO mais eficiente vc ter outras sessões de exportação
exportando outros objetos menores enquanto o grande está sendo cuidado por
outra... 
 O ponto a notar é que eu estou Imaginando que mais ou menos as tabelas
grandes estao distribuídas pelos schemas : caso haja um schema especial que
contenha quase todas as tabelas grandes, talvez seja mais eficiente vc ter
uma sessão de export exportando a tabela grande A, outra exportando a tabela
grande B, outra exportando a tabela grande C, e umas outras duas sessões,
talvez, exportando os schemas que só tem tabelas pequenas O teu objetivo
aqui é usar a capacidade do subsistema de I/O no máximo possível, sim ? POR
ISSO também que seria muito, mas MUITO mesmo, recomendável vc fazer esse
export  numa janela de manutenção, EVITANDO concorrência com usuários, okdoc
? SE vc não tiver DE JEITO NENHUM uma janela de manutenção, aí vc VAI pagar
o preço do FLASHBACK (ou do CONSISTENT=Y no exp tradicional), VAI pagar o
preço de não ter todaa capacidade de I/O para vc, VAI pagar o preço de ter
que ficar indo atrás de bloco de rollback/undo (se houver DML concorrente
com os dados a exportar), não tem milagres...
 
 []s

  Chiappa

--- Em oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br
, Régis  Pradela  escreveu

 Chiappa, boa tarde!
 
 Muito obrigado pela resposta, mas o bug indiciado nos links são diferentes
 do que enviei, vide mensagem de erro.
 Quanto a parte de paralelismo, infelizmente não é um ambiente EE, sendo
 assim, vou implementar o mesmo na unha, como tenho diversos schemas no
 banco de dados, vou quebrar em diversos processos de exp/imp, por schema.
 Quanto ao flashback_time, estou utilizando pois como estou montando uma
 homologação do ambiente, o atual produção está sendo utilizado e não posso
 para-lo agora, durante a migração não estarei utilizando este parâmetro.
 
 Porem, tenho boas noticias, acabei de encontrar um solução de contorno, em
 um forum chinês (god bless google translate!!) encontrei um usuário com o
 mesmo erro e dizendo algo do tipo, após ajustar o otimizador, o problema
 foi sanado, pois bem, este banco trabalha com o otimizador em modo regra,
 sendo assim, mudei o otimizador para custo, e o problema foi sanado.
 Como a aplicação recomenda utilizar modo 

[oracle_br] criar job em outro schema

2013-02-11 Por tôpico netodba
Pessoal, 
Oracle 11gR2.

Estou logado como sys.
Como eu faço pra criar esse job em outro schema, sem me logar no schema.


BEGIN
dbms_scheduler.create_job('OPTIMIZE_CTX_INDEXES',
job_type='PLSQL_BLOCK', 
job_action=
'begin
ctx_ddl.optimize_index (idx_name = ''EREVISTA.DESPACHO_CTX'', optlevel = 
''FULL'');
ctx_ddl.optimize_index (idx_name = ''EREVISTA.AUTOTEXTO_CTX'', optlevel 
=''FULL'');
ctx_ddl.optimize_index (idx_name = ''EREVISTA.BASES_JURIDICAS_CTX'', 
optlevel = ''FULL'');
end;', 
number_of_arguments=0,
start_date='30-AUG-07 11.00.00.00 PM -03:00', 
repeat_interval='FREQ=WEEKLY;INTERVAL=1;BYDAY=THU;BYHOUR=23;BYMINUTE=0;BYSECOND=0',
 
end_date=NULL,
job_class='DEFAULT_JOB_CLASS', enabled=FALSE, 
auto_drop=FALSE,comments=NULL);
dbms_scheduler.enable('OPTIMIZE_CTX_INDEXES');
COMMIT;
END;



[oracle_br] Re: criar job em outro schema

2013-02-11 Por tôpico J. Laurindo Chiappa
  Bom, o manual correspondente (Oracle® Database PL/SQL Packages and Types 
Reference 11g Release 2 (11.2)) no cap. 128 - DBMS_SCHEDULER diz que :
  

Usage Notes

 
To create a job in your own schema, you need to have the CREATE JOB privilege. 
A user with the CREATE ANY JOB privilege can create a job in any schema. If the 
job being created will reside in another schema, the job name must be qualified 
with the schema name.
...



 Então eu imagino que é possível, MAS sinceramente nunca usei : se vc é só o 
DBA (e por isso só tem um usuário DBA, e não sabe a senha do usuário-dono dos 
objetos da Aplicação, até para haver algum tipo de SEPARAÇÂO DE 
RESPONSABILIDADES) não faz sentido vc sair criando seja o que for no schema da 
Aplicação (que imagino ser o seu caso) - teria que ser o responsável pela 
Aplicação a fazer isso  

 []s

   Chiappa

--- Em oracle_br@yahoogrupos.com.br, netodba  escreveu

 Pessoal, 
 Oracle 11gR2.
 
 Estou logado como sys.
 Como eu faço pra criar esse job em outro schema, sem me logar no schema.
 
 
 BEGIN
 dbms_scheduler.create_job('OPTIMIZE_CTX_INDEXES',
 job_type='PLSQL_BLOCK', 
 job_action=
 'begin
 ctx_ddl.optimize_index (idx_name = ''EREVISTA.DESPACHO_CTX'', optlevel 
 = ''FULL'');
 ctx_ddl.optimize_index (idx_name = ''EREVISTA.AUTOTEXTO_CTX'', optlevel 
 =''FULL'');
 ctx_ddl.optimize_index (idx_name = ''EREVISTA.BASES_JURIDICAS_CTX'', 
 optlevel = ''FULL'');
 end;', 
 number_of_arguments=0,
 start_date='30-AUG-07 11.00.00.00 PM -03:00', 
 repeat_interval='FREQ=WEEKLY;INTERVAL=1;BYDAY=THU;BYHOUR=23;BYMINUTE=0;BYSECOND=0',
  
 end_date=NULL,
 job_class='DEFAULT_JOB_CLASS', enabled=FALSE, 
 auto_drop=FALSE,comments=NULL);
 dbms_scheduler.enable('OPTIMIZE_CTX_INDEXES');
 COMMIT;
 END;





Re: [oracle_br] Re: Duvida

2013-02-11 Por tôpico Roberto Warstat
Como eu havia falado em alguma mensagem lá atrás, o IF serve para testar 
valores e decidir qual caminho a ser seguido. Sugiro que procure pela 
documentação sobre IF e ajuste esse que está erro.
Nota que o segundo IF que tu fez está certo.

[]´s
Roberto

Em 11/02/2013 20:56, gabriel Tomaz escreveu:


 O erro estar dando no Primeiro  IF onde estar em negrito.
 O erro e o seguinte:
 ORA-06550:linha 15, coluna 61:PLS-00103: Encontrato o símbolo; 
 quando um dos seguites símbolos era esperado:
 .(*%_=-+/ at is mod remainder not rem then  or!+=or~===and or 
 like like2_like4_likec_between||multiset member 
 SUBMULTISET_ORA-06550:linha34,coluna5:PLS-00103:encontrado o 
 símboloIF quando um dos seguintes símbolos esra esperado:loop
 DECLAREL_VFRASE VARCHAR2(240) := 'Digite uma Frase.';L_VFRASE_TEST 
 VARCHAR2(240);L_VFRASE_NOVO VARCHAR2(240);L_VQBR_LINHA 
 VARCAHAR2(240);L_VALOR_NOVO VARCAHAR2(240);L_TESTE_QBR 
 VARCAHAR2(240);L_FRA_CERT VARCAHAR2(240);L_FRASE 
 VARCAHAR2(240);L_VFRASE_TEST1 VARCHAR2(240);BEGINWHILE L_VFRASE  100 
 LOOPIF DBMS_OUTPUT.put_line('Frase é maior que 100 
 caracteres');L_VFRASE := INSTR( L_VFRASE,' ');L_VFRASE_TEST := 
 L_VFRASE + L_VFRASE_TEST;L_VFRASE_TEST := 0;L_VQBRLINHA := L_VFRASE + 
 L_valor_novo;L_VQBRLINHA := -1;L_TESTE_QBR := 
 SUBSTR(NL_FRA_CERT,NL_valor_novo);L_FRASE := 
 SUBSTR(L_FRA_CERT,L_VALOR_NOVO +LENGTH(L_FRA_CERT));IF L_VQBRLINHA 10 
 thenL_L_TESTE_QBR := CONCAT(concat(L_VFRASE_TEST1,''),L_TESTE_QBR);END 
 IF;dbms_output.put_line(L_VFRASE);dbms_output.put_line 
 (L_TESTE_QBR);dbms_output.put_line 
 (L_FRASE);dbms_output.put_line(L_VQBRLINHA);END IF;END LOOP;END;
 To: oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br
 From: ro.wars...@gmail.com mailto:ro.warstat%40gmail.com
 Date: Mon, 11 Feb 2013 20:37:04 -0200
 Subject: Re: [oracle_br] Re: Duvida


























 Gabriel,



 O grupo não aceita anexos.

 Cola o teu código aqui - FORMATADO - e coloca também a mensagem de erro.



 []´s

 Roberto






[As partes desta mensagem que não continham texto foram removidas]



[oracle_br] Re: criar job em outro schema

2013-02-11 Por tôpico netodba
Vlw Chiappa,

no caso eu estou migrando uma base, e esse job nao migrou legal. Por isso que 
eu queria criar na mão.
Mas te entendi vlw.

--- Em oracle_br@yahoogrupos.com.br, J. Laurindo Chiappa  escreveu

   Bom, o manual correspondente (Oracle® Database PL/SQL Packages and Types 
 Reference 11g Release 2 (11.2)) no cap. 128 - DBMS_SCHEDULER diz que :
   
 
 Usage Notes
 
  
 To create a job in your own schema, you need to have the CREATE JOB 
 privilege. A user with the CREATE ANY JOB privilege can create a job in any 
 schema. If the job being created will reside in another schema, the job name 
 must be qualified with the schema name.
 ...
 
 
 
  Então eu imagino que é possível, MAS sinceramente nunca usei : se vc é só o 
 DBA (e por isso só tem um usuário DBA, e não sabe a senha do usuário-dono dos 
 objetos da Aplicação, até para haver algum tipo de SEPARAÇÂO DE 
 RESPONSABILIDADES) não faz sentido vc sair criando seja o que for no schema 
 da Aplicação (que imagino ser o seu caso) - teria que ser o responsável pela 
 Aplicação a fazer isso  
 
  []s
 
Chiappa
 
 --- Em oracle_br@yahoogrupos.com.br, netodba  escreveu
 
  Pessoal, 
  Oracle 11gR2.
  
  Estou logado como sys.
  Como eu faço pra criar esse job em outro schema, sem me logar no schema.
  
  
  BEGIN
  dbms_scheduler.create_job('OPTIMIZE_CTX_INDEXES',
  job_type='PLSQL_BLOCK', 
  job_action=
  'begin
  ctx_ddl.optimize_index (idx_name = ''EREVISTA.DESPACHO_CTX'', optlevel 
  = ''FULL'');
  ctx_ddl.optimize_index (idx_name = ''EREVISTA.AUTOTEXTO_CTX'', 
  optlevel =''FULL'');
  ctx_ddl.optimize_index (idx_name = ''EREVISTA.BASES_JURIDICAS_CTX'', 
  optlevel = ''FULL'');
  end;', 
  number_of_arguments=0,
  start_date='30-AUG-07 11.00.00.00 PM -03:00', 
  repeat_interval='FREQ=WEEKLY;INTERVAL=1;BYDAY=THU;BYHOUR=23;BYMINUTE=0;BYSECOND=0',
   
  end_date=NULL,
  job_class='DEFAULT_JOB_CLASS', enabled=FALSE, 
  auto_drop=FALSE,comments=NULL);
  dbms_scheduler.enable('OPTIMIZE_CTX_INDEXES');
  COMMIT;
  END;
 





RE: [oracle_br] Re: Duvida

2013-02-11 Por tôpico gabriel Tomaz

Eu fiz algumas alterações no codigo mas não deu certo.Se alguém pode me ajudar
O erro que aparece e o mesmo.

To: oracle_br@yahoogrupos.com.br
From: ro.wars...@gmail.com
Date: Mon, 11 Feb 2013 21:02:32 -0200
Subject: Re: [oracle_br] Re: Duvida
















 



  



  
  
  Como eu havia falado em alguma mensagem lá atrás, o IF serve para testar 

valores e decidir qual caminho a ser seguido. Sugiro que procure pela 

documentação sobre IF e ajuste esse que está erro.

Nota que o segundo IF que tu fez está certo.



[]´s

Roberto



Em 11/02/2013 20:56, gabriel Tomaz escreveu:





 O erro estar dando no Primeiro  IF onde estar em negrito.

 O erro e o seguinte:

 ORA-06550:linha 15, coluna 61:PLS-00103: Encontrato o símbolo; 

 quando um dos seguites símbolos era esperado:

 .(*%_=-+/ at is mod remainder not rem then  or!+=or~===and or 

 like like2_like4_likec_between||multiset member 

 SUBMULTISET_ORA-06550:linha34,coluna5:PLS-00103:encontrado o 

 símboloIF quando um dos seguintes símbolos esra esperado:loop

 DECLAREL_VFRASE VARCHAR2(240) := 'Digite uma Frase.';L_VFRASE_TEST 

 VARCHAR2(240);L_VFRASE_NOVO VARCHAR2(240);L_VQBR_LINHA 

 VARCAHAR2(240);L_VALOR_NOVO VARCAHAR2(240);L_TESTE_QBR 

 VARCAHAR2(240);L_FRA_CERT VARCAHAR2(240);L_FRASE 

 VARCAHAR2(240);L_VFRASE_TEST1 VARCHAR2(240);BEGINWHILE L_VFRASE  100 

 LOOPIF DBMS_OUTPUT.put_line('Frase é maior que 100 

 caracteres');L_VFRASE := INSTR( L_VFRASE,' ');L_VFRASE_TEST := 

 L_VFRASE + L_VFRASE_TEST;L_VFRASE_TEST := 0;L_VQBRLINHA := L_VFRASE + 

 L_valor_novo;L_VQBRLINHA := -1;L_TESTE_QBR := 

 SUBSTR(NL_FRA_CERT,NL_valor_novo);L_FRASE := 

 SUBSTR(L_FRA_CERT,L_VALOR_NOVO +LENGTH(L_FRA_CERT));IF L_VQBRLINHA 10 

 thenL_L_TESTE_QBR := CONCAT(concat(L_VFRASE_TEST1,''),L_TESTE_QBR);END 

 IF;dbms_output.put_line(L_VFRASE);dbms_output.put_line 

 (L_TESTE_QBR);dbms_output.put_line 

 (L_FRASE);dbms_output.put_line(L_VQBRLINHA);END IF;END LOOP;END;

 To: oracle_br@yahoogrupos.com.br 

 From: ro.wars...@gmail.com 

 Date: Mon, 11 Feb 2013 20:37:04 -0200

 Subject: Re: [oracle_br] Re: Duvida





















































 Gabriel,







 O grupo não aceita anexos.



 Cola o teu código aqui - FORMATADO - e coloca também a mensagem de erro.







 []´s



 Roberto









[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

* 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:
oracle_br-unsubscr...@yahoogrupos.com.br

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html




RE: [oracle_br] Re: Duvida

2013-02-11 Por tôpico gabriel Tomaz

Uma das alterações que fiz foi colocar um while mas também não deu certo, se 
alguém pode ajudar

BEGINWHILE L_cont  Length(L_VFRASE)+  100 LOOPDBMS_OUTPUT.put_line('Frase é 
maior que 100 caracteres');  WHILE L_VFRASE   100 LOOPIF L_VFRASE := INSTR( 
L_VFRASE,' ');
 To: oracle_br@yahoogrupos.com.br
 From: gabriel_tom...@hotmail.com
 Date: Tue, 12 Feb 2013 00:20:08 +
 Subject: RE: [oracle_br] Re: Duvida
 
 
 Eu fiz algumas alterações no codigo mas não deu certo.Se alguém pode me ajudar
 O erro que aparece e o mesmo.
 
 To: oracle_br@yahoogrupos.com.br
 From: ro.wars...@gmail.com
 Date: Mon, 11 Feb 2013 21:02:32 -0200
 Subject: Re: [oracle_br] Re: Duvida
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  
 
 
 
   
 
 
 
   
   
   Como eu havia falado em alguma mensagem lá atrás, o IF serve para 
 testar 
 
 valores e decidir qual caminho a ser seguido. Sugiro que procure pela 
 
 documentação sobre IF e ajuste esse que está erro.
 
 Nota que o segundo IF que tu fez está certo.
 
 
 
 []´s
 
 Roberto
 
 
 
 Em 11/02/2013 20:56, gabriel Tomaz escreveu:
 
 
 
 
 
  O erro estar dando no Primeiro  IF onde estar em negrito.
 
  O erro e o seguinte:
 
  ORA-06550:linha 15, coluna 61:PLS-00103: Encontrato o símbolo; 
 
  quando um dos seguites símbolos era esperado:
 
  .(*%_=-+/ at is mod remainder not rem then  or!+=or~===and or 
 
  like like2_like4_likec_between||multiset member 
 
  SUBMULTISET_ORA-06550:linha34,coluna5:PLS-00103:encontrado o 
 
  símboloIF quando um dos seguintes símbolos esra esperado:loop
 
  DECLAREL_VFRASE VARCHAR2(240) := 'Digite uma Frase.';L_VFRASE_TEST 
 
  VARCHAR2(240);L_VFRASE_NOVO VARCHAR2(240);L_VQBR_LINHA 
 
  VARCAHAR2(240);L_VALOR_NOVO VARCAHAR2(240);L_TESTE_QBR 
 
  VARCAHAR2(240);L_FRA_CERT VARCAHAR2(240);L_FRASE 
 
  VARCAHAR2(240);L_VFRASE_TEST1 VARCHAR2(240);BEGINWHILE L_VFRASE  100 
 
  LOOPIF DBMS_OUTPUT.put_line('Frase é maior que 100 
 
  caracteres');L_VFRASE := INSTR( L_VFRASE,' ');L_VFRASE_TEST := 
 
  L_VFRASE + L_VFRASE_TEST;L_VFRASE_TEST := 0;L_VQBRLINHA := L_VFRASE + 
 
  L_valor_novo;L_VQBRLINHA := -1;L_TESTE_QBR := 
 
  SUBSTR(NL_FRA_CERT,NL_valor_novo);L_FRASE := 
 
  SUBSTR(L_FRA_CERT,L_VALOR_NOVO +LENGTH(L_FRA_CERT));IF L_VQBRLINHA 10 
 
  thenL_L_TESTE_QBR := CONCAT(concat(L_VFRASE_TEST1,''),L_TESTE_QBR);END 
 
  IF;dbms_output.put_line(L_VFRASE);dbms_output.put_line 
 
  (L_TESTE_QBR);dbms_output.put_line 
 
  (L_FRASE);dbms_output.put_line(L_VQBRLINHA);END IF;END LOOP;END;
 
  To: oracle_br@yahoogrupos.com.br 
 
  From: ro.wars...@gmail.com 
 
  Date: Mon, 11 Feb 2013 20:37:04 -0200
 
  Subject: Re: [oracle_br] Re: Duvida
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  Gabriel,
 
 
 
 
 
 
 
  O grupo não aceita anexos.
 
 
 
  Cola o teu código aqui - FORMATADO - e coloca também a mensagem de erro.
 
 
 
 
 
 
 
  []´s
 
 
 
  Roberto
 
 
 
 
 
 
 
 
 
 [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: Duvida

2013-02-11 Por tôpico Roberto Warstat
Gabriel,

Coloca todo o teu código modificado. Só uma parte é difícil, pois não 
sabemos o quê foi substituído pelo quê.

[]´s
Roberto

Em 11/02/2013 22:35, gabriel Tomaz escreveu:


 Uma das alterações que fiz foi colocar um while mas também não deu 
 certo, se alguém pode ajudar

 BEGINWHILE L_cont  Length(L_VFRASE)+ 100 
 LOOPDBMS_OUTPUT.put_line('Frase é maior que 100 caracteres'); WHILE 
 L_VFRASE  100 LOOPIF L_VFRASE := INSTR( L_VFRASE,' ');
  To: oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br
  From: gabriel_tom...@hotmail.com mailto:gabriel_tomazc%40hotmail.com
  Date: Tue, 12 Feb 2013 00:20:08 +
  Subject: RE: [oracle_br] Re: Duvida
 
 
  Eu fiz algumas alterações no codigo mas não deu certo.Se alguém pode 
 me ajudar
  O erro que aparece e o mesmo.
 
  To: oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br
  From: ro.wars...@gmail.com mailto:ro.warstat%40gmail.com
  Date: Mon, 11 Feb 2013 21:02:32 -0200
  Subject: Re: [oracle_br] Re: Duvida
 
 
  Como eu havia falado em alguma mensagem lá atrás, o IF serve para 
 testar
 
  valores e decidir qual caminho a ser seguido. Sugiro que procure pela
 
  documentação sobre IF e ajuste esse que está erro.
 
  Nota que o segundo IF que tu fez está certo.
 
 
 
  []´s
 
  Roberto
 
 
 
  Em 11/02/2013 20:56, gabriel Tomaz escreveu:
 
  
 
  
 
   O erro estar dando no Primeiro  IF onde estar em negrito.
 
   O erro e o seguinte:
 
   ORA-06550:linha 15, coluna 61:PLS-00103: Encontrato o símbolo;
 
   quando um dos seguites símbolos era esperado:
 
   .(*%_=-+/ at is mod remainder not rem then  or!+=or~===and or
 
   like like2_like4_likec_between||multiset member
 
   SUBMULTISET_ORA-06550:linha34,coluna5:PLS-00103:encontrado o
 
   símboloIF quando um dos seguintes símbolos esra esperado:loop
 
   DECLAREL_VFRASE VARCHAR2(240) := 'Digite uma Frase.';L_VFRASE_TEST
 
   VARCHAR2(240);L_VFRASE_NOVO VARCHAR2(240);L_VQBR_LINHA
 
   VARCAHAR2(240);L_VALOR_NOVO VARCAHAR2(240);L_TESTE_QBR
 
   VARCAHAR2(240);L_FRA_CERT VARCAHAR2(240);L_FRASE
 
   VARCAHAR2(240);L_VFRASE_TEST1 VARCHAR2(240);BEGINWHILE L_VFRASE  100
 
   LOOPIF DBMS_OUTPUT.put_line('Frase é maior que 100
 
   caracteres');L_VFRASE := INSTR( L_VFRASE,' ');L_VFRASE_TEST :=
 
   L_VFRASE + L_VFRASE_TEST;L_VFRASE_TEST := 0;L_VQBRLINHA := L_VFRASE +
 
   L_valor_novo;L_VQBRLINHA := -1;L_TESTE_QBR :=
 
   SUBSTR(NL_FRA_CERT,NL_valor_novo);L_FRASE :=
 
   SUBSTR(L_FRA_CERT,L_VALOR_NOVO +LENGTH(L_FRA_CERT));IF L_VQBRLINHA 
 10
 
   thenL_L_TESTE_QBR := 
 CONCAT(concat(L_VFRASE_TEST1,''),L_TESTE_QBR);END
 
   IF;dbms_output.put_line(L_VFRASE);dbms_output.put_line
 
   (L_TESTE_QBR);dbms_output.put_line
 
   (L_FRASE);dbms_output.put_line(L_VQBRLINHA);END IF;END LOOP;END;
 
   To: oracle_br@yahoogrupos.com.br 
 mailto:oracle_br%40yahoogrupos.com.br
 
   From: ro.wars...@gmail.com mailto:ro.warstat%40gmail.com
 
   Date: Mon, 11 Feb 2013 20:37:04 -0200
 
   Subject: Re: [oracle_br] Re: Duvida
 
 
   Gabriel,
 
   O grupo não aceita anexos.
 
 
   Cola o teu código aqui - FORMATADO - e coloca também a mensagem de 
 erro.
 
 
   []´s
   Roberto



[As partes desta mensagem que não continham texto foram removidas]



RE: [oracle_br] Re: Duvida

2013-02-11 Por tôpico gabriel Tomaz


A alteração que fiz para contorna o erro não sortiu efeito . Peso ajuda.
Segue código 
DECLAREL_VFRASE VARCHAR2(240) := 'Digite uma 
Frase.';L_VFRASE_TESTVARCHAR2(240);L_VFRASE_NOVO
VARCHAR2(240);L_VQBR_LINHA VARCHAR2(240);L_VALOR_NOVO 
VARCHAR2(240);L_TESTE_QBR  VARCHAR2(240);L_FRA_CERT   
VARCHAR2(240);L_FRASE  VARCHAR2(240);L_VFRASE_TEST1   
VARCHAR2(240);L_cont   VARCHAR2(240);  BEGINWHILE 
L_cont  Length(L_VFRASE)+  100 LOOPDBMS_OUTPUT.put_line('Frase é maior que 100 
caracteres');  WHILE L_VFRASE   100 LOOPIF L_VFRASE := INSTR( L_VFRASE,' 
');L_VFRASE_TEST := L_VFRASE + L_VFRASE_TEST;L_VFRASE_TEST := 0;L_VQBRLINHA := 
L_VFRASE + L_valor_novo;L_VQBRLINHA := -1;L_TESTE_QBR := 
SUBSTR(NL_FRA_CERT,NL_valor_novo);L_FRASE := SUBSTR(L_FRA_CERT,L_VALOR_NOVO 
+LENGTH(L_FRA_CERT));IF L_VQBRLINHA 10 thenL_L_TESTE_QBR := 
CONCAT(concat(L_VFRASE_TEST1,''),L_TESTE_QBR);END 
IF;dbms_output.put_line(L_VFRASE);dbms_output.put_line 
(L_TESTE_QBR);dbms_output.put_line 
(L_FRASE);dbms_output.put_line(L_VQBRLINHA);END IF;END LOOP;END;





To: oracle_br@yahoogrupos.com.br
From: ro.wars...@gmail.com
Date: Mon, 11 Feb 2013 22:51:19 -0200
Subject: Re: [oracle_br] Re: Duvida
















 



  



  
  
  Gabriel,



Coloca todo o teu código modificado. Só uma parte é difícil, pois não 

sabemos o quê foi substituído pelo quê.



[]´s

Roberto



Em 11/02/2013 22:35, gabriel Tomaz escreveu:





 Uma das alterações que fiz foi colocar um while mas também não deu 

 certo, se alguém pode ajudar



 BEGINWHILE L_cont  Length(L_VFRASE)+ 100 

 LOOPDBMS_OUTPUT.put_line('Frase é maior que 100 caracteres'); WHILE 

 L_VFRASE  100 LOOPIF L_VFRASE := INSTR( L_VFRASE,' ');

  To: oracle_br@yahoogrupos.com.br 

  From: gabriel_tom...@hotmail.com 

  Date: Tue, 12 Feb 2013 00:20:08 +

  Subject: RE: [oracle_br] Re: Duvida

 

 

  Eu fiz algumas alterações no codigo mas não deu certo.Se alguém pode 

 me ajudar

  O erro que aparece e o mesmo.

 

  To: oracle_br@yahoogrupos.com.br 

  From: ro.wars...@gmail.com 

  Date: Mon, 11 Feb 2013 21:02:32 -0200

  Subject: Re: [oracle_br] Re: Duvida

 

 

  Como eu havia falado em alguma mensagem lá atrás, o IF serve para 

 testar

 

  valores e decidir qual caminho a ser seguido. Sugiro que procure pela

 

  documentação sobre IF e ajuste esse que está erro.

 

  Nota que o segundo IF que tu fez está certo.

 

 

 

  []´s

 

  Roberto

 

 

 

  Em 11/02/2013 20:56, gabriel Tomaz escreveu:

 

  

 

  

 

   O erro estar dando no Primeiro  IF onde estar em negrito.

 

   O erro e o seguinte:

 

   ORA-06550:linha 15, coluna 61:PLS-00103: Encontrato o símbolo;

 

   quando um dos seguites símbolos era esperado:

 

   .(*%_=-+/ at is mod remainder not rem then  or!+=or~===and or

 

   like like2_like4_likec_between||multiset member

 

   SUBMULTISET_ORA-06550:linha34,coluna5:PLS-00103:encontrado o

 

   símboloIF quando um dos seguintes símbolos esra esperado:loop

 

   DECLAREL_VFRASE VARCHAR2(240) := 'Digite uma Frase.';L_VFRASE_TEST

 

   VARCHAR2(240);L_VFRASE_NOVO VARCHAR2(240);L_VQBR_LINHA

 

   VARCAHAR2(240);L_VALOR_NOVO VARCAHAR2(240);L_TESTE_QBR

 

   VARCAHAR2(240);L_FRA_CERT VARCAHAR2(240);L_FRASE

 

   VARCAHAR2(240);L_VFRASE_TEST1 VARCHAR2(240);BEGINWHILE L_VFRASE  100

 

   LOOPIF DBMS_OUTPUT.put_line('Frase é maior que 100

 

   caracteres');L_VFRASE := INSTR( L_VFRASE,' ');L_VFRASE_TEST :=

 

   L_VFRASE + L_VFRASE_TEST;L_VFRASE_TEST := 0;L_VQBRLINHA := L_VFRASE +

 

   L_valor_novo;L_VQBRLINHA := -1;L_TESTE_QBR :=

 

   SUBSTR(NL_FRA_CERT,NL_valor_novo);L_FRASE :=

 

   SUBSTR(L_FRA_CERT,L_VALOR_NOVO +LENGTH(L_FRA_CERT));IF L_VQBRLINHA 

 10

 

   thenL_L_TESTE_QBR := 

 CONCAT(concat(L_VFRASE_TEST1,''),L_TESTE_QBR);END

 

   IF;dbms_output.put_line(L_VFRASE);dbms_output.put_line

 

   (L_TESTE_QBR);dbms_output.put_line

 

   (L_FRASE);dbms_output.put_line(L_VQBRLINHA);END IF;END LOOP;END;

 

   To: oracle_br@yahoogrupos.com.br 

 

 

   From: ro.wars...@gmail.com 

 

   Date: Mon, 11 Feb 2013 20:37:04 -0200

 

   Subject: Re: [oracle_br] Re: Duvida

 

 

   Gabriel,

 

   O grupo não aceita anexos.

 

 

   Cola o teu código aqui - FORMATADO - e coloca também a mensagem de 

 erro.

 

 

   []´s

   Roberto





[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/ 

Re: [oracle_br] Re: Duvida

2013-02-11 Por tôpico Eduardo Schurtz
Gabriel, dei uma olhada no seu código e vi que você está cometendo erros
muito básicos de programação:

IF sem condição...
WHILE sem pé nem cabeça... e infinito...
Inicializando uma variável com texto, depois jogando valores numéricos por
cima...

Acho que você deveria dar uma estudada no básico antes de começar a
escrever código... Pode até brincar no código, mas antes de perguntar em um
grupo na Internet, deveria no mínimo dar uma pesquisada/estudada... e só
perguntar se não conseguir mais andar para nenhum lado! Tem erros muito
básicos aí...

Peguei seu código, dei uma formatada e coloquei alguns comentários, pode
pegar no link abaixo:

https://dl.dropbox.com/u/6848776/query_gabriel.sql

Att,



--
Eduardo Schurtz


2013/2/11 gabriel Tomaz gabriel_tom...@hotmail.com

 **



 Uma das alterações que fiz foi colocar um while mas também não deu certo,
 se alguém pode ajudar

 BEGINWHILE L_cont  Length(L_VFRASE)+ 100 LOOPDBMS_OUTPUT.put_line('Frase
 é maior que 100 caracteres'); WHILE L_VFRASE  100 LOOPIF L_VFRASE :=
 INSTR( L_VFRASE,' ');
  To: oracle_br@yahoogrupos.com.br
  From: gabriel_tom...@hotmail.com
  Date: Tue, 12 Feb 2013 00:20:08 +

  Subject: RE: [oracle_br] Re: Duvida
 
 
  Eu fiz algumas alterações no codigo mas não deu certo.Se alguém pode me
 ajudar
  O erro que aparece e o mesmo.
 
  To: oracle_br@yahoogrupos.com.br
  From: ro.wars...@gmail.com
  Date: Mon, 11 Feb 2013 21:02:32 -0200
  Subject: Re: [oracle_br] Re: Duvida
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  Como eu havia falado em alguma mensagem lá atrás, o IF serve para testar
 
  valores e decidir qual caminho a ser seguido. Sugiro que procure pela
 
  documentação sobre IF e ajuste esse que está erro.
 
  Nota que o segundo IF que tu fez está certo.
 
 
 
  []´s
 
  Roberto
 
 
 
  Em 11/02/2013 20:56, gabriel Tomaz escreveu:
 
  
 
  
 
   O erro estar dando no Primeiro  IF onde estar em negrito.
 
   O erro e o seguinte:
 
   ORA-06550:linha 15, coluna 61:PLS-00103: Encontrato o símbolo;
 
   quando um dos seguites símbolos era esperado:
 
   .(*%_=-+/ at is mod remainder not rem then  or!+=or~===and or
 
   like like2_like4_likec_between||multiset member
 
   SUBMULTISET_ORA-06550:linha34,coluna5:PLS-00103:encontrado o
 
   símboloIF quando um dos seguintes símbolos esra esperado:loop
 
   DECLAREL_VFRASE VARCHAR2(240) := 'Digite uma Frase.';L_VFRASE_TEST
 
   VARCHAR2(240);L_VFRASE_NOVO VARCHAR2(240);L_VQBR_LINHA
 
   VARCAHAR2(240);L_VALOR_NOVO VARCAHAR2(240);L_TESTE_QBR
 
   VARCAHAR2(240);L_FRA_CERT VARCAHAR2(240);L_FRASE
 
   VARCAHAR2(240);L_VFRASE_TEST1 VARCHAR2(240);BEGINWHILE L_VFRASE  100
 
   LOOPIF DBMS_OUTPUT.put_line('Frase é maior que 100
 
   caracteres');L_VFRASE := INSTR( L_VFRASE,' ');L_VFRASE_TEST :=
 
   L_VFRASE + L_VFRASE_TEST;L_VFRASE_TEST := 0;L_VQBRLINHA := L_VFRASE +
 
   L_valor_novo;L_VQBRLINHA := -1;L_TESTE_QBR :=
 
   SUBSTR(NL_FRA_CERT,NL_valor_novo);L_FRASE :=
 
   SUBSTR(L_FRA_CERT,L_VALOR_NOVO +LENGTH(L_FRA_CERT));IF L_VQBRLINHA 10
 
   thenL_L_TESTE_QBR := CONCAT(concat(L_VFRASE_TEST1,''),L_TESTE_QBR);END
 
   IF;dbms_output.put_line(L_VFRASE);dbms_output.put_line
 
   (L_TESTE_QBR);dbms_output.put_line
 
   (L_FRASE);dbms_output.put_line(L_VQBRLINHA);END IF;END LOOP;END;
 
   To: oracle_br@yahoogrupos.com.br
 
   From: ro.wars...@gmail.com
 
   Date: Mon, 11 Feb 2013 20:37:04 -0200
 
   Subject: Re: [oracle_br] Re: Duvida
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
   Gabriel,
 
  
 
  
 
  
 
   O grupo não aceita anexos.
 
  
 
   Cola o teu código aqui - FORMATADO - e coloca também a mensagem de
 erro.
 
  
 
  
 
  
 
   []´s
 
  
 
   Roberto
 
  
 
  
 
  
 
 
 
  [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]





--
Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: 

Re: [oracle_br] Re: criar job em outro schema

2013-02-11 Por tôpico Eriovaldo Andrietta
Olá Pessoal,

Vou dar um palpite :
Como o Neto usou a palavra migração, imagino que já aconteceu e precisa
completar, levando o que existia num schema para outro schema em outra
instance talvez.
O que acha de usar dbms_metadata para extrair os jobs no schema source e
criar manualmente no destino exatamente como ele existia ?
dá certo?
Espero ter ajudado.

Att
Eriovaldo


2013/2/11 netodba neto.lon...@gmail.com

 **


 Vlw Chiappa,

 no caso eu estou migrando uma base, e esse job nao migrou legal. Por isso
 que eu queria criar na mão.
 Mas te entendi vlw.

 --- Em oracle_br@yahoogrupos.com.br, J. Laurindo Chiappa escreveu

 
  Bom, o manual correspondente (Oracle® Database PL/SQL Packages and
 Types Reference 11g Release 2 (11.2)) no cap. 128 - DBMS_SCHEDULER diz que
 :
 
  
  Usage Notes
 
  
  To create a job in your own schema, you need to have the CREATE JOB
 privilege. A user with the CREATE ANY JOB privilege can create a job in any
 schema. If the job being created will reside in another schema, the job
 name must be qualified with the schema name.
  ...
  
 
 
  Então eu imagino que é possível, MAS sinceramente nunca usei : se vc é
 só o DBA (e por isso só tem um usuário DBA, e não sabe a senha do
 usuário-dono dos objetos da Aplicação, até para haver algum tipo de
 SEPARAÇÂO DE RESPONSABILIDADES) não faz sentido vc sair criando seja o que
 for no schema da Aplicação (que imagino ser o seu caso) - teria que ser o
 responsável pela Aplicação a fazer isso 
 
  []s
 
  Chiappa
 
  --- Em oracle_br@yahoogrupos.com.br, netodba escreveu
  
   Pessoal,
   Oracle 11gR2.
  
   Estou logado como sys.
   Como eu faço pra criar esse job em outro schema, sem me logar no
 schema.
  
  
   BEGIN
   dbms_scheduler.create_job('OPTIMIZE_CTX_INDEXES',
   job_type='PLSQL_BLOCK',
   job_action=
   'begin
   ctx_ddl.optimize_index (idx_name = ''EREVISTA.DESPACHO_CTX'',
 optlevel = ''FULL'');
   ctx_ddl.optimize_index (idx_name = ''EREVISTA.AUTOTEXTO_CTX'',
 optlevel =''FULL'');
   ctx_ddl.optimize_index (idx_name = ''EREVISTA.BASES_JURIDICAS_CTX'',
 optlevel = ''FULL'');
   end;',
   number_of_arguments=0,
   start_date='30-AUG-07 11.00.00.00 PM -03:00',
  
 repeat_interval='FREQ=WEEKLY;INTERVAL=1;BYDAY=THU;BYHOUR=23;BYMINUTE=0;BYSECOND=0',

   end_date=NULL,
   job_class='DEFAULT_JOB_CLASS', enabled=FALSE,
 auto_drop=FALSE,comments=NULL);
   dbms_scheduler.enable('OPTIMIZE_CTX_INDEXES');
   COMMIT;
   END;
  
 

  



[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

* 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:
oracle_br-unsubscr...@yahoogrupos.com.br

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html




RE: [oracle_br] Re: Duvida

2013-02-11 Por tôpico gabriel Tomaz

Obrigado pela ajuda pessoal estou apenas estudando e fazendo alguns 
exercícios.Mas valeu pelas dicas vou me aprimorar mais meu SQL e minha 
logica.Mas nesse caso como ficaria a resolução desse exercício? 
 To: oracle_br@yahoogrupos.com.br
 From: eduardo.schu...@gmail.com
 Date: Mon, 11 Feb 2013 23:19:22 -0200
 Subject: Re: [oracle_br] Re: Duvida
 
 Gabriel, dei uma olhada no seu código e vi que você está cometendo erros
 muito básicos de programação:
 
 IF sem condição...
 WHILE sem pé nem cabeça... e infinito...
 Inicializando uma variável com texto, depois jogando valores numéricos por
 cima...
 
 Acho que você deveria dar uma estudada no básico antes de começar a
 escrever código... Pode até brincar no código, mas antes de perguntar em um
 grupo na Internet, deveria no mínimo dar uma pesquisada/estudada... e só
 perguntar se não conseguir mais andar para nenhum lado! Tem erros muito
 básicos aí...
 
 Peguei seu código, dei uma formatada e coloquei alguns comentários, pode
 pegar no link abaixo:
 
 https://dl.dropbox.com/u/6848776/query_gabriel.sql
 
 Att,
 
 
 
 --
 Eduardo Schurtz
 
 
 2013/2/11 gabriel Tomaz gabriel_tom...@hotmail.com
 
  **
 
 
 
  Uma das alterações que fiz foi colocar um while mas também não deu certo,
  se alguém pode ajudar
 
  BEGINWHILE L_cont  Length(L_VFRASE)+ 100 LOOPDBMS_OUTPUT.put_line('Frase
  é maior que 100 caracteres'); WHILE L_VFRASE  100 LOOPIF L_VFRASE :=
  INSTR( L_VFRASE,' ');
   To: oracle_br@yahoogrupos.com.br
   From: gabriel_tom...@hotmail.com
   Date: Tue, 12 Feb 2013 00:20:08 +
 
   Subject: RE: [oracle_br] Re: Duvida
  
  
   Eu fiz algumas alterações no codigo mas não deu certo.Se alguém pode me
  ajudar
   O erro que aparece e o mesmo.
  
   To: oracle_br@yahoogrupos.com.br
   From: ro.wars...@gmail.com
   Date: Mon, 11 Feb 2013 21:02:32 -0200
   Subject: Re: [oracle_br] Re: Duvida
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
   Como eu havia falado em alguma mensagem lá atrás, o IF serve para testar
  
   valores e decidir qual caminho a ser seguido. Sugiro que procure pela
  
   documentação sobre IF e ajuste esse que está erro.
  
   Nota que o segundo IF que tu fez está certo.
  
  
  
   []´s
  
   Roberto
  
  
  
   Em 11/02/2013 20:56, gabriel Tomaz escreveu:
  
   
  
   
  
O erro estar dando no Primeiro  IF onde estar em negrito.
  
O erro e o seguinte:
  
ORA-06550:linha 15, coluna 61:PLS-00103: Encontrato o símbolo;
  
quando um dos seguites símbolos era esperado:
  
.(*%_=-+/ at is mod remainder not rem then  or!+=or~===and or
  
like like2_like4_likec_between||multiset member
  
SUBMULTISET_ORA-06550:linha34,coluna5:PLS-00103:encontrado o
  
símboloIF quando um dos seguintes símbolos esra esperado:loop
  
DECLAREL_VFRASE VARCHAR2(240) := 'Digite uma Frase.';L_VFRASE_TEST
  
VARCHAR2(240);L_VFRASE_NOVO VARCHAR2(240);L_VQBR_LINHA
  
VARCAHAR2(240);L_VALOR_NOVO VARCAHAR2(240);L_TESTE_QBR
  
VARCAHAR2(240);L_FRA_CERT VARCAHAR2(240);L_FRASE
  
VARCAHAR2(240);L_VFRASE_TEST1 VARCHAR2(240);BEGINWHILE L_VFRASE  100
  
LOOPIF DBMS_OUTPUT.put_line('Frase é maior que 100
  
caracteres');L_VFRASE := INSTR( L_VFRASE,' ');L_VFRASE_TEST :=
  
L_VFRASE + L_VFRASE_TEST;L_VFRASE_TEST := 0;L_VQBRLINHA := L_VFRASE +
  
L_valor_novo;L_VQBRLINHA := -1;L_TESTE_QBR :=
  
SUBSTR(NL_FRA_CERT,NL_valor_novo);L_FRASE :=
  
SUBSTR(L_FRA_CERT,L_VALOR_NOVO +LENGTH(L_FRA_CERT));IF L_VQBRLINHA 10
  
thenL_L_TESTE_QBR := CONCAT(concat(L_VFRASE_TEST1,''),L_TESTE_QBR);END
  
IF;dbms_output.put_line(L_VFRASE);dbms_output.put_line
  
(L_TESTE_QBR);dbms_output.put_line
  
(L_FRASE);dbms_output.put_line(L_VQBRLINHA);END IF;END LOOP;END;
  
To: oracle_br@yahoogrupos.com.br
  
From: ro.wars...@gmail.com
  
Date: Mon, 11 Feb 2013 20:37:04 -0200
  
Subject: Re: [oracle_br] Re: Duvida
  
   
  
   
  
   
  
   
  
   
  
   
  
   
  
   
  
   
  
   
  
   
  
   
  
   
  
   
  
   
  
   
  
   
  
   
  
   
  
   
  
   
  
   
  
   
  
   
  
   
  
   
  
Gabriel,
  
   
  
   
  
   
  
O grupo não aceita anexos.
  
   
  
Cola o teu código aqui - FORMATADO - e coloca também a mensagem de
  erro.
  
   
  
   
  
   
  
[]´s
  
   
  
Roberto
  
   
  
   
  
   
  
  
  
   [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 » 

Re: [oracle_br] Re: Duvida

2013-02-11 Por tôpico Eduardo Schurtz
Consegue mandar seu código FORMATADO com comentários seus nos principais
pontos, explicando-os?


--
Eduardo Schurtz


2013/2/11 gabriel Tomaz gabriel_tom...@hotmail.com

 **



 Obrigado pela ajuda pessoal estou apenas estudando e fazendo alguns
 exercícios.Mas valeu pelas dicas vou me aprimorar mais meu SQL e minha
 logica.Mas nesse caso como ficaria a resolução desse exercício?
  To: oracle_br@yahoogrupos.com.br
  From: eduardo.schu...@gmail.com
  Date: Mon, 11 Feb 2013 23:19:22 -0200

  Subject: Re: [oracle_br] Re: Duvida
 
  Gabriel, dei uma olhada no seu código e vi que você está cometendo erros
  muito básicos de programação:
 
  IF sem condição...
  WHILE sem pé nem cabeça... e infinito...
  Inicializando uma variável com texto, depois jogando valores numéricos
 por
  cima...
 
  Acho que você deveria dar uma estudada no básico antes de começar a
  escrever código... Pode até brincar no código, mas antes de perguntar em
 um
  grupo na Internet, deveria no mínimo dar uma pesquisada/estudada... e só
  perguntar se não conseguir mais andar para nenhum lado! Tem erros muito
  básicos aí...
 
  Peguei seu código, dei uma formatada e coloquei alguns comentários, pode
  pegar no link abaixo:
 
  https://dl.dropbox.com/u/6848776/query_gabriel.sql
 
  Att,
 
 
 
  --
  Eduardo Schurtz
 
 
  2013/2/11 gabriel Tomaz gabriel_tom...@hotmail.com
 
   **

  
  
  
   Uma das alterações que fiz foi colocar um while mas também não deu
 certo,
   se alguém pode ajudar
  
   BEGINWHILE L_cont  Length(L_VFRASE)+ 100
 LOOPDBMS_OUTPUT.put_line('Frase
   é maior que 100 caracteres'); WHILE L_VFRASE  100 LOOPIF L_VFRASE :=
   INSTR( L_VFRASE,' ');
To: oracle_br@yahoogrupos.com.br
From: gabriel_tom...@hotmail.com
Date: Tue, 12 Feb 2013 00:20:08 +
  
Subject: RE: [oracle_br] Re: Duvida
   
   
Eu fiz algumas alterações no codigo mas não deu certo.Se alguém pode
 me
   ajudar
O erro que aparece e o mesmo.
   
To: oracle_br@yahoogrupos.com.br
From: ro.wars...@gmail.com
Date: Mon, 11 Feb 2013 21:02:32 -0200
Subject: Re: [oracle_br] Re: Duvida
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
Como eu havia falado em alguma mensagem lá atrás, o IF serve para
 testar
   
valores e decidir qual caminho a ser seguido. Sugiro que procure pela
   
documentação sobre IF e ajuste esse que está erro.
   
Nota que o segundo IF que tu fez está certo.
   
   
   
[]´s
   
Roberto
   
   
   
Em 11/02/2013 20:56, gabriel Tomaz escreveu:
   

   

   
 O erro estar dando no Primeiro  IF onde estar em negrito.
   
 O erro e o seguinte:
   
 ORA-06550:linha 15, coluna 61:PLS-00103: Encontrato o símbolo;
   
 quando um dos seguites símbolos era esperado:
   
 .(*%_=-+/ at is mod remainder not rem then  or!+=or~===and
 or
   
 like like2_like4_likec_between||multiset member
   
 SUBMULTISET_ORA-06550:linha34,coluna5:PLS-00103:encontrado o
   
 símboloIF quando um dos seguintes símbolos esra esperado:loop
   
 DECLAREL_VFRASE VARCHAR2(240) := 'Digite uma Frase.';L_VFRASE_TEST
   
 VARCHAR2(240);L_VFRASE_NOVO VARCHAR2(240);L_VQBR_LINHA
   
 VARCAHAR2(240);L_VALOR_NOVO VARCAHAR2(240);L_TESTE_QBR
   
 VARCAHAR2(240);L_FRA_CERT VARCAHAR2(240);L_FRASE
   
 VARCAHAR2(240);L_VFRASE_TEST1 VARCHAR2(240);BEGINWHILE L_VFRASE 
 100
   
 LOOPIF DBMS_OUTPUT.put_line('Frase é maior que 100
   
 caracteres');L_VFRASE := INSTR( L_VFRASE,' ');L_VFRASE_TEST :=
   
 L_VFRASE + L_VFRASE_TEST;L_VFRASE_TEST := 0;L_VQBRLINHA :=
 L_VFRASE +
   
 L_valor_novo;L_VQBRLINHA := -1;L_TESTE_QBR :=
   
 SUBSTR(NL_FRA_CERT,NL_valor_novo);L_FRASE :=
   
 SUBSTR(L_FRA_CERT,L_VALOR_NOVO +LENGTH(L_FRA_CERT));IF L_VQBRLINHA
 10
   
 thenL_L_TESTE_QBR :=
 CONCAT(concat(L_VFRASE_TEST1,''),L_TESTE_QBR);END
   
 IF;dbms_output.put_line(L_VFRASE);dbms_output.put_line
   
 (L_TESTE_QBR);dbms_output.put_line
   
 (L_FRASE);dbms_output.put_line(L_VQBRLINHA);END IF;END LOOP;END;
   
 To: oracle_br@yahoogrupos.com.br
   
 From: ro.wars...@gmail.com
   
 Date: Mon, 11 Feb 2013 20:37:04 -0200
   
 Subject: Re: [oracle_br] Re: Duvida
   

   

   

   

   

   

   

   

   

   

   

   

   

   

   

   

   

   

   

   

   

   

   

   

   

   

   
 Gabriel,
   

   

   

   
 O grupo não aceita anexos.
   

   
 Cola o teu código aqui - FORMATADO - e coloca também a mensagem de
   erro.
   

   

   

   
 []´s
   

   
 Roberto
   

   

   

   
   
   
[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: Duvida

2013-02-11 Por tôpico gabriel Tomaz
Sim.

-Original Message-

From: Eduardo Schurtz
Sent: 12 Feb 2013 01:56:37 GMT
To: oracle_br@yahoogrupos.com.br
Subject: Re: [oracle_br] Re: Duvida

Consegue mandar seu código FORMATADO com comentários seus nos principais
pontos, explicando-os?


--
Eduardo Schurtz


2013/2/11 gabriel Tomaz gabriel_tom...@hotmail.com

 **



 Obrigado pela ajuda pessoal estou apenas estudando e fazendo alguns
 exercícios.Mas valeu pelas dicas vou me aprimorar mais meu SQL e minha
 logica.Mas nesse caso como ficaria a resolução desse exercício?
  To: oracle_br@yahoogrupos.com.br
  From: eduardo.schu...@gmail.com
  Date: Mon, 11 Feb 2013 23:19:22 -0200

  Subject: Re: [oracle_br] Re: Duvida
 
  Gabriel, dei uma olhada no seu código e vi que você está cometendo erros
  muito básicos de programação:
 
  IF sem condição...
  WHILE sem pé nem cabeça... e infinito...
  Inicializando uma variável com texto, depois jogando valores numéricos
 por
  cima...
 
  Acho que você deveria dar uma estudada no básico antes de começar a
  escrever código... Pode até brincar no código, mas antes de perguntar em
 um
  grupo na Internet, deveria no mínimo dar uma pesquisada/estudada... e só
  perguntar se não conseguir mais andar para nenhum lado! Tem erros muito
  básicos aí...
 
  Peguei seu código, dei uma formatada e coloquei alguns comentários, pode
  pegar no link abaixo:
 
  https://dl.dropbox.com/u/6848776/query_gabriel.sql
 
  Att,
 
 
 
  --
  Eduardo Schurtz
 
 
  2013/2/11 gabriel Tomaz gabriel_tom...@hotmail.com
 
   **

  
  
  
   Uma das alterações que fiz foi colocar um while mas também não deu
 certo,
   se alguém pode ajudar
  
   BEGINWHILE L_cont  Length(L_VFRASE)+ 100
 LOOPDBMS_OUTPUT.put_line('Frase
   é maior que 100 caracteres'); WHILE L_VFRASE  100 LOOPIF L_VFRASE :=
   INSTR( L_VFRASE,' ');
To: oracle_br@yahoogrupos.com.br
From: gabriel_tom...@hotmail.com
Date: Tue, 12 Feb 2013 00:20:08 +
  
Subject: RE: [oracle_br] Re: Duvida
   
   
Eu fiz algumas alterações no codigo mas não deu certo.Se alguém pode
 me
   ajudar
O erro que aparece e o mesmo.
   
To: oracle_br@yahoogrupos.com.br
From: ro.wars...@gmail.com
Date: Mon, 11 Feb 2013 21:02:32 -0200
Subject: Re: [oracle_br] Re: Duvida
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
Como eu havia falado em alguma mensagem lá atrás, o IF serve para
 testar
   
valores e decidir qual caminho a ser seguido. Sugiro que procure pela
   
documentação sobre IF e ajuste esse que está erro.
   
Nota que o segundo IF que tu fez está certo.
   
   
   
[]´s
   
Roberto
   
   
   
Em 11/02/2013 20:56, gabriel Tomaz escreveu:
   

   

   
 O erro estar dando no Primeiro  IF onde estar em negrito.
   
 O erro e o seguinte:
   
 ORA-06550:linha 15, coluna 61:PLS-00103: Encontrato o símbolo;
   
 quando um dos seguites símbolos era esperado:
   
 .(*%_=-+/ at is mod remainder not rem then  or!+=or~===and
 or
   
 like like2_like4_likec_between||multiset member
   
 SUBMULTISET_ORA-06550:linha34,coluna5:PLS-00103:encontrado o
   
 símboloIF quando um dos seguintes símbolos esra esperado:loop
   
 DECLAREL_VFRASE VARCHAR2(240) := 'Digite uma Frase.';L_VFRASE_TEST
   
 VARCHAR2(240);L_VFRASE_NOVO VARCHAR2(240);L_VQBR_LINHA
   
 VARCAHAR2(240);L_VALOR_NOVO VARCAHAR2(240);L_TESTE_QBR
   
 VARCAHAR2(240);L_FRA_CERT VARCAHAR2(240);L_FRASE
   
 VARCAHAR2(240);L_VFRASE_TEST1 VARCHAR2(240);BEGINWHILE L_VFRASE 
 100
   
 LOOPIF DBMS_OUTPUT.put_line('Frase é maior que 100
   
 caracteres');L_VFRASE := INSTR( L_VFRASE,' ');L_VFRASE_TEST :=
   
 L_VFRASE + L_VFRASE_TEST;L_VFRASE_TEST := 0;L_VQBRLINHA :=
 L_VFRASE +
   
 L_valor_novo;L_VQBRLINHA := -1;L_TESTE_QBR :=
   
 SUBSTR(NL_FRA_CERT,NL_valor_novo);L_FRASE :=
   
 SUBSTR(L_FRA_CERT,L_VALOR_NOVO +LENGTH(L_FRA_CERT));IF L_VQBRLINHA
 10
   
 thenL_L_TESTE_QBR :=
 CONCAT(concat(L_VFRASE_TEST1,''),L_TESTE_QBR);END
   
 IF;dbms_output.put_line(L_VFRASE);dbms_output.put_line
   
 (L_TESTE_QBR);dbms_output.put_line
   
 (L_FRASE);dbms_output.put_line(L_VQBRLINHA);END IF;END LOOP;END;
   
 To: oracle_br@yahoogrupos.com.br
   
 From: ro.wars...@gmail.com
   
 Date: Mon, 11 Feb 2013 20:37:04 -0200
   
 Subject: Re: [oracle_br] Re: Duvida
   

   

   

   

   

   

   

   

   

   

   

   

   

   

   

   

   

   

   

   

   

   

   

   

   

   

   
 Gabriel,
   

   

   

   
 O grupo não aceita anexos.
   

   
 Cola o teu código aqui - FORMATADO - e coloca também a mensagem de
   erro.
   

   

   

   
 []´s
   

   
 Roberto
   

   

   

   
   
   
[As partes desta mensagem que não continham texto foram 

[oracle_br] Re: criar job em outro schema

2013-02-11 Por tôpico netodba
Eriovaldo, 

eu ja usei a dbms_metadata pra extrair o ddl do job.
Mas criar o job logado com usuario SYS, o mesmo vai ser o dono do objeto certo? 
Poisé, esse JOB tem que pertencer a outro schema, que era o schema original que 
ja foi importado na nova base de dados.
Entendeu?

Vlw


--- Em oracle_br@yahoogrupos.com.br, Eriovaldo Andrietta  escreveu

 Olá Pessoal,
 
 Vou dar um palpite :
 Como o Neto usou a palavra migração, imagino que já aconteceu e precisa
 completar, levando o que existia num schema para outro schema em outra
 instance talvez.
 O que acha de usar dbms_metadata para extrair os jobs no schema source e
 criar manualmente no destino exatamente como ele existia ?
 dá certo?
 Espero ter ajudado.
 
 Att
 Eriovaldo
 
 
 2013/2/11 netodba 
 
  **
 
 
  Vlw Chiappa,
 
  no caso eu estou migrando uma base, e esse job nao migrou legal. Por isso
  que eu queria criar na mão.
  Mas te entendi vlw.
 
  --- Em oracle_br@yahoogrupos.com.br, J. Laurindo Chiappa escreveu
 
  
   Bom, o manual correspondente (Oracle® Database PL/SQL Packages and
  Types Reference 11g Release 2 (11.2)) no cap. 128 - DBMS_SCHEDULER diz que
  :
  
   
   Usage Notes
  
   
   To create a job in your own schema, you need to have the CREATE JOB
  privilege. A user with the CREATE ANY JOB privilege can create a job in any
  schema. If the job being created will reside in another schema, the job
  name must be qualified with the schema name.
   ...
   
  
  
   Então eu imagino que é possível, MAS sinceramente nunca usei : se vc é
  só o DBA (e por isso só tem um usuário DBA, e não sabe a senha do
  usuário-dono dos objetos da Aplicação, até para haver algum tipo de
  SEPARAÇÂO DE RESPONSABILIDADES) não faz sentido vc sair criando seja o que
  for no schema da Aplicação (que imagino ser o seu caso) - teria que ser o
  responsável pela Aplicação a fazer isso 
  
   []s
  
   Chiappa
  
   --- Em oracle_br@yahoogrupos.com.br, netodba escreveu
   
Pessoal,
Oracle 11gR2.
   
Estou logado como sys.
Como eu faço pra criar esse job em outro schema, sem me logar no
  schema.
   
   
BEGIN
dbms_scheduler.create_job('OPTIMIZE_CTX_INDEXES',
job_type='PLSQL_BLOCK',
job_action=
'begin
ctx_ddl.optimize_index (idx_name = ''EREVISTA.DESPACHO_CTX'',
  optlevel = ''FULL'');
ctx_ddl.optimize_index (idx_name = ''EREVISTA.AUTOTEXTO_CTX'',
  optlevel =''FULL'');
ctx_ddl.optimize_index (idx_name = ''EREVISTA.BASES_JURIDICAS_CTX'',
  optlevel = ''FULL'');
end;',
number_of_arguments=0,
start_date='30-AUG-07 11.00.00.00 PM -03:00',
   
  repeat_interval='FREQ=WEEKLY;INTERVAL=1;BYDAY=THU;BYHOUR=23;BYMINUTE=0;BYSECOND=0',
 
end_date=NULL,
job_class='DEFAULT_JOB_CLASS', enabled=FALSE,
  auto_drop=FALSE,comments=NULL);
dbms_scheduler.enable('OPTIMIZE_CTX_INDEXES');
COMMIT;
END;
   
  
 
   
 
 
 
 [As partes desta mensagem que não continham texto foram removidas]





RE: [oracle_br] Re: criar job em outro schema

2013-02-11 Por tôpico Schiavini
Neto, já tentou usar “ALTER SESSION SET CURRENT_SCHEMA” ?

 

Isto alteraria o current schema mas não o session user, não sei se
resolveria o teu problema.

 

Étore

 

From: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] On
Behalf Of netodba
Sent: terça-feira, 12 de fevereiro de 2013 00:12
To: oracle_br@yahoogrupos.com.br
Subject: [oracle_br] Re: criar job em outro schema

 

  

Eriovaldo, 

eu ja usei a dbms_metadata pra extrair o ddl do job.
Mas criar o job logado com usuario SYS, o mesmo vai ser o dono do objeto
certo? 
Poisé, esse JOB tem que pertencer a outro schema, que era o schema original
que ja foi importado na nova base de dados.
Entendeu?

Vlw

--- Em oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br
, Eriovaldo Andrietta escreveu

 Olá Pessoal,
 
 Vou dar um palpite :
 Como o Neto usou a palavra migração, imagino que já aconteceu e precisa
 completar, levando o que existia num schema para outro schema em outra
 instance talvez.
 O que acha de usar dbms_metadata para extrair os jobs no schema source e
 criar manualmente no destino exatamente como ele existia ?
 dá certo?
 Espero ter ajudado.
 
 Att
 Eriovaldo
 
 
 2013/2/11 netodba 
 
  **
 
 
  Vlw Chiappa,
 
  no caso eu estou migrando uma base, e esse job nao migrou legal. Por
isso
  que eu queria criar na mão.
  Mas te entendi vlw.
 
  --- Em oracle_br@yahoogrupos.com.br
mailto:oracle_br%40yahoogrupos.com.br , J. Laurindo Chiappa escreveu
 
  
   Bom, o manual correspondente (Oracle® Database PL/SQL Packages and
  Types Reference 11g Release 2 (11.2)) no cap. 128 - DBMS_SCHEDULER diz
que
  :
  
   
   Usage Notes
  
   
   To create a job in your own schema, you need to have the CREATE JOB
  privilege. A user with the CREATE ANY JOB privilege can create a job in
any
  schema. If the job being created will reside in another schema, the job
  name must be qualified with the schema name.
   ...
   
  
  
   Então eu imagino que é possível, MAS sinceramente nunca usei : se vc é
  só o DBA (e por isso só tem um usuário DBA, e não sabe a senha do
  usuário-dono dos objetos da Aplicação, até para haver algum tipo de
  SEPARAÇÂO DE RESPONSABILIDADES) não faz sentido vc sair criando seja o
que
  for no schema da Aplicação (que imagino ser o seu caso) - teria que ser
o
  responsável pela Aplicação a fazer isso 
  
   []s
  
   Chiappa
  
   --- Em oracle_br@yahoogrupos.com.br
mailto:oracle_br%40yahoogrupos.com.br , netodba escreveu
   
Pessoal,
Oracle 11gR2.
   
Estou logado como sys.
Como eu faço pra criar esse job em outro schema, sem me logar no
  schema.
   
   
BEGIN
dbms_scheduler.create_job('OPTIMIZE_CTX_INDEXES',
job_type='PLSQL_BLOCK',
job_action=
'begin
ctx_ddl.optimize_index (idx_name = ''EREVISTA.DESPACHO_CTX'',
  optlevel = ''FULL'');
ctx_ddl.optimize_index (idx_name = ''EREVISTA.AUTOTEXTO_CTX'',
  optlevel =''FULL'');
ctx_ddl.optimize_index (idx_name =
''EREVISTA.BASES_JURIDICAS_CTX'',
  optlevel = ''FULL'');
end;',
number_of_arguments=0,
start_date='30-AUG-07 11.00.00.00 PM -03:00',
   
 
repeat_interval='FREQ=WEEKLY;INTERVAL=1;BYDAY=THU;BYHOUR=23;BYMINUTE=0;BYSE
COND=0',
 
end_date=NULL,
job_class='DEFAULT_JOB_CLASS', enabled=FALSE,
  auto_drop=FALSE,comments=NULL);
dbms_scheduler.enable('OPTIMIZE_CTX_INDEXES');
COMMIT;
END;
   
  
 
  
 
 
 
 [As partes desta mensagem que não continham texto foram removidas]






[As partes desta mensagem que não continham texto foram removidas]