Re: [oracle_br] Re: Separar palavras numa frase
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
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 ????
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
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 ????
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)
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
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
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
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)
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)
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
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)
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
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 **
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 **
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)
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)
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)
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 **
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)
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)
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)
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)
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 **
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
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
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]