Re: [oracle_br] Re: Separar palavras numa frase

2009-07-31 Por tôpico Pablo Câmara
Valeu rei_c_s, *
*
*Eu já implementei! Porem vou copiar seu código!*
*
*
*Obrigado!
*
2009/7/30 rei_c_s rei_...@yahoo.com.br



 Olá Pablo,
 li sua pergunta e escrevi o código abaixo, tudo muito simples, pelo que
 entendi de sua necessidade, resolve.
 Veja a query abaixo e logo em seguida o retorno.
 A solução envolve dois tipos, e uma função, bastante simples de
 implementar. Teste e veja se atende.

 Abraço

 Reinaldo

 /*
 select * from table(wordlist(' primeira segunda terceira quarta quinta '))

 WORD
 --
 primeira
 segunda
 terceira
 quarta
 quinta

 5 rows selected.
 */

 CREATE TYPE wordobject AS OBJECT (
 word VARCHAR2 (50)
 );
 /

 CREATE TYPE wordarray AS TABLE OF wordobject;
 /

 CREATE OR REPLACE FUNCTION wordlist (word VARCHAR2)
 RETURN wordarray
 PIPELINED
 AS
 recs wordarray := wordarray ();
 j INTEGER := 0;
 vword VARCHAR2 (8000);
 wordv VARCHAR2 (50);
 BEGIN
 vword := TRIM (word) || ' ';
 FOR i IN 1 .. LENGTH (vword)
 LOOP
 IF (SUBSTR (vword, i, 1) = ' ') OR (i = LENGTH (vword))
 THEN
 wordv := TRIM (SUBSTR (vword, j + 1, i - 1 - j));

 IF wordv  ' '
 THEN
 recs.EXTEND ();
 recs (recs.COUNT ()) := wordobject (wordv);
 j := i;
 END IF;
 END IF;
 END LOOP;

 FOR i IN 1 .. recs.COUNT ()
 LOOP
 PIPE ROW (recs (i));
 END LOOP;

 RETURN;
 END;
 /

 --- Em oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br,
 Pablo Câmara pscam...@... escreveu

 
  Valeu pessoal!
 
  Maria , o sql que você enviou é o mesmo que estou usando!
  Caio, vou verificar o connect_by_path.
  Marcos, valeu pela dica também!
 
 
  Valeu pessoa!
 
 
  2009/7/27 Marcos Braga braga.mar...@...

 
  
  
   Oi Pablo,
  
   Já testou o replace?, observe este exemplo:
   --
   SQL create table t3 (c1 varchar2(100));
  
   Tabela criada.
  
   SQL insert into t3 values ('o rato roeu a roupa do rei de roma');
  
   1 linha criada.
  
   dba_ora_04/orcl commit;
  
   Commit concluido.
  
   dba_ora_04/orcl select * from t3;
  
   C1
   ---
  
   o rato roeu a roupa do rei de roma
  
   1 linha selecionada.
  
   SQL select replace(c1, ' ', chr(10)) from t3;
  
   REPLACE(C1,'',CHR(10))
   
   o
   rato
   roeu
   a
   roupa
   do
   rei
   de
   roma
  
   1 linha selecionada.
  
   SQL
   --
  
   Esse exemplo é fácil com replace e funciona com regexp também. Não sei
 se é
   exatamente isso que procura, mas vale a dica.
  
   []s
  
   2009/7/27 Pablo Câmara pscam...@... pscamara%40gmail.com
  
   
   
Olá pessoal
Gostaria de saber se existe algum modo de separar as palavras de uma
   frase.
De um modo mais dinâmico.
   
Valor do Campo: O rato roeu a roupa do rei de roma
   
linha 1: o
linha 2: rato
linha 3: roeu
linha 4: a
linha 5: roupa
linha 6: do
linha 7: rei
linha 8: de
linha 9: roma
   
Estou pensando em ler o valor da coluna e usar um delimitador
 espaco.
Porem gostaria de fazer isso sem precisar ler caracter por caracter.
   
Pablo
   
  
   [As partes desta mensagem que não continham texto foram removidas]
  
  
  
 
 
  [As partes desta mensagem que não continham texto foram removidas]
 

  



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



RES: [oracle_br] Erro ORA-07445

2009-07-31 Por tôpico Dalton Pereira
Obrigado Caio!

Vou seguir sua dica, olharei no metalink.

Atenciosamente,

Dalton Oliveira | Database Administrator - OCP
GLAUCO INFORMÁTICA
* dal...@sd2000.com.brmailto:dal...@sd2000.com.br
*   71 2103-5800
P Antes de imprimir pense em seu compromisso com o Meio Ambiente

De: oracle_br@yahoogrupos.com.br [mailto:oracle...@yahoogrupos.com.br] Em nome 
de Caio Spadafora
Enviada em: quinta-feira, 30 de julho de 2009 11:11
Para: oracle_br@yahoogrupos.com.br
Assunto: Re: [oracle_br] Erro ORA-07445



Dalton,

Entre no metalink e procure pela Ora-600 error lookup tool. Informe o erro 7445 
e coloque o primeiro argumento... Você terá sua resposta, se tiver urgência 
abra uma SR na Oracle.

Os erros ORA-0600 e ORA-07445 são erros não esperados, e são necessários 
análise de argumentos oud e dumps de memória para identificação. A boa notícia 
é que muitos já foram resolvidos e aplicando patches (existem alguns work 
arounds) você consegue se livrar deles.

[]'s
Atenciosamente,
Caio Spadafora.
http://0011brothers.blogspot.com/

--- Em qui, 30/7/09, Dalton Pereira 
dal...@sd2000.com.brmailto:dalton%40sd2000.com.br escreveu:

De: Dalton Pereira dal...@sd2000.com.brmailto:dalton%40sd2000.com.br
Assunto: [oracle_br] Erro ORA-07445
Para: oracle_br@yahoogrupos.com.brmailto:oracle_br%40yahoogrupos.com.br 
oracle_br@yahoogrupos.com.brmailto:oracle_br%40yahoogrupos.com.br
Data: Quinta-feira, 30 de Julho de 2009, 11:01



Bom dia Pessoal!

A poucos instantes um dos meus servidores ficou indisponível. Quando fui 
analisar o log de alerta vi muitas entradas do erro abaixo:

Thu Jul 30 10:18:06 2009

Errors in file /u01/app/oracle/ admin/prod02/ udump/prod02_ ora_19500. trc:

ORA-07445: exception encountered: core dump [kghfrmrg()+ 174] [SIGBUS] 
[Non-existent physical address] [0x2994E7B0] [] []

Alguém sabe o que pode ter provocado esse erro?

SO.

Linux gi-ora-03 2.6.9-42.ELsmp #1 SMP Wed Jul 12 23:27:17 EDT 2006 i686 i686 
i386 GNU/Linux

BD.

Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Prod

PL/SQL Release 10.2.0.4.0 - Production

CORE 10.2.0.4.0 Production

TNS for Linux: Version 10.2.0.4.0 - Production

NLSRTL Version 10.2.0.4.0 - Production

Atenciosamente,

Dalton Oliveira | Database Administrator - OCP

GLAUCO INFORMÁTICA

* dal...@sd2000. com.brmailto:dal...@sd2000. 
com.brmailto:dal...@sd2000.%20com.br

* 71 2103-5800

P Antes de imprimir pense em seu compromisso com o Meio Ambiente

 _ _ __

A Informação Confidencial deverá ser utilizada única e exclusivamente no âmbito 
da relação com a Glauco Informática e não poderá ser repassada, reproduzida de 
qualquer outra forma, e nem revelada a terceiros.

La información confidencial se utilizará única y exclusivamente en relación con 
Glauco Informática, y no se puede pasar, reproduce en modo alguno, ni revelada 
a terceros.

The Confidential Information will be used solely and exclusively in relation to 
the Glauco Informatica and not be passed, reproduced in any way, nor disclosed 
to third parties.

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











__
Veja quais são os assuntos do momento no Yahoo! +Buscados
http://br.maisbuscados.yahoo.com

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



A Informação Confidencial deverá ser utilizada única e exclusivamente no âmbito 
da relação com a Glauco Informática e não poderá ser repassada, reproduzida de 
qualquer outra forma, e nem revelada a terceiros.

La información confidencial se utilizará única y exclusivamente en relación con 
Glauco Informática, y no se puede pasar, reproduce en modo alguno, ni revelada 
a terceros.

The Confidential Information will be used solely and exclusively in relation to 
the Glauco Informatica and not be passed, reproduced in any way, nor disclosed 
to third parties.


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



Re: [oracle_br] Executar sqlplus como root ????

2009-07-31 Por tôpico Marcos Braga
Oi Flávio,

Para executar o sqlplus eu carrego as seguintes variáveis de ambiente no
profile geral do linux /etc/profile.

export ORACLE_HOME=/caminho/do/oracle
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export PATH=$ORACLE_HOME/bin:$PATH

Até o momento não tive problemas com estes parâmetros e nem na execução.

[]s
Braga

2009/7/30 Flavio fq...@yahoo.com.br



 Olá pessoal, bom dia,

 quero executar o sqlplus como usuário root, mas dá erro de privilégio.
 ORA-01031: insufficient privileges

 Alguém sabe como utilizar o sqlplus e conectar à base de dados como usuário
 root ?

 Obrigado pela atenção de todos,
 Flávio.



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



[oracle_br] Re: Service Name,SID e sqlplus

2009-07-31 Por tôpico jlchiappa
Não, vc não está correto, mas deixe-me esclarecer rapidamente uns conceitos 
antes : primeiro, nós temos que para o RDBMS Oracle um DATABASE é um conjunto 
de arquivos (controlfiles, datafiles, initfiles, redo log files, etc), e os 
programas (binários) que controlam databases podem ser carregados para a RAM 
formando uma instância, e essa instância pode abrir o database, ativando-o, aí 
temos uma instância ativa, ok ? O comum é se ter apenas uma instância abrindo 
um database, mas com as opções de Clusterização (como o RAC) vc pode ter um 
único database (residindo num storage compartilhado) sendo aberto por N 
instâncias. Até aqui, blz ? Aí sim, temos : SID é o nome atribuído para uma 
dada instância ativa (*** não é *** do database em si), e o SERVICE NAME (nesse 
contexto de databases que estamos discutindo) é um APELIDO que é criado para o 
banco de dados em si, e vc pode ter N deles : absolutamente nada impede que vc 
(num RAC de dois nós, por exemplo) tenha uma instância com o sid de PROD1, 
outra instância com o SID de PROD2 , e que no database sendo aberto por essas 
duas instâncias tenham sido criados (através do parâmetro SERVICE_NAMES , veja 
o S indicnado que é Plural, vc pode ter Vários criados) dois serviços, PROD_SRV 
e PROD_OUTRO , nessa situação (uma vez o Listener respondendo ok por ambos) vc 
poderia informar no TNSNAMES tanto um SID específico, pra se conectar ao 
database através da instância cujo SID vc informou, quanto qquer um dos dois 
serviços, ok ?

 Então a resposta é : SID é o identificador da instância, SERVICE_NAME é um 
meio de conexão a um database, não são o mesmo : num ambiente sem cluster é 
de PRAXE vc ter o SID idêntico ao SERVICE_NAME (só com um domínio tipo .com.br 
anexado ao service_name, talvez)  e ter um service_name só, MAS NÃO 
OBRIGATORIAMENTE, confere ?
 
Quanto ao sqlplus, o próprio manual SQL*Plus® User's Guide and Reference no 
cap. 3 - Starting SQL*Plus explica, mas em poucas frases : quando vc não 
informa nada (ie, SQLPLUS [ENTER]  ) ele é programada para pedir usuário e 
senha, quando vc pede SQLPLUS /NOLOG ele inicia o sqlplus SEM se conectar no 
banco (útil para testar se o sqlplus em si está funcionando, por exemplo), se 
vc pedir SQLPLUS usuario/senha[ENTER] ele vai se iniciar conectando com o 
usuário e senha informados, e finalmente se vc informar apenas SQLPLUS /[ENTER] 
, a / sozinha indica que vc quer fazer autenticação externa, ie, se conectar no 
banco com o mesmo usuário que vc já está logado no sistema operacional : 
normalmente isso implica que vc tem que ter criado no banco um usuário idêntico 
ao do SO, só que sem senha (IDENTIFIED EXTERNALLY), mas no caso de conexão com 
privilégios de SYSDBA isso não é exigido se vc estiver conectado no SO com uma 
conta já presente no grupo de DBAs.

 []s
 
   Chiappa
   
   
--- Em oracle_br@yahoogrupos.com.br, Flavio fq...@... escreveu

 Olá pessoal, bom dia,
 
 
 pesquisei algumas coisas e tirei algumas conclusões, mas gostaria de saber se 
 está certo. Se estiver errado, por favor, alguem me corriga. Por exemplo, 
 nesse tnsnames.ora:
 
 ONLINECONN =
   (DESCRIPTION =
     (ADDRESS_LIST =
   (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.190.128)(PORT = 1521))
     )
     (CONNECT_DATA =
   (SERVICE_NAME = orcl)
     )
   )
 
 Nesse caso, o SID e o DBService é o orcl, e o alias do Service Name utilizado 
 pelo cliente para conexão com o database é ONLINECONN ?
 
 Outra dúvida:
 qual a diferença de eu digitar esses comandos no Linux:
 sqlplus
 sqlplus /
 sqlplus /nolog
 
 ??? Nao consegui entender direito, entao queria ter uma certeza.
 
 Agradeço pela atenção de todos,
 abrs,
 Flávio.
 
 
 
   
 
 Veja quais são os assuntos do momento no Yahoo! +Buscados
 http://br.maisbuscados.yahoo.com
 
 [As partes desta mensagem que não continham texto foram removidas]





[oracle_br] Re: Executar sqlplus como root ????

2009-07-31 Por tôpico jlchiappa
Colega, antes de responder uma dica : isso é possível MAS não é nem recomendado 
nem recomendável, deveria haver uma SEPARAÇÂO clara de tarefas num servidor, 
usar o super-hiper-mega potente usuário root pra tarefas não-administrativas é 
quase sempre uma FURADA... E mesmo se a máquina for sua pra uso em casa, 
imagino que vc a está usando pra ESTUDAR, pra aprender como se faz, e esse Não 
É o modo rotineiro nas Empresas, yes ??
 Isto posto, respondo : primeiro vc teria que na sessão onde vc está conectado 
criar as variáveis de ambiente necessárias (ie, ORACLE_HOME, ORACLE_SID, PATH, 
no mínimo) e depois vc não diz mas IMAGINO que está tentando conectar como 
SYSDBA, certo ? Sendo isso vc teria que incluir o usuário root no grupo dos 
DBAs, é isso...

 []s

  Chiappa
--- Em oracle_br@yahoogrupos.com.br, Flavio fq...@... escreveu

 Olá pessoal, bom dia,
 
 quero executar o sqlplus como usuário root, mas dá erro de privilégio.
 ORA-01031: insufficient privileges
 
 Alguém sabe como utilizar o sqlplus e conectar à base de dados como usuário 
 root ?
 
 
 Obrigado pela atenção de todos,
 Flávio.
 
 
 
   
 
 Veja quais são os assuntos do momento no Yahoo! +Buscados
 http://br.maisbuscados.yahoo.com
 
 [As partes desta mensagem que não continham texto foram removidas]





[oracle_br] Re: USO DO COMANDO IN (=ANY)

2009-07-31 Por tôpico jlchiappa
Colega, vamos por partes aí : primeiro de tudo, vamos entender : o WHERE é uma 
cláusula aplicada a CADA REGISTRO, um por vez, para filtragem, e o operador ALL 
indica que a condição deve ser verdadeira para TODOS os valores - sabendo-se 
isso, uma condição 

WHERE coluna = ALL (x, y, z) 

evidentemente *** NUNCA *** vai ser verdadeira, pois um valor de uma coluna 
NUNCA vai ser igual aos três ao mesmo tempo, ok ??? Óbvio que vc obteve No 
Results na sua primeira tentativa... O que vc quer é pesquisar NÂO por 
Igualdade, mas por presença, então esqueça o '=' , blz ? No banco 8i, já que vc 
não tem a REGEXPe iirc não tem Contexts também, as únicas opções pra se 
pesquisar por existência de uma substring dentro de outra são : o LIKE, as 
funções string tipo INSTR, escrita de uma função PL/SQL customizada sua ou 
alguma combinação complexa com Analytics (estes já existiam no 8i, só não 
lembro o release 8i exato em que foram introduzidos).
 Para usar o LIKE ou funções built-in, isso VAI implicar em SQL dinâmico, 
imagino que vc terá que ter uma rotina sua, que recebe os parâmetros digitados 
e os expande em vários LIKE, tipo :
 
  WHERE coluna LIKE '%param1%' AND coluna LIKE '%param2%' and COLUNA like 
'%param3%'
  
 ou com built-ins se quiser, algo assim..
 
A opção de função customizada sua seria algo que vc chamaria no WHERE, tipo :

WHERE minha_função(coluna, paramdebusca1, paramdebusca2, paramde busca3) = 1 ...

lógico, NENHUMA dessas alternativas vão ser extremamente saudável pra 
performance, mas é isso... A menos danosa imagino que seria montar alguma 
combinação com Analytics, mas e algo a se pesquisar...

 []s
 
   Chiappa
--- Em oracle_br@yahoogrupos.com.br, Pablo Câmara pscam...@... escreveu

 *paramentroDaTela  := BABCOCK DIGIMAPAS TUBO*
 *
 *
 *1) SELECT COD_DOCUMENTO FROM ARQ.REFERENCIAS_DOCUMENTOS WHERE TXT_DOCUMENTO
 IN (paramentroDaTela)*
 *
 *
 *No caso 1:  vai retornar o código de varios documentos.  Sendo uma tabela
 de 3 milhoes de registros. Fica inviável.*
 *
 *
 *2) SELECT COD_DOCUMENTO FROM ARQ.REFERENCIAS_DOCUMENTOS WHERE TXT_DOCUMENTO
 =ALL (paramentroDaTela)*
 *
 *
 *No caso 2: Se o comando funcionasse, traria apenas o código do documento,
 no qual todas as palavras passadas como paramentro fazem parte.*
 *
 *
 *Alguem tem alguma outra sugestão? PS: ORACLE 8I.*
 *
 *
 *Em outras versões do oracle (a partir do 9i) eu utilizo o regexp_like. Ou
 faço a busca por contexto.*
 *
 *
 *Pablo*
 *
 *
 *
 *
 *
 *
 
 
 [As partes desta mensagem que não continham texto foram removidas]





Re: [oracle_br] Erro ORA-07445

2009-07-31 Por tôpico idesenv
Cara, aconteceu o mesmo erro aqui comigo.
Voce achou o problema?




2009/7/31 Dalton Pereira dal...@sd2000.com.br



 Obrigado Caio!

 Vou seguir sua dica, olharei no metalink.


 Atenciosamente,

 Dalton Oliveira | Database Administrator - OCP
 GLAUCO INFORMÁTICA
 * dal...@sd2000.com.br dalton%40sd2000.com.brmailto:
 dal...@sd2000.com.br dalton%40sd2000.com.br
 * 71 2103-5800
 P Antes de imprimir pense em seu compromisso com o Meio Ambiente

 De: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br [mailto:
 oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br] Em nome de
 Caio Spadafora
 Enviada em: quinta-feira, 30 de julho de 2009 11:11
 Para: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br
 Assunto: Re: [oracle_br] Erro ORA-07445

 Dalton,

 Entre no metalink e procure pela Ora-600 error lookup tool. Informe o erro
 7445 e coloque o primeiro argumento... Você terá sua resposta, se tiver
 urgência abra uma SR na Oracle.

 Os erros ORA-0600 e ORA-07445 são erros não esperados, e são necessários
 análise de argumentos oud e dumps de memória para identificação. A boa
 notícia é que muitos já foram resolvidos e aplicando patches (existem alguns
 work arounds) você consegue se livrar deles.

 []'s
 Atenciosamente,
 Caio Spadafora.
 http://0011brothers.blogspot.com/

 --- Em qui, 30/7/09, Dalton Pereira 
 dal...@sd2000.com.brdalton%40sd2000.com.br
 mailto:dalton%40sd2000.com.br dalton%2540sd2000.com.br escreveu:

 De: Dalton Pereira dal...@sd2000.com.br dalton%40sd2000.com.brmailto:
 dalton%40sd2000.com.br dalton%2540sd2000.com.br
 Assunto: [oracle_br] Erro ORA-07445
 Para: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br
 mailto:oracle_br%40yahoogrupos.com.br oracle_br%2540yahoogrupos.com.br
 oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.brmailto:
 oracle_br%40yahoogrupos.com.br oracle_br%2540yahoogrupos.com.br
 Data: Quinta-feira, 30 de Julho de 2009, 11:01

 Bom dia Pessoal!

 A poucos instantes um dos meus servidores ficou indisponível. Quando fui
 analisar o log de alerta vi muitas entradas do erro abaixo:

 Thu Jul 30 10:18:06 2009

 Errors in file /u01/app/oracle/ admin/prod02/ udump/prod02_ ora_19500. trc:

 ORA-07445: exception encountered: core dump [kghfrmrg()+ 174] [SIGBUS]
 [Non-existent physical address] [0x2994E7B0] [] []

 Alguém sabe o que pode ter provocado esse erro?

 SO.

 Linux gi-ora-03 2.6.9-42.ELsmp #1 SMP Wed Jul 12 23:27:17 EDT 2006 i686
 i686 i386 GNU/Linux

 BD.

 Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Prod

 PL/SQL Release 10.2.0.4.0 - Production

 CORE 10.2.0.4.0 Production

 TNS for Linux: Version 10.2.0.4.0 - Production

 NLSRTL Version 10.2.0.4.0 - Production

 Atenciosamente,

 Dalton Oliveira | Database Administrator - OCP

 GLAUCO INFORMÁTICA

 * dal...@sd2000. com.brmailto:dal...@sd2000. com.brmailto:dal...@sd2000.
 %20com.br

 * 71 2103-5800

 P Antes de imprimir pense em seu compromisso com o Meio Ambiente

  _ _ __

 A Informação Confidencial deverá ser utilizada única e exclusivamente no
 âmbito da relação com a Glauco Informática e não poderá ser repassada,
 reproduzida de qualquer outra forma, e nem revelada a terceiros.

 La información confidencial se utilizará única y exclusivamente en relación
 con Glauco Informática, y no se puede pasar, reproduce en modo alguno, ni
 revelada a terceros.

 The Confidential Information will be used solely and exclusively in
 relation to the Glauco Informatica and not be passed, reproduced in any way,
 nor disclosed to third parties.

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

 __
 Veja quais são os assuntos do momento no Yahoo! +Buscados
 http://br.maisbuscados.yahoo.com

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

 
 A Informação Confidencial deverá ser utilizada única e exclusivamente no
 âmbito da relação com a Glauco Informática e não poderá ser repassada,
 reproduzida de qualquer outra forma, e nem revelada a terceiros.

 La información confidencial se utilizará única y exclusivamente en relación
 con Glauco Informática, y no se puede pasar, reproduce en modo alguno, ni
 revelada a terceros.

 The Confidential Information will be used solely and exclusively in
 relation to the Glauco Informatica and not be passed, reproduced in any way,
 nor disclosed to third parties.

 [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: Copiar campo long utilizando HSODBC

2009-07-31 Por tôpico jlchiappa
Faz muuuito tempo desde que me vi numa situação semelhante, mas vou te dar 
algumas idéias/sugestões :

a) um SELECT * FROM tabelaSSquetemLONG funciona ?? Se sim, experimentou criar a 
tabela vazia no bd Oracle via CREATE TABLE apenas, e depois mandar um INSERT 
INTO tabelaoracle (SELECT * FROM tabelassqueteml...@dblink) ??

b) muitas vezes erros do tipo são bugzinhos de driver, middleware, coisa do 
tipo : o driver ODBC pra acesso ao SQLServer está Atual ? 

c) vc diz que tentou com o SQLDeveloper, já tentou usar a opção de migração 
dele na versão mais atual , que saiu um Julho agora , em 
http://www.oracle.com/technology/tech/migration//workbench/index_sqldev_omwb.html
 ??

d) configurações : não deveria dar erro, mas vc tentou usar um SET LONG  no 
sqlplus, aonde nnn é o valor máximo aceito pelo sqlplus na sua versão ?

se nada disso resultar, acho que as possibilidades seriam :

 1. usar um programinha de terceiros (tipo Access ou quetais, há N freewares 
pra isso pelaí na net) que pode abrir conexão pras duas máquinas, ler os dados 
de A e gravar em B. Um derivado disso é vc escrever um programinha (em java, 
.NET, VB, Delphi, whatever) que faça o mesmo
 
 ou
 
 2. gerar um arquivo-texto com as tabelas e importar no Oracle via sql*loader 
ou external table
 
 ou
 
 3. tentar inverter a mão, ie, usar o recurso do SS pra se conectar no Oracle 
(seja qual for) e de lá mandar um INSERT no bd Oracle
 
 
 []s
 
   Chiappa
   
--- Em oracle_br@yahoogrupos.com.br, Cyro cyrocu...@... escreveu

 Boa tarde.
 
 Estou tentando migrar uma base Sqlserver para o Oracle (10.2.0.4 - Windows
 32bits). Criei uma conexão Hsodbc entre o Sqlserver e o Oracle. Em seguida
 realizei um create table as select do sqlserver para o oracle. Ele me touxe
 todas as tabelas que não possuim tipo long na estrutura. Até ai tudo bem,
 era o que eu esperava. Agora vem a dúvida, como eu poderia fazer para copiar
 esses tabelas que estão no sqlserver e que possuem tipo long para o oracle ?
 
 Tentei de várias formas utilizar o copy from do sqplus, mas não resolveu.
 Ele não reconhece de forma alguma o dblink.
 
 Exemplo:
 copy from lnk_sqlserver to teste1/tes...@orcl - append NOTICIA using select
 * from noti...@lnk_sqlserver;
 
 Tamanho do vetor busc./ligaþ.Ú 15. (tamanho do vetor Ú 15)
 Validarß quando concluÝdo. (validaþÒoc¾pia Ú 0)
 ExtensÒo de tam.mßximo Ú 80. (extensÒo Ú 80)
 
 ERROR:
 ORA-03135: a conexÒo perdeu o contato
 
 Também tentei utilizar o Sqldeveloper Migration, mas foram inumeros erros
 tb.
 
 Alguem tem mais alguma ideia para fazer isso ?
 -- 
 Att,
 Cyro
 
 
 [As partes desta mensagem que não continham texto foram removidas]





Re: [oracle_br] Erro ORA-07445

2009-07-31 Por tôpico Caio Spadafora
Então como eu disse é um erro não esperado, então apesar da mesma mensagem pode 
ser outro problema, siga o procedimento a partir do metalink conforme e-mail 
abaixo.

Atenciosamente,
Caio Spadafora
http://0011brothers.blogspot.com/

--- Em sex, 31/7/09, idesenv ides...@gmail.com escreveu:

De: idesenv ides...@gmail.com
Assunto: Re: [oracle_br] Erro ORA-07445
Para: oracle_br@yahoogrupos.com.br
Data: Sexta-feira, 31 de Julho de 2009, 12:31






 





  Cara, aconteceu o mesmo erro aqui comigo.

Voce achou o problema?



2009/7/31 Dalton Pereira dal...@sd2000. com.br







 Obrigado Caio!



 Vou seguir sua dica, olharei no metalink.





 Atenciosamente,



 Dalton Oliveira | Database Administrator - OCP

 GLAUCO INFORMÁTICA

 * dal...@sd2000. com.br dalton%40sd2000. com.brmailto:

 dal...@sd2000. com.br dalton%40sd2000. com.br

 * 71 2103-5800

 P Antes de imprimir pense em seu compromisso com o Meio Ambiente



 De: oracle...@yahoogrup os.com.br oracle_br%40yahoog rupos.com. br [mailto:

 oracle...@yahoogrup os.com.br oracle_br%40yahoog rupos.com. br] Em nome de

 Caio Spadafora

 Enviada em: quinta-feira, 30 de julho de 2009 11:11

 Para: oracle...@yahoogrup os.com.br oracle_br%40yahoog rupos.com. br

 Assunto: Re: [oracle_br] Erro ORA-07445



 Dalton,



 Entre no metalink e procure pela Ora-600 error lookup tool. Informe o erro

 7445 e coloque o primeiro argumento... Você terá sua resposta, se tiver

 urgência abra uma SR na Oracle.



 Os erros ORA-0600 e ORA-07445 são erros não esperados, e são necessários

 análise de argumentos oud e dumps de memória para identificação. A boa

 notícia é que muitos já foram resolvidos e aplicando patches (existem alguns

 work arounds) você consegue se livrar deles.



 []'s

 Atenciosamente,

 Caio Spadafora.

 http://0011brothers .blogspot. com/



 --- Em qui, 30/7/09, Dalton Pereira dal...@sd2000. com.brdalton%40sd2000. 
 com.br

 mailto:dalton% 40sd2000. com.br dalton%2540sd2000. com.br escreveu:



 De: Dalton Pereira dal...@sd2000. com.br dalton%40sd2000. com.brmailto:

 dalton%40sd2000. com.br dalton%2540sd2000. com.br

 Assunto: [oracle_br] Erro ORA-07445

 Para: oracle...@yahoogrup os.com.br oracle_br%40yahoog rupos.com. br

 mailto:oracle_ br%40yahoogrupos .com.br oracle_br%2540yaho ogrupos.com. 
 br

 oracle...@yahoogrup os.com.br oracle_br%40yahoog rupos.com. brmailto:

 oracle_br%40yahoogr upos.com. br oracle_br%2540yaho ogrupos.com. br

 Data: Quinta-feira, 30 de Julho de 2009, 11:01



 Bom dia Pessoal!



 A poucos instantes um dos meus servidores ficou indisponível. Quando fui

 analisar o log de alerta vi muitas entradas do erro abaixo:



 Thu Jul 30 10:18:06 2009



 Errors in file /u01/app/oracle/ admin/prod02/ udump/prod02_ ora_19500. trc:



 ORA-07445: exception encountered: core dump [kghfrmrg()+ 174] [SIGBUS]

 [Non-existent physical address] [0x2994E7B0] [] []



 Alguém sabe o que pode ter provocado esse erro?



 SO.



 Linux gi-ora-03 2.6.9-42.ELsmp #1 SMP Wed Jul 12 23:27:17 EDT 2006 i686

 i686 i386 GNU/Linux



 BD.



 Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Prod



 PL/SQL Release 10.2.0.4.0 - Production



 CORE 10.2.0.4.0 Production



 TNS for Linux: Version 10.2.0.4.0 - Production



 NLSRTL Version 10.2.0.4.0 - Production



 Atenciosamente,



 Dalton Oliveira | Database Administrator - OCP



 GLAUCO INFORMÁTICA



 * dal...@sd2000. com.brmailto: dal...@sd2000. com.brmailto: dal...@sd2000.

 %20com.br



 * 71 2103-5800



 P Antes de imprimir pense em seu compromisso com o Meio Ambiente



  _ _ __



 A Informação Confidencial deverá ser utilizada única e exclusivamente no

 âmbito da relação com a Glauco Informática e não poderá ser repassada,

 reproduzida de qualquer outra forma, e nem revelada a terceiros.



 La información confidencial se utilizará única y exclusivamente en relación

 con Glauco Informática, y no se puede pasar, reproduce en modo alguno, ni

 revelada a terceros.



 The Confidential Information will be used solely and exclusively in

 relation to the Glauco Informatica and not be passed, reproduced in any way,

 nor disclosed to third parties.



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



  _ _ _ _ _ _

 Veja quais são os assuntos do momento no Yahoo! +Buscados

 http://br.maisbusca dos.yahoo. com



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



  _ _ __

 A Informação Confidencial deverá ser utilizada única e exclusivamente no

 âmbito da relação com a Glauco Informática e não poderá ser repassada,

 reproduzida de qualquer outra forma, e nem revelada a terceiros.



 La información confidencial se utilizará única y exclusivamente en relación

 con Glauco Informática, y no se puede pasar, reproduce en modo alguno, ni

 revelada a terceros.



 The Confidential Information will be used solely 

Re: [oracle_br] Re: USO DO COMANDO IN (=ANY)

2009-07-31 Por tôpico Pablo Câmara
Chiappa,
Valeu pela ajuda...mas não conseguí.
A solução com : coluna LIKE '%param1%' AND coluna LIKE '%param2%' and COLUNA
like '%param3%'
No meu caso não funcionou.

No meu exemplo:

CREATE TABLE arq.teste (cod NUMBER, vlr  VARCHAR2(20))

INSERT INTO TESTE (COD,VLR) VALUES (1,'1')/
INSERT INTO TESTE (COD,VLR) VALUES (1,'2')/
INSERT INTO TESTE (COD,VLR) VALUES (1,'3')/
INSERT INTO TESTE (COD,VLR) VALUES (1,'4')/
INSERT INTO TESTE (COD,VLR) VALUES (2,'3')/
INSERT INTO TESTE (COD,VLR) VALUES (2,'4')/

Pesquisar o documento que tenha as palavras *1 e 3.*

1)
 SELECT COD,VLR FROM ARQ.TESTE
 WHERE VLR LIKE '%1%' AND VLR LIKE '%3%'
  No results.

2)
 SELECT COD,VLR FROM ARQ.TESTE
 WHERE VLR LIKE '%1%' OR VLR LIKE '%3%'

  1 1
  1 3
  2 3

(Resultado igual ao IN)

Queria algo que atendende apenas aqueles que tivessem o valor 1 e 3.

Valeu, pela ajuda
Vou tentar outra coisa aqui!



2009/7/31 jlchiappa jlchia...@yahoo.com.br



 Colega, vamos por partes aí : primeiro de tudo, vamos entender : o WHERE é
 uma cláusula aplicada a CADA REGISTRO, um por vez, para filtragem, e o
 operador ALL indica que a condição deve ser verdadeira para TODOS os valores
 - sabendo-se isso, uma condição

 WHERE coluna = ALL (x, y, z)

 evidentemente *** NUNCA *** vai ser verdadeira, pois um valor de uma coluna
 NUNCA vai ser igual aos três ao mesmo tempo, ok ??? Óbvio que vc obteve No
 Results na sua primeira tentativa... O que vc quer é pesquisar NÂO por
 Igualdade, mas por presença, então esqueça o '=' , blz ? No banco 8i, já que
 vc não tem a REGEXPe iirc não tem Contexts também, as únicas opções pra se
 pesquisar por existência de uma substring dentro de outra são : o LIKE, as
 funções string tipo INSTR, escrita de uma função PL/SQL customizada sua ou
 alguma combinação complexa com Analytics (estes já existiam no 8i, só não
 lembro o release 8i exato em que foram introduzidos).
 Para usar o LIKE ou funções built-in, isso VAI implicar em SQL dinâmico,
 imagino que vc terá que ter uma rotina sua, que recebe os parâmetros
 digitados e os expande em vários LIKE, tipo :

 WHERE coluna LIKE '%param1%' AND coluna LIKE '%param2%' and COLUNA like
 '%param3%'

 ou com built-ins se quiser, algo assim..

 A opção de função customizada sua seria algo que vc chamaria no WHERE, tipo
 :

 WHERE minha_função(coluna, paramdebusca1, paramdebusca2, paramde busca3) =
 1 ...

 lógico, NENHUMA dessas alternativas vão ser extremamente saudável pra
 performance, mas é isso... A menos danosa imagino que seria montar alguma
 combinação com Analytics, mas e algo a se pesquisar...

 []s

 Chiappa
 --- Em oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br,
 Pablo Câmara pscam...@... escreveu
 
  *paramentroDaTela := BABCOCK DIGIMAPAS TUBO*

  *
  *
  *1) SELECT COD_DOCUMENTO FROM ARQ.REFERENCIAS_DOCUMENTOS WHERE
 TXT_DOCUMENTO
  IN (paramentroDaTela)*
  *
  *
  *No caso 1: vai retornar o código de varios documentos. Sendo uma tabela
  de 3 milhoes de registros. Fica inviável.*
  *
  *
  *2) SELECT COD_DOCUMENTO FROM ARQ.REFERENCIAS_DOCUMENTOS WHERE
 TXT_DOCUMENTO
  =ALL (paramentroDaTela)*
  *
  *
  *No caso 2: Se o comando funcionasse, traria apenas o código do
 documento,
  no qual todas as palavras passadas como paramentro fazem parte.*
  *
  *
  *Alguem tem alguma outra sugestão? PS: ORACLE 8I.*
  *
  *
  *Em outras versões do oracle (a partir do 9i) eu utilizo o regexp_like.
 Ou
  faço a busca por contexto.*
  *
  *
  *Pablo*
  *
  *
  *
  *
  *
  *
 
 
  [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: USO DO COMANDO IN (=ANY)

2009-07-31 Por tôpico Gustavo Venturini de Lima
Pablo, acho que tá confundindo alguma coisa...
Vc queria valores 1 ou/e 3 em qual campo???
Pq vc fez o teste só no VLR e tá parecendo que vc quer comparar o campo COD
tb...
Se for assim, é isso mesmo, mas vc TEM que explicitar o COD tb... Tipo:
SELECT COD,VLR FROM ARQ.TESTE
WHERE ((VLR LIKE '%1%' OR VLR LIKE '%3%')
  AND (COD LIKE '%1%' OR COD LIKE '%3%'));


2009/7/31 Pablo Câmara pscam...@gmail.com



 Chiappa,
 Valeu pela ajuda...mas não conseguí.
 A solução com : coluna LIKE '%param1%' AND coluna LIKE '%param2%' and
 COLUNA
 like '%param3%'
 No meu caso não funcionou.

 No meu exemplo:

 CREATE TABLE arq.teste (cod NUMBER, vlr VARCHAR2(20))

 INSERT INTO TESTE (COD,VLR) VALUES (1,'1')/
 INSERT INTO TESTE (COD,VLR) VALUES (1,'2')/
 INSERT INTO TESTE (COD,VLR) VALUES (1,'3')/
 INSERT INTO TESTE (COD,VLR) VALUES (1,'4')/
 INSERT INTO TESTE (COD,VLR) VALUES (2,'3')/
 INSERT INTO TESTE (COD,VLR) VALUES (2,'4')/

 Pesquisar o documento que tenha as palavras *1 e 3.*

 1)
 SELECT COD,VLR FROM ARQ.TESTE
 WHERE VLR LIKE '%1%' AND VLR LIKE '%3%'
  No results.

 2)
 SELECT COD,VLR FROM ARQ.TESTE
 WHERE VLR LIKE '%1%' OR VLR LIKE '%3%'
 
 1 1
 1 3
 2 3

 (Resultado igual ao IN)

 Queria algo que atendende apenas aqueles que tivessem o valor 1 e 3.

 Valeu, pela ajuda
 Vou tentar outra coisa aqui!

 2009/7/31 jlchiappa jlchia...@yahoo.com.br jlchiappa%40yahoo.com.br


 
 
  Colega, vamos por partes aí : primeiro de tudo, vamos entender : o WHERE
 é
  uma cláusula aplicada a CADA REGISTRO, um por vez, para filtragem, e o
  operador ALL indica que a condição deve ser verdadeira para TODOS os
 valores
  - sabendo-se isso, uma condição
 
  WHERE coluna = ALL (x, y, z)
 
  evidentemente *** NUNCA *** vai ser verdadeira, pois um valor de uma
 coluna
  NUNCA vai ser igual aos três ao mesmo tempo, ok ??? Óbvio que vc obteve
 No
  Results na sua primeira tentativa... O que vc quer é pesquisar NÂO por
  Igualdade, mas por presença, então esqueça o '=' , blz ? No banco 8i, já
 que
  vc não tem a REGEXPe iirc não tem Contexts também, as únicas opções pra
 se
  pesquisar por existência de uma substring dentro de outra são : o LIKE,
 as
  funções string tipo INSTR, escrita de uma função PL/SQL customizada sua
 ou
  alguma combinação complexa com Analytics (estes já existiam no 8i, só não
  lembro o release 8i exato em que foram introduzidos).
  Para usar o LIKE ou funções built-in, isso VAI implicar em SQL dinâmico,
  imagino que vc terá que ter uma rotina sua, que recebe os parâmetros
  digitados e os expande em vários LIKE, tipo :
 
  WHERE coluna LIKE '%param1%' AND coluna LIKE '%param2%' and COLUNA like
  '%param3%'
 
  ou com built-ins se quiser, algo assim..
 
  A opção de função customizada sua seria algo que vc chamaria no WHERE,
 tipo
  :
 
  WHERE minha_função(coluna, paramdebusca1, paramdebusca2, paramde busca3)
 =
  1 ...
 
  lógico, NENHUMA dessas alternativas vão ser extremamente saudável pra
  performance, mas é isso... A menos danosa imagino que seria montar alguma
  combinação com Analytics, mas e algo a se pesquisar...
 
  []s
 
  Chiappa
  --- Em oracle_br@yahoogrupos.com.br 
  oracle_br%40yahoogrupos.com.broracle_br%
 40yahoogrupos.com.br,
  Pablo Câmara pscam...@... escreveu
  
   *paramentroDaTela := BABCOCK DIGIMAPAS TUBO*
 
   *
   *
   *1) SELECT COD_DOCUMENTO FROM ARQ.REFERENCIAS_DOCUMENTOS WHERE
  TXT_DOCUMENTO
   IN (paramentroDaTela)*
   *
   *
   *No caso 1: vai retornar o código de varios documentos. Sendo uma
 tabela
   de 3 milhoes de registros. Fica inviável.*
   *
   *
   *2) SELECT COD_DOCUMENTO FROM ARQ.REFERENCIAS_DOCUMENTOS WHERE
  TXT_DOCUMENTO
   =ALL (paramentroDaTela)*
   *
   *
   *No caso 2: Se o comando funcionasse, traria apenas o código do
  documento,
   no qual todas as palavras passadas como paramentro fazem parte.*
   *
   *
   *Alguem tem alguma outra sugestão? PS: ORACLE 8I.*
   *
   *
   *Em outras versões do oracle (a partir do 9i) eu utilizo o regexp_like.
  Ou
   faço a busca por contexto.*
   *
   *
   *Pablo*
   *
   *
   *
   *
   *
   *
  
  
   [As partes desta mensagem que não continham texto foram removidas]
  
 
 
 

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

  



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



[oracle_br] erro no rman

2009-07-31 Por tôpico idesenv
Boa tarde,

Pessoal, eu estou tentando fazer backup da minha base e o rman esta
retornando o seguinte erro:


channel ORA_DISK_1: starting piece 1 at 31-JUL-09
RMAN-00571: ===
RMAN-00569: === ERROR MESSAGE STACK FOLLOWS ===
RMAN-00571: ===
RMAN-03002: failure of backup plus archivelog command at 07/31/2009 13:48:24
ORA-00600: codigo de erro interno, argumentos: [krbb0ef_inv_blk_2], [], [],
[], [], [], [], []


Alguem sabe o que pode ser?

Estou usando Oracle 10g R2 no Red Hat Enterprise Linux Server release 5.2
(Tikanga)


Meu script de backup:

RUN {
  BACKUP AS COMPRESSED BACKUPSET
DATABASE TAG 'DB_LEVEL0_WHOLE'
FORMAT '/backup/%d_%I_level0_%s_%p_%u.bkp'
PLUS ARCHIVELOG TAG 'ARCHIVEDLOGS'
DELETE INPUT
FORMAT '/backup/%d_%I_arch_%s_%p_%u.bkp';
}


Att


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



[oracle_br] Re: USO DO COMANDO IN (=ANY)

2009-07-31 Por tôpico jlchiappa
Não, colega, não : ** releia ** a minha msg, eu disse :

coluna like p1 AND coluna like p2 AND coluna like p3

é AND pra que obedeça a todas as condições, e não OR, yes ???

 []s

 Chiapa
--- Em oracle_br@yahoogrupos.com.br, Pablo Câmara pscam...@... escreveu

 Chiappa,
 Valeu pela ajuda...mas não conseguí.
 A solução com : coluna LIKE '%param1%' AND coluna LIKE '%param2%' and COLUNA
 like '%param3%'
 No meu caso não funcionou.
 
 No meu exemplo:
 
 CREATE TABLE arq.teste (cod NUMBER, vlr  VARCHAR2(20))
 
 INSERT INTO TESTE (COD,VLR) VALUES (1,'1')/
 INSERT INTO TESTE (COD,VLR) VALUES (1,'2')/
 INSERT INTO TESTE (COD,VLR) VALUES (1,'3')/
 INSERT INTO TESTE (COD,VLR) VALUES (1,'4')/
 INSERT INTO TESTE (COD,VLR) VALUES (2,'3')/
 INSERT INTO TESTE (COD,VLR) VALUES (2,'4')/
 
 Pesquisar o documento que tenha as palavras *1 e 3.*
 
 1)
  SELECT COD,VLR FROM ARQ.TESTE
  WHERE VLR LIKE '%1%' AND VLR LIKE '%3%'
   No results.
 
 2)
  SELECT COD,VLR FROM ARQ.TESTE
  WHERE VLR LIKE '%1%' OR VLR LIKE '%3%'
 
   1 1
   1 3
   2 3
 
 (Resultado igual ao IN)
 
 Queria algo que atendende apenas aqueles que tivessem o valor 1 e 3.
 
 Valeu, pela ajuda
 Vou tentar outra coisa aqui!
 
 
 
 2009/7/31 jlchiappa jlchia...@...
 
 
 
  Colega, vamos por partes aí : primeiro de tudo, vamos entender : o WHERE é
  uma cláusula aplicada a CADA REGISTRO, um por vez, para filtragem, e o
  operador ALL indica que a condição deve ser verdadeira para TODOS os valores
  - sabendo-se isso, uma condição
 
  WHERE coluna = ALL (x, y, z)
 
  evidentemente *** NUNCA *** vai ser verdadeira, pois um valor de uma coluna
  NUNCA vai ser igual aos três ao mesmo tempo, ok ??? Óbvio que vc obteve No
  Results na sua primeira tentativa... O que vc quer é pesquisar NÂO por
  Igualdade, mas por presença, então esqueça o '=' , blz ? No banco 8i, já que
  vc não tem a REGEXPe iirc não tem Contexts também, as únicas opções pra se
  pesquisar por existência de uma substring dentro de outra são : o LIKE, as
  funções string tipo INSTR, escrita de uma função PL/SQL customizada sua ou
  alguma combinação complexa com Analytics (estes já existiam no 8i, só não
  lembro o release 8i exato em que foram introduzidos).
  Para usar o LIKE ou funções built-in, isso VAI implicar em SQL dinâmico,
  imagino que vc terá que ter uma rotina sua, que recebe os parâmetros
  digitados e os expande em vários LIKE, tipo :
 
  WHERE coluna LIKE '%param1%' AND coluna LIKE '%param2%' and COLUNA like
  '%param3%'
 
  ou com built-ins se quiser, algo assim..
 
  A opção de função customizada sua seria algo que vc chamaria no WHERE, tipo
  :
 
  WHERE minha_função(coluna, paramdebusca1, paramdebusca2, paramde busca3) =
  1 ...
 
  lógico, NENHUMA dessas alternativas vão ser extremamente saudável pra
  performance, mas é isso... A menos danosa imagino que seria montar alguma
  combinação com Analytics, mas e algo a se pesquisar...
 
  []s
 
  Chiappa
  --- Em oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br,
  Pablo Câmara pscamara@ escreveu
  
   *paramentroDaTela := BABCOCK DIGIMAPAS TUBO*
 
   *
   *
   *1) SELECT COD_DOCUMENTO FROM ARQ.REFERENCIAS_DOCUMENTOS WHERE
  TXT_DOCUMENTO
   IN (paramentroDaTela)*
   *
   *
   *No caso 1: vai retornar o código de varios documentos. Sendo uma tabela
   de 3 milhoes de registros. Fica inviável.*
   *
   *
   *2) SELECT COD_DOCUMENTO FROM ARQ.REFERENCIAS_DOCUMENTOS WHERE
  TXT_DOCUMENTO
   =ALL (paramentroDaTela)*
   *
   *
   *No caso 2: Se o comando funcionasse, traria apenas o código do
  documento,
   no qual todas as palavras passadas como paramentro fazem parte.*
   *
   *
   *Alguem tem alguma outra sugestão? PS: ORACLE 8I.*
   *
   *
   *Em outras versões do oracle (a partir do 9i) eu utilizo o regexp_like.
  Ou
   faço a busca por contexto.*
   *
   *
   *Pablo*
   *
   *
   *
   *
   *
   *
  
  
   [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] erro no rman

2009-07-31 Por tôpico Rodrigo Mufalani
Boa tarde,

   No metalink tem uma ORA-600 ORA-7445 analyze tool, já faz algum
tempo... Tentou ver isso por lá?

   Note 469486.1

Vc está com bloco corrompido no banco de dados, use o DBVERIFY -
Database file Verification Utility


Atenciosamente,

Rodrigo Mufalani
OCP 10g  11g
OCE RAC 10g R2
mufal...@oi.com.br
http://mufalani.blogspot.com




 Mensagem Original:
 Data: 14:19:56 31/07/2009
 De: idesenv ides...@gmail.com
 Assunto: [oracle_br] erro no rman

 Boa tarde,

 Pessoal, eu estou tentando fazer backup da minha base e o rman esta
 retornando o seguinte erro:


 channel ORA_DISK_1: starting piece 1 at 31-JUL-09
 RMAN-00571: ===
 RMAN-00569: === ERROR MESSAGE STACK FOLLOWS ===
 RMAN-00571: ===
 RMAN-03002: failure of backup plus archivelog command at 07/31/2009 13:48:24
 ORA-00600: codigo de erro interno, argumentos: [krbb0ef_inv_blk_2], [], [],
 [], [], [], [], []


 Alguem sabe o que pode ser?

 Estou usando Oracle 10g R2 no Red Hat Enterprise Linux Server release 5.2
 (Tikanga)


 Meu script de backup:

 RUN {
   BACKUP AS COMPRESSED BACKUPSET
 DATABASE TAG 'DB_LEVEL0_WHOLE'
 FORMAT '/backup/%d_%I_level0_%s_%p_%u.bkp'
 PLUS ARCHIVELOG TAG 'ARCHIVEDLOGS'
 DELETE INPUT
 FORMAT '/backup/%d_%I_arch_%s_%p_%u.bkp';
 }


 Att


 [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









Na Oi Internet você ganha ou ganha. Além de acesso grátis com
qualidade, você pode ter contas ilimitadas de email com 1 giga cada uma,
suporte grátis e muito mais. Baixe grátis o Discador Oi em
http://www.oi.com.br/discador e comece a ganhar.

Agora, se o seu negócio é voar alto na internet,
assine Oi Internet Banda Larga e ganhe o modem grátis. Clique em
http://www.oi.com.br/bandalarga e aproveite essa moleza!



[oracle_br] ** Insert em Campo LONG **

2009-07-31 Por tôpico Robson Muniz (Terra)
Srs, estou efetuando um insert em campo LONG, porém, quando efetuo um insert
com mais de 4000 caracteres, o mesmo diz que estou inserindo valores a mais
do que o campo suporta.

 

Sabem me dizer qual a quantidade de caracteres suportada para um campo tipo
Long no Oracle 10g ?

 

Existe algum parâmetro de banco que possa estar impactando nesse ponto?

 

Obrigado a todos.

 

 

 



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



Re: [oracle_br] ** Insert em Campo LONG **

2009-07-31 Por tôpico Rodrigo Mufalani
Boa tarde,

Há um documento chamado database limits. Dê uma olhada em
http://download.oracle.com/docs/cd/B19306_01/server.102/b14237/limits001.htm#i287903

Datatype Limits
Datatypes   Limit   Comments
BFILE   Maximum size: 4 GB

Maximum size of a file name: 255 characters

Maximum size of a directory name: 30 characters

Maximum number of open BFILEs: see Comments
The maximum number of BFILEs is limited by the value of the
SESSION_MAX_OPEN_FILES initialization parameter, which is itself limited
by the maximum number of open files the operating system will allow.
BLOBMaximum size: (4 GB - 1) * DB_BLOCK_SIZE initialization parameter
(8 TB to 128 TB)The number of LOB columns per table is limited only by
the maximum number of columns per table (that is, 1000Foot 1 ).
CHARMaximum size: 2000 bytes
CHAR VARYINGMaximum size: 4000 bytes
CLOBMaximum size: (4 GB - 1) * DB_BLOCK_SIZE initialization parameter
(8 TB to 128 TB)The number of LOB columns per table is limited only by
the maximum number of columns per table (that is, 1000Footref 1).
Literals (characters or numbers in SQL or PL/SQL)   Maximum size: 4000
characters
LONGMaximum size: 2 GB - 1  Only one LONG column is allowed per table.
NCHAR   Maximum size: 2000 bytes
NCHAR VARYING   Maximum size: 4000 bytes
NCLOB   Maximum size: (4 GB - 1) * DB_BLOCK_SIZE initialization parameter
(8 TB to 128 TB)The number of LOB columns per table is limited only by
the maximum number of columns per table (that is, 1000Footref 1).
NUMBER  999...(38 9's) x10125 maximum value Can be represented to full
38-digit precision (the mantissa).
-999...(38 9's) x10125 minimum valueCan be represented to full
38-digit precision (the mantissa).
Precision   38 significant digits
RAW Maximum size: 2000 bytes
VARCHAR Maximum size: 4000 bytes
VARCHAR2Maximum size: 4000 bytes

Atenciosamente,

Rodrigo Mufalani
OCP 10g  11g
OCE RAC 10g R2
mufal...@oi.com.br
http://mufalani.blogspot.com



 Mensagem Original:
 Data: 14:47:20 31/07/2009
 De: Robson Muniz (Terra) rmunizso...@terra.com.br
 Assunto: [oracle_br] ** Insert em Campo LONG **

 Srs, estou efetuando um insert em campo LONG, porém, quando efetuo um insert
 com mais de 4000 caracteres, o mesmo diz que estou inserindo valores a mais
 do que o campo suporta.



 Sabem me dizer qual a quantidade de caracteres suportada para um campo tipo
 Long no Oracle 10g ?



 Existe algum parâmetro de banco que possa estar impactando nesse ponto?



 Obrigado a todos.









 [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









Na Oi Internet você ganha ou ganha. Além de acesso grátis com
qualidade, você pode ter contas ilimitadas de email com 1 giga cada uma,
suporte grátis e muito mais. Baixe grátis o Discador Oi em
http://www.oi.com.br/discador e comece a ganhar.

Agora, se o seu negócio é voar alto na internet,
assine Oi Internet Banda Larga e ganhe o modem grátis. Clique em
http://www.oi.com.br/bandalarga e aproveite essa moleza!



Re: [oracle_br] Re: USO DO COMANDO IN (=ANY)

2009-07-31 Por tôpico Pablo Câmara
Gostaria que viesse o resultado: cod = 1 (apenas)
Já que o cod 1 possui tanto o vlr 1 e o vlr 3




2009/7/31 jlchiappa jlchia...@yahoo.com.br



 Não, colega, não : ** releia ** a minha msg, eu disse :

 coluna like p1 AND coluna like p2 AND coluna like p3

 é AND pra que obedeça a todas as condições, e não OR, yes ???

 []s

 Chiapa

 --- Em oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br,
 Pablo Câmara pscam...@... escreveu
 
  Chiappa,
  Valeu pela ajuda...mas não conseguí.
  A solução com : coluna LIKE '%param1%' AND coluna LIKE '%param2%' and
 COLUNA
  like '%param3%'
  No meu caso não funcionou.
 
  No meu exemplo:
 
  CREATE TABLE arq.teste (cod NUMBER, vlr VARCHAR2(20))
 
  INSERT INTO TESTE (COD,VLR) VALUES (1,'1')/
  INSERT INTO TESTE (COD,VLR) VALUES (1,'2')/
  INSERT INTO TESTE (COD,VLR) VALUES (1,'3')/
  INSERT INTO TESTE (COD,VLR) VALUES (1,'4')/
  INSERT INTO TESTE (COD,VLR) VALUES (2,'3')/
  INSERT INTO TESTE (COD,VLR) VALUES (2,'4')/
 
  Pesquisar o documento que tenha as palavras *1 e 3.*
 
  1)
  SELECT COD,VLR FROM ARQ.TESTE
  WHERE VLR LIKE '%1%' AND VLR LIKE '%3%'
   No results.
 
  2)
  SELECT COD,VLR FROM ARQ.TESTE
  WHERE VLR LIKE '%1%' OR VLR LIKE '%3%'
  
  1 1
  1 3
  2 3
 
  (Resultado igual ao IN)
 
  Queria algo que atendende apenas aqueles que tivessem o valor 1 e 3.
 
  Valeu, pela ajuda
  Vou tentar outra coisa aqui!
 
 
 
  2009/7/31 jlchiappa jlchia...@...

 
  
  
   Colega, vamos por partes aí : primeiro de tudo, vamos entender : o
 WHERE é
   uma cláusula aplicada a CADA REGISTRO, um por vez, para filtragem, e o
   operador ALL indica que a condição deve ser verdadeira para TODOS os
 valores
   - sabendo-se isso, uma condição
  
   WHERE coluna = ALL (x, y, z)
  
   evidentemente *** NUNCA *** vai ser verdadeira, pois um valor de uma
 coluna
   NUNCA vai ser igual aos três ao mesmo tempo, ok ??? Óbvio que vc obteve
 No
   Results na sua primeira tentativa... O que vc quer é pesquisar NÂO por
   Igualdade, mas por presença, então esqueça o '=' , blz ? No banco 8i,
 já que
   vc não tem a REGEXPe iirc não tem Contexts também, as únicas opções pra
 se
   pesquisar por existência de uma substring dentro de outra são : o LIKE,
 as
   funções string tipo INSTR, escrita de uma função PL/SQL customizada sua
 ou
   alguma combinação complexa com Analytics (estes já existiam no 8i, só
 não
   lembro o release 8i exato em que foram introduzidos).
   Para usar o LIKE ou funções built-in, isso VAI implicar em SQL
 dinâmico,
   imagino que vc terá que ter uma rotina sua, que recebe os parâmetros
   digitados e os expande em vários LIKE, tipo :
  
   WHERE coluna LIKE '%param1%' AND coluna LIKE '%param2%' and COLUNA like
   '%param3%'
  
   ou com built-ins se quiser, algo assim..
  
   A opção de função customizada sua seria algo que vc chamaria no WHERE,
 tipo
   :
  
   WHERE minha_função(coluna, paramdebusca1, paramdebusca2, paramde
 busca3) =
   1 ...
  
   lógico, NENHUMA dessas alternativas vão ser extremamente saudável pra
   performance, mas é isso... A menos danosa imagino que seria montar
 alguma
   combinação com Analytics, mas e algo a se pesquisar...
  
   []s
  
   Chiappa
   --- Em oracle_br@yahoogrupos.com.br 
   oracle_br%40yahoogrupos.com.broracle_br%
 40yahoogrupos.com.br,
   Pablo Câmara pscamara@ escreveu
   
*paramentroDaTela := BABCOCK DIGIMAPAS TUBO*
  
*
*
*1) SELECT COD_DOCUMENTO FROM ARQ.REFERENCIAS_DOCUMENTOS WHERE
   TXT_DOCUMENTO
IN (paramentroDaTela)*
*
*
*No caso 1: vai retornar o código de varios documentos. Sendo uma
 tabela
de 3 milhoes de registros. Fica inviável.*
*
*
*2) SELECT COD_DOCUMENTO FROM ARQ.REFERENCIAS_DOCUMENTOS WHERE
   TXT_DOCUMENTO
=ALL (paramentroDaTela)*
*
*
*No caso 2: Se o comando funcionasse, traria apenas o código do
   documento,
no qual todas as palavras passadas como paramentro fazem parte.*
*
*
*Alguem tem alguma outra sugestão? PS: ORACLE 8I.*
*
*
*Em outras versões do oracle (a partir do 9i) eu utilizo o
 regexp_like.
   Ou
faço a busca por contexto.*
*
*
*Pablo*
*
*
*
*
*
*
   
   
[As partes desta mensagem que não continham texto foram removidas]
   
  
  
  
 
 
  [As partes desta mensagem que não continham texto foram removidas]
 

  



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



Re: [oracle_br] Re: USO DO COMANDO IN (=ANY)

2009-07-31 Por tôpico Milton Bastos
Pablo

Eu subentendi que vc quer
apenas os registros que tenham
COD = 1 e VLR = 3, é isso que vc quis dizer
com valores 1 e 3??

Se for, vc escreveu errado seu select:

1)
SELECT COD,VLR FROM ARQ.TESTE
WHERE VLR LIKE '%1%' AND VLR LIKE '%3%'
 No results.


Vc colocou o campo VLR DUAS vezes...
troque um dos VLR por COD.

Do jeito que vc escreveu nunca vai retornar NADA,
afinal, o mesmo campo (VLR) nunca vai ter AO MESMO TEMPO
dois valores diferentes (1 e 3).



 
 
---Original Message---
 
From: Pablo Câmara
Date: 31/7/2009 14:09:57
To: oracle_br@yahoogrupos.com.br
Subject: Re: [oracle_br] Re: USO DO COMANDO IN (=ANY)
 
  Chiappa,
Valeu pela ajuda...mas não conseguí.
A solução com : coluna LIKE '%param1%' AND coluna LIKE '%param2%' and COLUNA
like '%param3%'
No meu caso não funcionou.

No meu exemplo:

CREATE TABLE arq.teste (cod NUMBER, vlr VARCHAR2(20))

INSERT INTO TESTE (COD,VLR) VALUES (1,'1')/
INSERT INTO TESTE (COD,VLR) VALUES (1,'2')/
INSERT INTO TESTE (COD,VLR) VALUES (1,'3')/
INSERT INTO TESTE (COD,VLR) VALUES (1,'4')/
INSERT INTO TESTE (COD,VLR) VALUES (2,'3')/
INSERT INTO TESTE (COD,VLR) VALUES (2,'4')/

Pesquisar o documento que tenha as palavras *1 e 3.*

1)
SELECT COD,VLR FROM ARQ.TESTE
WHERE VLR LIKE '%1%' AND VLR LIKE '%3%'
 No results.

2)
SELECT COD,VLR FROM ARQ.TESTE
WHERE VLR LIKE '%1%' OR VLR LIKE '%3%'

1 1
1 3
2 3

(Resultado igual ao IN)

Queria algo que atendende apenas aqueles que tivessem o valor 1 e 3.

Valeu, pela ajuda
Vou tentar outra coisa aqui!

2009/7/31 jlchiappa jlchia...@yahoo.com.br



 Colega, vamos por partes aí : primeiro de tudo, vamos entender : o WHERE é
 uma cláusula aplicada a CADA REGISTRO, um por vez, para filtragem, e o
 operador ALL indica que a condição deve ser verdadeira para TODOS os
valores
 - sabendo-se isso, uma condição

 WHERE coluna = ALL (x, y, z)

 evidentemente *** NUNCA *** vai ser verdadeira, pois um valor de uma
coluna
 NUNCA vai ser igual aos três ao mesmo tempo, ok ??? Óbvio que vc obteve 
No
 Results na sua primeira tentativa... O que vc quer é pesquisar NÂO por
 Igualdade, mas por presença, então esqueça o '=' , blz ? No banco 8i, já
que
 vc não tem a REGEXPe iirc não tem Contexts também, as únicas opções pra se
 pesquisar por existência de uma substring dentro de outra são : o LIKE, as
 funções string tipo INSTR, escrita de uma função PL/SQL customizada sua ou
 alguma combinação complexa com Analytics (estes já existiam no 8i, só não
 lembro o release 8i exato em que foram introduzidos).
 Para usar o LIKE ou funções built-in, isso VAI implicar em SQL dinâmico,
 imagino que vc terá que ter uma rotina sua, que recebe os parâmetros
 digitados e os expande em vários LIKE, tipo :

 WHERE coluna LIKE '%param1%' AND coluna LIKE '%param2%' and COLUNA like
 '%param3%'

 ou com built-ins se quiser, algo assim..

 A opção de função customizada sua seria algo que vc chamaria no WHERE,
tipo
 :

 WHERE minha_função(coluna, paramdebusca1, paramdebusca2, paramde busca3) =
 1 ...

 lógico, NENHUMA dessas alternativas vão ser extremamente saudável pra
 performance, mas é isso... A menos danosa imagino que seria montar alguma
 combinação com Analytics, mas e algo a se pesquisar...

 []s

 Chiappa
 --- Em oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br,
 Pablo Câmara pscam...@... escreveu
 
  *paramentroDaTela := BABCOCK DIGIMAPAS TUBO*

  *
  *
  *1) SELECT COD_DOCUMENTO FROM ARQ.REFERENCIAS_DOCUMENTOS WHERE
 TXT_DOCUMENTO
  IN (paramentroDaTela)*
  *
  *
  *No caso 1: vai retornar o código de varios documentos. Sendo uma tabela
  de 3 milhoes de registros. Fica inviável.*
  *
  *
  *2) SELECT COD_DOCUMENTO FROM ARQ.REFERENCIAS_DOCUMENTOS WHERE
 TXT_DOCUMENTO
  =ALL (paramentroDaTela)*
  *
  *
  *No caso 2: Se o comando funcionasse, traria apenas o código do
 documento,
  no qual todas as palavras passadas como paramentro fazem parte.*
  *
  *
  *Alguem tem alguma outra sugestão? PS: ORACLE 8I.*
  *
  *
  *Em outras versões do oracle (a partir do 9i) eu utilizo o regexp_like.
 Ou
  faço a busca por contexto.*
  *
  *
  *Pablo*
  *
  *
  *
  *
  *
  *
 
 
  [As partes desta mensagem que não continham texto foram removidas]
 

 


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



 

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



RE: [oracle_br] Re: USO DO COMANDO IN (=ANY)

2009-07-31 Por tôpico Flaviano, Wellington (GE Money)
Utiliza o exists, where exits coluna = 1 ... And exists coluna =3 ... Acredito 
que funciona... 



-Original Message-
From: oracle_br@yahoogrupos.com.br [mailto:oracle...@yahoogrupos.com.br] On 
Behalf Of Pablo Câmara
Sent: Friday, July 31, 2009 3:07 PM
To: oracle_br@yahoogrupos.com.br
Subject: Re: [oracle_br] Re: USO DO COMANDO IN (=ANY)

Gostaria que viesse o resultado: cod = 1 (apenas) Já que o cod 1 possui tanto o 
vlr 1 e o vlr 3




2009/7/31 jlchiappa jlchia...@yahoo.com.br



 Não, colega, não : ** releia ** a minha msg, eu disse :

 coluna like p1 AND coluna like p2 AND coluna like p3

 é AND pra que obedeça a todas as condições, e não OR, yes ???

 []s

 Chiapa

 --- Em oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br, 
 Pablo Câmara pscam...@... escreveu
 
  Chiappa,
  Valeu pela ajuda...mas não conseguí.
  A solução com : coluna LIKE '%param1%' AND coluna LIKE '%param2%' 
  and
 COLUNA
  like '%param3%'
  No meu caso não funcionou.
 
  No meu exemplo:
 
  CREATE TABLE arq.teste (cod NUMBER, vlr VARCHAR2(20))
 
  INSERT INTO TESTE (COD,VLR) VALUES (1,'1')/ INSERT INTO TESTE 
  (COD,VLR) VALUES (1,'2')/ INSERT INTO TESTE (COD,VLR) VALUES 
  (1,'3')/ INSERT INTO TESTE (COD,VLR) VALUES (1,'4')/ INSERT INTO 
  TESTE (COD,VLR) VALUES (2,'3')/ INSERT INTO TESTE (COD,VLR) VALUES 
  (2,'4')/
 
  Pesquisar o documento que tenha as palavras *1 e 3.*
 
  1)
  SELECT COD,VLR FROM ARQ.TESTE
  WHERE VLR LIKE '%1%' AND VLR LIKE '%3%'
   No results.
 
  2)
  SELECT COD,VLR FROM ARQ.TESTE
  WHERE VLR LIKE '%1%' OR VLR LIKE '%3%'
  
  1 1
  1 3
  2 3
 
  (Resultado igual ao IN)
 
  Queria algo que atendende apenas aqueles que tivessem o valor 1 e 3.
 
  Valeu, pela ajuda
  Vou tentar outra coisa aqui!
 
 
 
  2009/7/31 jlchiappa jlchia...@...

 
  
  
   Colega, vamos por partes aí : primeiro de tudo, vamos entender : o
 WHERE é
   uma cláusula aplicada a CADA REGISTRO, um por vez, para filtragem, 
   e o operador ALL indica que a condição deve ser verdadeira para 
   TODOS os
 valores
   - sabendo-se isso, uma condição
  
   WHERE coluna = ALL (x, y, z)
  
   evidentemente *** NUNCA *** vai ser verdadeira, pois um valor de 
   uma
 coluna
   NUNCA vai ser igual aos três ao mesmo tempo, ok ??? Óbvio que vc 
   obteve
 No
   Results na sua primeira tentativa... O que vc quer é pesquisar 
   NÂO por Igualdade, mas por presença, então esqueça o '=' , blz ? 
   No banco 8i,
 já que
   vc não tem a REGEXPe iirc não tem Contexts também, as únicas 
   opções pra
 se
   pesquisar por existência de uma substring dentro de outra são : o 
   LIKE,
 as
   funções string tipo INSTR, escrita de uma função PL/SQL 
   customizada sua
 ou
   alguma combinação complexa com Analytics (estes já existiam no 8i, 
   só
 não
   lembro o release 8i exato em que foram introduzidos).
   Para usar o LIKE ou funções built-in, isso VAI implicar em SQL
 dinâmico,
   imagino que vc terá que ter uma rotina sua, que recebe os 
   parâmetros digitados e os expande em vários LIKE, tipo :
  
   WHERE coluna LIKE '%param1%' AND coluna LIKE '%param2%' and COLUNA 
   like '%param3%'
  
   ou com built-ins se quiser, algo assim..
  
   A opção de função customizada sua seria algo que vc chamaria no 
   WHERE,
 tipo
   :
  
   WHERE minha_função(coluna, paramdebusca1, paramdebusca2, paramde
 busca3) =
   1 ...
  
   lógico, NENHUMA dessas alternativas vão ser extremamente saudável 
   pra performance, mas é isso... A menos danosa imagino que seria 
   montar
 alguma
   combinação com Analytics, mas e algo a se pesquisar...
  
   []s
  
   Chiappa
   --- Em oracle_br@yahoogrupos.com.br 
   oracle_br%40yahoogrupos.com.broracle_br%
 40yahoogrupos.com.br,
   Pablo Câmara pscamara@ escreveu
   
*paramentroDaTela := BABCOCK DIGIMAPAS TUBO*
  
*
*
*1) SELECT COD_DOCUMENTO FROM ARQ.REFERENCIAS_DOCUMENTOS WHERE
   TXT_DOCUMENTO
IN (paramentroDaTela)*
*
*
*No caso 1: vai retornar o código de varios documentos. Sendo 
uma
 tabela
de 3 milhoes de registros. Fica inviável.*
*
*
*2) SELECT COD_DOCUMENTO FROM ARQ.REFERENCIAS_DOCUMENTOS WHERE
   TXT_DOCUMENTO
=ALL (paramentroDaTela)*
*
*
*No caso 2: Se o comando funcionasse, traria apenas o código do
   documento,
no qual todas as palavras passadas como paramentro fazem parte.*
*
*
*Alguem tem alguma outra sugestão? PS: ORACLE 8I.*
*
*
*Em outras versões do oracle (a partir do 9i) eu utilizo o
 regexp_like.
   Ou
faço a busca por contexto.*
*
*
*Pablo*
*
*
*
*
*
*
   
   
[As partes desta mensagem que não continham texto foram 
removidas]
   
  
  
  
 
 
  [As partes desta mensagem que não continham texto foram removidas]
 

  



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






[oracle_br] Re: ** Insert em Campo LONG **

2009-07-31 Por tôpico jlchiappa
Rodrigo, é tudo verdade, mas pelo que o colega lá fala, o que ele está fazendo 
é num programa SQL mandar um :

INSERT INTO tabelacomLONG values (nn, 'stringcommaisde4milcaracteres');

em sendo isso, a questão Não É limite do databse em si, mas sim da linguagem 
SQL, no dialeto SQL do banco Oracle uma string só pode ter 4 mil caracteres no 
máximo, é limitação DA LINGUAGEM SQL Pra ele ver que é isso, basta se 
encapsular num programa PL/SQL, que aí o limite de strings únicas passa a ser o 
do PL/SQL, que é 32 Kb, abaixo boto um exemplinho
 
Robson, só uma coisa : o dataype LONG no banco 10g já foi DEPRECIADO há anos  
anos, vc NÃO DEVERIA estar trabalhando com ele no 10g, eles já deveriam ter 
sido convertidos para LOBs, pois (entre outras vantagens muitas) a Oracle para 
LOBs já fornece uma API pra se quebrar uma string comprida em pedaços 
manipuláveis pelos limites doSQL e do PL/SQL (é a DBMS_LOB), pra LONGs vc está 
absolutamente por sua conta

O exemplinho (com a string editada que senão o yahoo!groups trunca a mensagem, 
mas faça por inteiro que garanto que funfa)  :

sys...@10g:SQLcreate table t (c1 number, c2 long);

Tabela criada.

sys...@10g:SQLget c:\1.sql
SP2-0161: linha 1 truncada.
  1  insert into T values(1, 
'1234567890123456789012345678901234567890stringcommenosde4000caracteres...1234567890123456789012345678901234567890');

1 linha criada.

sys...@10g:SQLcommit;

Commit concluído.

sys...@10g:SQLget c:\1.sql
  1  insert into T values(1, 
'1234567890123456789012345678901234567890...stringcomMAISde4000caracteres...12345');

sys...@10g:SQL/
insert into T values(1, '123456789012345'
*
ERRO na linha 1:
ORA-01704: literal de string extenso demais


sys...@10g:SQLget c:\1.sql
  1  DECLARE
  2 v_string varchar2(32767) := 
'12345678901234567890..stringcommaisde4000caracteres...12345';
  4  BEGIN
  5 insert into T values(1, v_string);
  6* END;
sys...@10g:SQL/

Procedimento PL/SQL concluído com sucesso.

sys...@10g:SQLset long 5000
sys...@10g:SQLselect * from t;

C1 C2
-- 

 1 123456789001234567890123456789012345678901234567890
 1 12345678900123456789012345678901234567890123456789012345


sys...@10g:SQL
--- Em oracle_br@yahoogrupos.com.br, Rodrigo Mufalani mufal...@... escreveu

 Boa tarde,
 
 Há um documento chamado database limits. Dê uma olhada em
 http://download.oracle.com/docs/cd/B19306_01/server.102/b14237/limits001.htm#i287903
 
 Datatype Limits
 Datatypes Limit   Comments
 BFILE Maximum size: 4 GB
 
 Maximum size of a file name: 255 characters
 
 Maximum size of a directory name: 30 characters
 
 Maximum number of open BFILEs: see Comments
   The maximum number of BFILEs is limited by the value of the
 SESSION_MAX_OPEN_FILES initialization parameter, which is itself limited
 by the maximum number of open files the operating system will allow.
 BLOB  Maximum size: (4 GB - 1) * DB_BLOCK_SIZE initialization parameter
 (8 TB to 128 TB)  The number of LOB columns per table is limited only by
 the maximum number of columns per table (that is, 1000Foot 1 ).
 CHAR  Maximum size: 2000 bytes
 CHAR VARYING  Maximum size: 4000 bytes
 CLOB  Maximum size: (4 GB - 1) * DB_BLOCK_SIZE initialization parameter
 (8 TB to 128 TB)  The number of LOB columns per table is limited only by
 the maximum number of columns per table (that is, 1000Footref 1).
 Literals (characters or numbers in SQL or PL/SQL) Maximum size: 4000
 characters
 LONG  Maximum size: 2 GB - 1  Only one LONG column is allowed per table.
 NCHAR Maximum size: 2000 bytes
 NCHAR VARYING Maximum size: 4000 bytes
 NCLOB Maximum size: (4 GB - 1) * DB_BLOCK_SIZE initialization 
 parameter
 (8 TB to 128 TB)  The number of LOB columns per table is limited only by
 the maximum number of columns per table (that is, 1000Footref 1).
 NUMBER999...(38 9's) x10125 maximum value Can be represented to 
 full
 38-digit precision (the mantissa).
 -999...(38 9's) x10125 minimum value  Can be represented to full
 38-digit precision (the mantissa).
 Precision 38 significant digits
 RAW   Maximum size: 2000 bytes
 VARCHAR   Maximum size: 4000 bytes
 VARCHAR2  Maximum size: 4000 bytes
 
 Atenciosamente,
 
 Rodrigo Mufalani
 OCP 10g  11g
 OCE RAC 10g R2
 mufal...@...
 http://mufalani.blogspot.com
 
 
 
  Mensagem Original:
  Data: 14:47:20 31/07/2009
  De: Robson Muniz (Terra) rmunizso...@...
  Assunto: [oracle_br] ** Insert em Campo LONG **
 
  Srs, estou efetuando um insert em campo LONG, porém, quando efetuo um insert
  com mais de 4000 caracteres, o mesmo diz que estou inserindo valores a mais
  do que o campo suporta.
 
 
 
  Sabem me dizer qual a quantidade de caracteres suportada para um campo tipo
  Long no Oracle 10g ?
 
 
 
  Existe algum parâmetro de banco que possa estar 

Re: [oracle_br] Re: USO DO COMANDO IN (=ANY)

2009-07-31 Por tôpico Pablo Câmara
Flaviano, acho que é exatamente isso!
select distinct cod from teste t1
where exists (select * from teste t2 where t2.cod = t1.cod and   t2.vlr =
'3')
and   exists (select * from teste t2 where t2.cod = t1.cod and   t2.vlr =
'1')

Obrigado!



2009/7/31 Flaviano, Wellington (GE Money) wellington.flavi...@ge.com



 Utiliza o exists, where exits coluna = 1 ... And exists coluna =3 ...
 Acredito que funciona...

 -Original Message-
 From: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br[mailto:
 oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br] On Behalf
 Of Pablo Câmara
 Sent: Friday, July 31, 2009 3:07 PM
 To: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br
 Subject: Re: [oracle_br] Re: USO DO COMANDO IN (=ANY)

 Gostaria que viesse o resultado: cod = 1 (apenas) Já que o cod 1 possui
 tanto o vlr 1 e o vlr 3

 2009/7/31 jlchiappa jlchia...@yahoo.com.br jlchiappa%40yahoo.com.br

 
 
  Não, colega, não : ** releia ** a minha msg, eu disse :
 
  coluna like p1 AND coluna like p2 AND coluna like p3
 
  é AND pra que obedeça a todas as condições, e não OR, yes ???
 
  []s
 
  Chiapa
 
  --- Em oracle_br@yahoogrupos.com.br 
  oracle_br%40yahoogrupos.com.broracle_br%
 40yahoogrupos.com.br,
  Pablo Câmara pscam...@... escreveu
  
   Chiappa,
   Valeu pela ajuda...mas não conseguí.
   A solução com : coluna LIKE '%param1%' AND coluna LIKE '%param2%'
   and
  COLUNA
   like '%param3%'
   No meu caso não funcionou.
  
   No meu exemplo:
  
   CREATE TABLE arq.teste (cod NUMBER, vlr VARCHAR2(20))
  
   INSERT INTO TESTE (COD,VLR) VALUES (1,'1')/ INSERT INTO TESTE
   (COD,VLR) VALUES (1,'2')/ INSERT INTO TESTE (COD,VLR) VALUES
   (1,'3')/ INSERT INTO TESTE (COD,VLR) VALUES (1,'4')/ INSERT INTO
   TESTE (COD,VLR) VALUES (2,'3')/ INSERT INTO TESTE (COD,VLR) VALUES
   (2,'4')/
  
   Pesquisar o documento que tenha as palavras *1 e 3.*
  
   1)
   SELECT COD,VLR FROM ARQ.TESTE
   WHERE VLR LIKE '%1%' AND VLR LIKE '%3%'
No results.
  
   2)
   SELECT COD,VLR FROM ARQ.TESTE
   WHERE VLR LIKE '%1%' OR VLR LIKE '%3%'
   
   1 1
   1 3
   2 3
  
   (Resultado igual ao IN)
  
   Queria algo que atendende apenas aqueles que tivessem o valor 1 e 3.
  
   Valeu, pela ajuda
   Vou tentar outra coisa aqui!
  
  
  
   2009/7/31 jlchiappa jlchia...@...
 
  
   
   
Colega, vamos por partes aí : primeiro de tudo, vamos entender : o
  WHERE é
uma cláusula aplicada a CADA REGISTRO, um por vez, para filtragem,
e o operador ALL indica que a condição deve ser verdadeira para
TODOS os
  valores
- sabendo-se isso, uma condição
   
WHERE coluna = ALL (x, y, z)
   
evidentemente *** NUNCA *** vai ser verdadeira, pois um valor de
uma
  coluna
NUNCA vai ser igual aos três ao mesmo tempo, ok ??? Óbvio que vc
obteve
  No
Results na sua primeira tentativa... O que vc quer é pesquisar
NÂO por Igualdade, mas por presença, então esqueça o '=' , blz ?
No banco 8i,
  já que
vc não tem a REGEXPe iirc não tem Contexts também, as únicas
opções pra
  se
pesquisar por existência de uma substring dentro de outra são : o
LIKE,
  as
funções string tipo INSTR, escrita de uma função PL/SQL
customizada sua
  ou
alguma combinação complexa com Analytics (estes já existiam no 8i,
só
  não
lembro o release 8i exato em que foram introduzidos).
Para usar o LIKE ou funções built-in, isso VAI implicar em SQL
  dinâmico,
imagino que vc terá que ter uma rotina sua, que recebe os
parâmetros digitados e os expande em vários LIKE, tipo :
   
WHERE coluna LIKE '%param1%' AND coluna LIKE '%param2%' and COLUNA
like '%param3%'
   
ou com built-ins se quiser, algo assim..
   
A opção de função customizada sua seria algo que vc chamaria no
WHERE,
  tipo
:
   
WHERE minha_função(coluna, paramdebusca1, paramdebusca2, paramde
  busca3) =
1 ...
   
lógico, NENHUMA dessas alternativas vão ser extremamente saudável
pra performance, mas é isso... A menos danosa imagino que seria
montar
  alguma
combinação com Analytics, mas e algo a se pesquisar...
   
[]s
   
Chiappa
--- Em oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br
oracle_br%40yahoogrupos.com.broracle_br%

  40yahoogrupos.com.br,
Pablo Câmara pscamara@ escreveu

 *paramentroDaTela := BABCOCK DIGIMAPAS TUBO*
   
 *
 *
 *1) SELECT COD_DOCUMENTO FROM ARQ.REFERENCIAS_DOCUMENTOS WHERE
TXT_DOCUMENTO
 IN (paramentroDaTela)*
 *
 *
 *No caso 1: vai retornar o código de varios documentos. Sendo
 uma
  tabela
 de 3 milhoes de registros. Fica inviável.*
 *
 *
 *2) SELECT COD_DOCUMENTO FROM ARQ.REFERENCIAS_DOCUMENTOS WHERE
TXT_DOCUMENTO
 =ALL (paramentroDaTela)*
 *
 *
 *No caso 2: Se o comando funcionasse, traria apenas o código do
documento,
 no qual todas as palavras passadas como paramentro fazem parte.*
 *
 *
 *Alguem tem 

[oracle_br] Re: USO DO COMANDO IN (=ANY)

2009-07-31 Por tôpico jlchiappa
Colega, o exemplo que vc deu é TOTALMENTE diferente do que assumi no começo da 
thread : nesse que vc deu agora vc tem, EM REGISTROS DIFERENTES, colunas com o 
valor 3 e colunas com o valor 1 : tudo o que eu tinha dito é se os vários 
valores estivessem na ** MESMA ** ocorrencia da ** MESMA ** coluna no MESMO 
registro, sendo registros diferentes muda COMPLETAMENTE de figura, aí sim tente 
com algum tipo de sub-query, procvavelmente EXISTS...

 []s
 
  Chiappa
  
--- Em oracle_br@yahoogrupos.com.br, Pablo Câmara pscam...@... escreveu

 Gostaria que viesse o resultado: cod = 1 (apenas)
 Já que o cod 1 possui tanto o vlr 1 e o vlr 3
 
 
 
 
 2009/7/31 jlchiappa jlchia...@...
 
 
 
  Não, colega, não : ** releia ** a minha msg, eu disse :
 
  coluna like p1 AND coluna like p2 AND coluna like p3
 
  é AND pra que obedeça a todas as condições, e não OR, yes ???
 
  []s
 
  Chiapa
 
  --- Em oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br,
  Pablo Câmara pscamara@ escreveu
  
   Chiappa,
   Valeu pela ajuda...mas não conseguí.
   A solução com : coluna LIKE '%param1%' AND coluna LIKE '%param2%' and
  COLUNA
   like '%param3%'
   No meu caso não funcionou.
  
   No meu exemplo:
  
   CREATE TABLE arq.teste (cod NUMBER, vlr VARCHAR2(20))
  
   INSERT INTO TESTE (COD,VLR) VALUES (1,'1')/
   INSERT INTO TESTE (COD,VLR) VALUES (1,'2')/
   INSERT INTO TESTE (COD,VLR) VALUES (1,'3')/
   INSERT INTO TESTE (COD,VLR) VALUES (1,'4')/
   INSERT INTO TESTE (COD,VLR) VALUES (2,'3')/
   INSERT INTO TESTE (COD,VLR) VALUES (2,'4')/
  
   Pesquisar o documento que tenha as palavras *1 e 3.*
  
   1)
   SELECT COD,VLR FROM ARQ.TESTE
   WHERE VLR LIKE '%1%' AND VLR LIKE '%3%'
No results.
  
   2)
   SELECT COD,VLR FROM ARQ.TESTE
   WHERE VLR LIKE '%1%' OR VLR LIKE '%3%'
   
   1 1
   1 3
   2 3
  
   (Resultado igual ao IN)
  
   Queria algo que atendende apenas aqueles que tivessem o valor 1 e 3.
  
   Valeu, pela ajuda
   Vou tentar outra coisa aqui!
  
  
  
   2009/7/31 jlchiappa jlchiappa@
 
  
   
   
Colega, vamos por partes aí : primeiro de tudo, vamos entender : o
  WHERE é
uma cláusula aplicada a CADA REGISTRO, um por vez, para filtragem, e o
operador ALL indica que a condição deve ser verdadeira para TODOS os
  valores
- sabendo-se isso, uma condição
   
WHERE coluna = ALL (x, y, z)
   
evidentemente *** NUNCA *** vai ser verdadeira, pois um valor de uma
  coluna
NUNCA vai ser igual aos três ao mesmo tempo, ok ??? Óbvio que vc obteve
  No
Results na sua primeira tentativa... O que vc quer é pesquisar NÂO por
Igualdade, mas por presença, então esqueça o '=' , blz ? No banco 8i,
  já que
vc não tem a REGEXPe iirc não tem Contexts também, as únicas opções pra
  se
pesquisar por existência de uma substring dentro de outra são : o LIKE,
  as
funções string tipo INSTR, escrita de uma função PL/SQL customizada sua
  ou
alguma combinação complexa com Analytics (estes já existiam no 8i, só
  não
lembro o release 8i exato em que foram introduzidos).
Para usar o LIKE ou funções built-in, isso VAI implicar em SQL
  dinâmico,
imagino que vc terá que ter uma rotina sua, que recebe os parâmetros
digitados e os expande em vários LIKE, tipo :
   
WHERE coluna LIKE '%param1%' AND coluna LIKE '%param2%' and COLUNA like
'%param3%'
   
ou com built-ins se quiser, algo assim..
   
A opção de função customizada sua seria algo que vc chamaria no WHERE,
  tipo
:
   
WHERE minha_função(coluna, paramdebusca1, paramdebusca2, paramde
  busca3) =
1 ...
   
lógico, NENHUMA dessas alternativas vão ser extremamente saudável pra
performance, mas é isso... A menos danosa imagino que seria montar
  alguma
combinação com Analytics, mas e algo a se pesquisar...
   
[]s
   
Chiappa
--- Em oracle_br@yahoogrupos.com.br 
oracle_br%40yahoogrupos.com.broracle_br%
  40yahoogrupos.com.br,
Pablo Câmara pscamara@ escreveu

 *paramentroDaTela := BABCOCK DIGIMAPAS TUBO*
   
 *
 *
 *1) SELECT COD_DOCUMENTO FROM ARQ.REFERENCIAS_DOCUMENTOS WHERE
TXT_DOCUMENTO
 IN (paramentroDaTela)*
 *
 *
 *No caso 1: vai retornar o código de varios documentos. Sendo uma
  tabela
 de 3 milhoes de registros. Fica inviável.*
 *
 *
 *2) SELECT COD_DOCUMENTO FROM ARQ.REFERENCIAS_DOCUMENTOS WHERE
TXT_DOCUMENTO
 =ALL (paramentroDaTela)*
 *
 *
 *No caso 2: Se o comando funcionasse, traria apenas o código do
documento,
 no qual todas as palavras passadas como paramentro fazem parte.*
 *
 *
 *Alguem tem alguma outra sugestão? PS: ORACLE 8I.*
 *
 *
 *Em outras versões do oracle (a partir do 9i) eu utilizo o
  regexp_like.
Ou
 faço a busca por contexto.*
 *
 *
 *Pablo*
 *
 *
 *
 *
 *
 *


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

   
   
   
  
  
   [As partes desta 

Re: [oracle_br] Re: USO DO COMANDO IN (=ANY)

2009-07-31 Por tôpico Pablo Câmara
Valeu a todos!


2009/7/31 Pablo Câmara pscam...@gmail.com

 Flaviano, acho que é exatamente isso!
 select distinct cod from teste t1
 where exists (select * from teste t2 where t2.cod = t1.cod and   t2.vlr =
 '3')
 and   exists (select * from teste t2 where t2.cod = t1.cod and   t2.vlr =
 '1')

 Obrigado!



 2009/7/31 Flaviano, Wellington (GE Money) wellington.flavi...@ge.com



 Utiliza o exists, where exits coluna = 1 ... And exists coluna =3 ...
 Acredito que funciona...

 -Original Message-
 From: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br[mailto:
 oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br] On Behalf
 Of Pablo Câmara
 Sent: Friday, July 31, 2009 3:07 PM
 To: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br
 Subject: Re: [oracle_br] Re: USO DO COMANDO IN (=ANY)

 Gostaria que viesse o resultado: cod = 1 (apenas) Já que o cod 1 possui
 tanto o vlr 1 e o vlr 3

 2009/7/31 jlchiappa jlchia...@yahoo.com.br jlchiappa%40yahoo.com.br

 
 
  Não, colega, não : ** releia ** a minha msg, eu disse :
 
  coluna like p1 AND coluna like p2 AND coluna like p3
 
  é AND pra que obedeça a todas as condições, e não OR, yes ???
 
  []s
 
  Chiapa
 
  --- Em oracle_br@yahoogrupos.com.br 
  oracle_br%40yahoogrupos.com.broracle_br%
 40yahoogrupos.com.br,
  Pablo Câmara pscam...@... escreveu
  
   Chiappa,
   Valeu pela ajuda...mas não conseguí.
   A solução com : coluna LIKE '%param1%' AND coluna LIKE '%param2%'
   and
  COLUNA
   like '%param3%'
   No meu caso não funcionou.
  
   No meu exemplo:
  
   CREATE TABLE arq.teste (cod NUMBER, vlr VARCHAR2(20))
  
   INSERT INTO TESTE (COD,VLR) VALUES (1,'1')/ INSERT INTO TESTE
   (COD,VLR) VALUES (1,'2')/ INSERT INTO TESTE (COD,VLR) VALUES
   (1,'3')/ INSERT INTO TESTE (COD,VLR) VALUES (1,'4')/ INSERT INTO
   TESTE (COD,VLR) VALUES (2,'3')/ INSERT INTO TESTE (COD,VLR) VALUES
   (2,'4')/
  
   Pesquisar o documento que tenha as palavras *1 e 3.*
  
   1)
   SELECT COD,VLR FROM ARQ.TESTE
   WHERE VLR LIKE '%1%' AND VLR LIKE '%3%'
No results.
  
   2)
   SELECT COD,VLR FROM ARQ.TESTE
   WHERE VLR LIKE '%1%' OR VLR LIKE '%3%'
   
   1 1
   1 3
   2 3
  
   (Resultado igual ao IN)
  
   Queria algo que atendende apenas aqueles que tivessem o valor 1 e 3.
  
   Valeu, pela ajuda
   Vou tentar outra coisa aqui!
  
  
  
   2009/7/31 jlchiappa jlchia...@...
 
  
   
   
Colega, vamos por partes aí : primeiro de tudo, vamos entender : o
  WHERE é
uma cláusula aplicada a CADA REGISTRO, um por vez, para filtragem,
e o operador ALL indica que a condição deve ser verdadeira para
TODOS os
  valores
- sabendo-se isso, uma condição
   
WHERE coluna = ALL (x, y, z)
   
evidentemente *** NUNCA *** vai ser verdadeira, pois um valor de
uma
  coluna
NUNCA vai ser igual aos três ao mesmo tempo, ok ??? Óbvio que vc
obteve
  No
Results na sua primeira tentativa... O que vc quer é pesquisar
NÂO por Igualdade, mas por presença, então esqueça o '=' , blz ?
No banco 8i,
  já que
vc não tem a REGEXPe iirc não tem Contexts também, as únicas
opções pra
  se
pesquisar por existência de uma substring dentro de outra são : o
LIKE,
  as
funções string tipo INSTR, escrita de uma função PL/SQL
customizada sua
  ou
alguma combinação complexa com Analytics (estes já existiam no 8i,
só
  não
lembro o release 8i exato em que foram introduzidos).
Para usar o LIKE ou funções built-in, isso VAI implicar em SQL
  dinâmico,
imagino que vc terá que ter uma rotina sua, que recebe os
parâmetros digitados e os expande em vários LIKE, tipo :
   
WHERE coluna LIKE '%param1%' AND coluna LIKE '%param2%' and COLUNA
like '%param3%'
   
ou com built-ins se quiser, algo assim..
   
A opção de função customizada sua seria algo que vc chamaria no
WHERE,
  tipo
:
   
WHERE minha_função(coluna, paramdebusca1, paramdebusca2, paramde
  busca3) =
1 ...
   
lógico, NENHUMA dessas alternativas vão ser extremamente saudável
pra performance, mas é isso... A menos danosa imagino que seria
montar
  alguma
combinação com Analytics, mas e algo a se pesquisar...
   
[]s
   
Chiappa
--- Em oracle_br@yahoogrupos.com.broracle_br%40yahoogrupos.com.br
oracle_br%40yahoogrupos.com.broracle_br%

  40yahoogrupos.com.br,
Pablo Câmara pscamara@ escreveu

 *paramentroDaTela := BABCOCK DIGIMAPAS TUBO*
   
 *
 *
 *1) SELECT COD_DOCUMENTO FROM ARQ.REFERENCIAS_DOCUMENTOS WHERE
TXT_DOCUMENTO
 IN (paramentroDaTela)*
 *
 *
 *No caso 1: vai retornar o código de varios documentos. Sendo
 uma
  tabela
 de 3 milhoes de registros. Fica inviável.*
 *
 *
 *2) SELECT COD_DOCUMENTO FROM ARQ.REFERENCIAS_DOCUMENTOS WHERE
TXT_DOCUMENTO
 =ALL (paramentroDaTela)*
 *
 *
 *No caso 2: Se o comando funcionasse, traria apenas o código do
documento,
 no qual todas as palavras 

Re: [oracle_br] Re: USO DO COMANDO IN (=ANY)

2009-07-31 Por tôpico Pablo Câmara
Isso, com o exists funciona...

Mas só por curiosidad, como funcional o =ALL nesse caso?

Pablo





2009/7/31 jlchiappa jlchia...@yahoo.com.br



 Colega, o exemplo que vc deu é TOTALMENTE diferente do que assumi no começo
 da thread : nesse que vc deu agora vc tem, EM REGISTROS DIFERENTES, colunas
 com o valor 3 e colunas com o valor 1 : tudo o que eu tinha dito é se os
 vários valores estivessem na ** MESMA ** ocorrencia da ** MESMA ** coluna no
 MESMO registro, sendo registros diferentes muda COMPLETAMENTE de figura, aí
 sim tente com algum tipo de sub-query, procvavelmente EXISTS...

 []s

 Chiappa

 --- Em oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br,
 Pablo Câmara pscam...@... escreveu

 
  Gostaria que viesse o resultado: cod = 1 (apenas)
  Já que o cod 1 possui tanto o vlr 1 e o vlr 3
 
 
 
 
  2009/7/31 jlchiappa jlchia...@...
 
  
  
   Não, colega, não : ** releia ** a minha msg, eu disse :
  
   coluna like p1 AND coluna like p2 AND coluna like p3
  
   é AND pra que obedeça a todas as condições, e não OR, yes ???
  
   []s
  
   Chiapa
  
   --- Em oracle_br@yahoogrupos.com.br 
   oracle_br%40yahoogrupos.com.broracle_br%
 40yahoogrupos.com.br,
   Pablo Câmara pscamara@ escreveu
   
Chiappa,
Valeu pela ajuda...mas não conseguí.
A solução com : coluna LIKE '%param1%' AND coluna LIKE '%param2%' and
   COLUNA
like '%param3%'
No meu caso não funcionou.
   
No meu exemplo:
   
CREATE TABLE arq.teste (cod NUMBER, vlr VARCHAR2(20))
   
INSERT INTO TESTE (COD,VLR) VALUES (1,'1')/
INSERT INTO TESTE (COD,VLR) VALUES (1,'2')/
INSERT INTO TESTE (COD,VLR) VALUES (1,'3')/
INSERT INTO TESTE (COD,VLR) VALUES (1,'4')/
INSERT INTO TESTE (COD,VLR) VALUES (2,'3')/
INSERT INTO TESTE (COD,VLR) VALUES (2,'4')/
   
Pesquisar o documento que tenha as palavras *1 e 3.*
   
1)
SELECT COD,VLR FROM ARQ.TESTE
WHERE VLR LIKE '%1%' AND VLR LIKE '%3%'
 No results.
   
2)
SELECT COD,VLR FROM ARQ.TESTE
WHERE VLR LIKE '%1%' OR VLR LIKE '%3%'

1 1
1 3
2 3
   
(Resultado igual ao IN)
   
Queria algo que atendende apenas aqueles que tivessem o valor 1 e 3.
   
Valeu, pela ajuda
Vou tentar outra coisa aqui!
   
   
   
2009/7/31 jlchiappa jlchiappa@
  
   


 Colega, vamos por partes aí : primeiro de tudo, vamos entender : o
   WHERE é
 uma cláusula aplicada a CADA REGISTRO, um por vez, para filtragem,
 e o
 operador ALL indica que a condição deve ser verdadeira para TODOS
 os
   valores
 - sabendo-se isso, uma condição

 WHERE coluna = ALL (x, y, z)

 evidentemente *** NUNCA *** vai ser verdadeira, pois um valor de
 uma
   coluna
 NUNCA vai ser igual aos três ao mesmo tempo, ok ??? Óbvio que vc
 obteve
   No
 Results na sua primeira tentativa... O que vc quer é pesquisar NÂO
 por
 Igualdade, mas por presença, então esqueça o '=' , blz ? No banco
 8i,
   já que
 vc não tem a REGEXPe iirc não tem Contexts também, as únicas opções
 pra
   se
 pesquisar por existência de uma substring dentro de outra são : o
 LIKE,
   as
 funções string tipo INSTR, escrita de uma função PL/SQL customizada
 sua
   ou
 alguma combinação complexa com Analytics (estes já existiam no 8i,
 só
   não
 lembro o release 8i exato em que foram introduzidos).
 Para usar o LIKE ou funções built-in, isso VAI implicar em SQL
   dinâmico,
 imagino que vc terá que ter uma rotina sua, que recebe os
 parâmetros
 digitados e os expande em vários LIKE, tipo :

 WHERE coluna LIKE '%param1%' AND coluna LIKE '%param2%' and COLUNA
 like
 '%param3%'

 ou com built-ins se quiser, algo assim..

 A opção de função customizada sua seria algo que vc chamaria no
 WHERE,
   tipo
 :

 WHERE minha_função(coluna, paramdebusca1, paramdebusca2, paramde
   busca3) =
 1 ...

 lógico, NENHUMA dessas alternativas vão ser extremamente saudável
 pra
 performance, mas é isso... A menos danosa imagino que seria montar
   alguma
 combinação com Analytics, mas e algo a se pesquisar...

 []s

 Chiappa
 --- Em 
 oracle_br@yahoogrupos.com.broracle_br%40yahoogrupos.com.broracle_br%
 40yahoogrupos.com.broracle_br%
   40yahoogrupos.com.br,
 Pablo Câmara pscamara@ escreveu
 
  *paramentroDaTela := BABCOCK DIGIMAPAS TUBO*

  *
  *
  *1) SELECT COD_DOCUMENTO FROM ARQ.REFERENCIAS_DOCUMENTOS WHERE
 TXT_DOCUMENTO
  IN (paramentroDaTela)*
  *
  *
  *No caso 1: vai retornar o código de varios documentos. Sendo uma
   tabela
  de 3 milhoes de registros. Fica inviável.*
  *
  *
  *2) SELECT COD_DOCUMENTO FROM ARQ.REFERENCIAS_DOCUMENTOS WHERE
 TXT_DOCUMENTO
  =ALL (paramentroDaTela)*
  *
  *
  *No caso 2: Se o comando funcionasse, traria apenas o código do
 documento,
  no qual todas as palavras passadas como paramentro fazem 

RES: [oracle_br] Re: ** Insert em Campo LONG **

2009-07-31 Por tôpico Robson Muniz (Terra)
Legal pessoal.

 

Obrigado pelos retornos, Chiappa e Rodrigo.

 

Estarei intermediando essa tentativa de tipo de campos com a empresa
responsável pelo sistema.

 

Novamente obrigado pelo auxílio.

 

Abraços,

 

De: oracle_br@yahoogrupos.com.br [mailto:oracle...@yahoogrupos.com.br] Em
nome de jlchiappa
Enviada em: Friday, July 31, 2009 3:24 PM
Para: oracle_br@yahoogrupos.com.br
Assunto: [oracle_br] Re: ** Insert em Campo LONG **

 

  

Rodrigo, é tudo verdade, mas pelo que o colega lá fala, o que ele está
fazendo é num programa SQL mandar um :

INSERT INTO tabelacomLONG values (nn, 'stringcommaisde4milcaracteres');

em sendo isso, a questão Não É limite do databse em si, mas sim da linguagem
SQL, no dialeto SQL do banco Oracle uma string só pode ter 4 mil caracteres
no máximo, é limitação DA LINGUAGEM SQL Pra ele ver que é isso, basta se
encapsular num programa PL/SQL, que aí o limite de strings únicas passa a
ser o do PL/SQL, que é 32 Kb, abaixo boto um exemplinho

Robson, só uma coisa : o dataype LONG no banco 10g já foi DEPRECIADO há anos
 anos, vc NÃO DEVERIA estar trabalhando com ele no 10g, eles já deveriam
ter sido convertidos para LOBs, pois (entre outras vantagens muitas) a
Oracle para LOBs já fornece uma API pra se quebrar uma string comprida em
pedaços manipuláveis pelos limites doSQL e do PL/SQL (é a DBMS_LOB), pra
LONGs vc está absolutamente por sua conta

O exemplinho (com a string editada que senão o yahoo!groups trunca a
mensagem, mas faça por inteiro que garanto que funfa) :

sys...@10g:SQLcreate table t (c1 number, c2 long);

Tabela criada.

sys...@10g:SQLget c:\1.sql
SP2-0161: linha 1 truncada.
1 insert into T values(1,
'1234567890123456789012345678901234567890stringcommenosde4000caracteres.
..1234567890123456789012345678901234567890');

1 linha criada.

sys...@10g:SQLcommit;

Commit concluído.

sys...@10g:SQLget c:\1.sql
1 insert into T values(1,
'1234567890123456789012345678901234567890...stringcomMAISde4000caracteres...
12345');

sys...@10g:SQL/
insert into T values(1, '123456789012345'
*
ERRO na linha 1:
ORA-01704: literal de string extenso demais

sys...@10g:SQLget c:\1.sql
1 DECLARE
2 v_string varchar2(32767) :=
'12345678901234567890..stringcommaisde4000caracteres...12345';
4 BEGIN
5 insert into T values(1, v_string);
6* END;
sys...@10g:SQL/

Procedimento PL/SQL concluído com sucesso.

sys...@10g:SQLset long 5000
sys...@10g:SQLselect * from t;

C1 C2
--
--
1 123456789001234567890123456789012345678901234567890
1 12345678900123456789012345678901234567890123456789012345

sys...@10g:SQL
--- Em oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br
, Rodrigo Mufalani mufal...@... escreveu

 Boa tarde,
 
 Há um documento chamado database limits. Dê uma olhada em

http://download.oracle.com/docs/cd/B19306_01/server.102/b14237/limits001.htm
#i287903
 
 Datatype Limits
 Datatypes Limit Comments
 BFILE Maximum size: 4 GB
 
 Maximum size of a file name: 255 characters
 
 Maximum size of a directory name: 30 characters
 
 Maximum number of open BFILEs: see Comments
 The maximum number of BFILEs is limited by the value of the
 SESSION_MAX_OPEN_FILES initialization parameter, which is itself limited
 by the maximum number of open files the operating system will allow.
 BLOB Maximum size: (4 GB - 1) * DB_BLOCK_SIZE initialization parameter
 (8 TB to 128 TB) The number of LOB columns per table is limited only by
 the maximum number of columns per table (that is, 1000Foot 1 ).
 CHAR Maximum size: 2000 bytes
 CHAR VARYING Maximum size: 4000 bytes
 CLOB Maximum size: (4 GB - 1) * DB_BLOCK_SIZE initialization parameter
 (8 TB to 128 TB) The number of LOB columns per table is limited only by
 the maximum number of columns per table (that is, 1000Footref 1).
 Literals (characters or numbers in SQL or PL/SQL) Maximum size: 4000
 characters
 LONG Maximum size: 2 GB - 1 Only one LONG column is allowed per table.
 NCHAR Maximum size: 2000 bytes
 NCHAR VARYING Maximum size: 4000 bytes
 NCLOB Maximum size: (4 GB - 1) * DB_BLOCK_SIZE initialization parameter
 (8 TB to 128 TB) The number of LOB columns per table is limited only by
 the maximum number of columns per table (that is, 1000Footref 1).
 NUMBER 999...(38 9's) x10125 maximum value Can be represented to full
 38-digit precision (the mantissa).
 -999...(38 9's) x10125 minimum value Can be represented to full
 38-digit precision (the mantissa).
 Precision 38 significant digits
 RAW Maximum size: 2000 bytes
 VARCHAR Maximum size: 4000 bytes
 VARCHAR2 Maximum size: 4000 bytes
 
 Atenciosamente,
 
 Rodrigo Mufalani
 OCP 10g  11g
 OCE RAC 10g R2
 mufal...@...
 http://mufalani.blogspot.com
 
 
 
  Mensagem Original:
  Data: 14:47:20 31/07/2009
  De: Robson Muniz (Terra) rmunizso...@...
  Assunto: [oracle_br] ** Insert em Campo LONG **
 
  Srs, estou efetuando um insert em campo LONG, porém, quando efetuo um
insert
  com mais de 4000 caracteres, 

[oracle_br] Replicacao

2009-07-31 Por tôpico José Eduardo Batista Juliano
Pessoal,

Minha duvida é a seguinte, supondo um ambiente de replicacao usando
materialized view, Master-Slave  entre 2 bancos Oracle 10.2.0.1 , sendo um
em Frutal-MG(master) e outro em Ribeirão Preto-SP(slave). Temos de replicar
dados de 174 tabelas, a maioria nao vai ter movimentacao diaria, somente
umas 8.
A minha duvida é a seguinte, pelo Oracle existe algum modo de medir esse
trafego de dados para que eu possa afirmar que, por exemplo, o link de 1mb
nos atenderá?
É certo falar que uma tabela com 900kb quando eu executar o refresh complete
todos esses 900kb vao ser transferidos de um lado para outro ou tem mais
coisas no meio?
Desculpa pela ignorancia

Abraço
-- 
José Eduardo Batista Juliano


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



Re: [oracle_br] Replicacao

2009-07-31 Por tôpico Caio Spadafora
José,

O que eu conheço e acredito que vá te ajudar é um documento do time de MAA 
(Maximum Availability Architecture) da Oracle sobre boas práticas em Redo 
Shipping do Oracle Dataguard. Desculpe pelo excesso de termos...

Essas documentações estão disponíveis via Metalink e são muito boas, no 
documento sobre boas práticas de Redo Shipping existem cálculos de banda para 
suportar o ambiente de Datagaurd, acredito que você consiga adaptar para sua 
situação, a metrica em questão tem relação com o que a Oracle chama de Redo 
Generation Rate e a banda de tráfego em si Se possível depois de analisar o 
documento e o banco peça ajuda para alguem de infraestrutura/redes.

Vai como dica para o pessoal que gosta de fazer mais do que o básico, sempre 
consultar a documentação do time de MAA (inclusive teve um evento ontem aqui em 
São Paulo) sobre esses conceitos.

Atenciosamente,
Caio Spadafora.
http://0011brothers.blogspot.com/

--- Em sex, 31/7/09, José Eduardo Batista Juliano jeduardo.juli...@gmail..com 
escreveu:

De: José Eduardo Batista Juliano jeduardo.juli...@gmail.com
Assunto: [oracle_br] Replicacao
Para: oracle_br@yahoogrupos.com.br
Data: Sexta-feira, 31 de Julho de 2009, 16:05






 





  Pessoal,



Minha duvida é a seguinte, supondo um ambiente de replicacao usando

materialized view, Master-Slave  entre 2 bancos Oracle 10.2.0.1 , sendo um

em Frutal-MG(master) e outro em Ribeirão Preto-SP(slave) . Temos de replicar

dados de 174 tabelas, a maioria nao vai ter movimentacao diaria, somente

umas 8.

A minha duvida é a seguinte, pelo Oracle existe algum modo de medir esse

trafego de dados para que eu possa afirmar que, por exemplo, o link de 1mb

nos atenderá?

É certo falar que uma tabela com 900kb quando eu executar o refresh complete

todos esses 900kb vao ser transferidos de um lado para outro ou tem mais

coisas no meio?

Desculpa pela ignorancia



Abraço

-- 

José Eduardo Batista Juliano



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




 

  




 

















  

Veja quais são os assuntos do momento no Yahoo! +Buscados
http://br.maisbuscados.yahoo.com

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