[oracle_br] Consulta SQL
Boa tarde. Tenho uma aplicação escrita em PHP que acessa uma base Oracle 10g, o usuário digita uma palavra e é efetuada uma busca na tabela de leis a procura de ocorrências desta palavra nas leis cadastradas. A consulta SQL select é a seguinte: SELECT NUMERO_PORTARIA, DATA_PORTARIA, EMENTA, OBSERVACAO FROM PORTARIA WHERE UPPER(TRANSLATE(EMENTA,'ŠŽšžŸÁÇÉÍÓÚÀÈÌÒÙÂÊÎÔÛÃÕËÜÏÖÑÝåáçéíóúàèìòùâêîôûãõëüïöñýÿ','SZszYACEIOUAEIOUAEIOUAOEUIONYaaceiouaeiouaeiouaoeuionyy')) LIKE '%$words%' OR UPPER(TRANSLATE(OBSERVACAO,'ŠŽšžŸÁÇÉÍÓÚÀÈÌÒÙÂÊÎÔÛÃÕËÜÏÖÑÝåáçéíóúàèìòùâêîôûãõëüïöñýÿ','SZszYACEIOUAEIOUAEIOUAOEUIONYaaceiouaeiouaeiouaoeuionyy')) LIKE '%$words%'; Onde, $words é uma variável que recebe a palavra digitada pelo usuário, desta palavra são retirados os acentos e cedilhas, é passada para maiúscula e comparada com os campos da tabela que também tem seus acentos retirados e transformados para maiúscula. A minha dúvida consiste no seguinte: Ao executar a aplicação algumas palavras não são retornadas, mas se pegar o sql e rodar diretamente no banco eu tenho o retorno, por exemplo, a palavra exoneração no banco tenho um retorno com as linhas desejadas e via aplicação tenho retorno de zero linhas. Uma outra pergunta, para melhorar a performance seria melhor utilizar match/contains e criar um índice de contexto nos campos que serão pesquisados? Obrigado, Carlos Henrique
[oracle_br] consulta sql em ambiente DW
Boa tarde Srs. do grupo, Temos um ambiente de dw com as seguintes configurações. S. O - Red Hat 5.5 Oracle 11.2.0.3 Discos em ASM Estou tentando executar o select abaixo, mas não estou conseguindo. A instrução está executando mas não termina. Gostaria de pedir sugestão aos membros do grupo para poder estar melhorando essa instrução. Índices foram criados. Obrigado Segue abaixo a instrução sql. SELECT /*+ index_join(TBBENEFICIARIO IDXTPSEXO,IDXLOTE,IDXLOTE2) */ /*+ index_join(TBPROJETO IDXPROJETO,IDXTP_PROJETO,IDX_PROJETO_COMPLEMENTA,IDXSUPER2,IDXPROJMUN) */ /*+ index_join(TBTIPOPROJETO IDXTPPROJETO) */ /*+ index_join(TBProjetoTipoFase IDXTPPROJ,IDXTPROJTPFASE) */ /*+ index_join(TBPROJETOCONSTITUICAO IDXTPROJTPFASE2) */ /*+ index_join(TBTIPOSEXO IDXTPSEXO2) */ /*+ index_join(TBLOTE IDXLOTE2) */ /*+ index_join(TBDAPGerada IDXGERADA2) */ /*+ index_join(TBSR IDXSUPER) */ /*+ index_join(TBUF IDXSUPERUF) */ /*+ index_join(TBUF IDXSUPERUF) */ /*+ index_join(TBMUNICIPIO IDXMUNICIPIO) */ /*+ index_join(TBCREDITO IDXTBCREDITO,IDXTPAGFIN2) */ /*+ index_join(TBTIPOCREDITO IDXTPTBCREDITO) */ /*+ index_join(TBAgenteFinanceiro IDXTPAGFIN) */ /*+ index_join(TBAssentamento IDXASSENTA,IDXASSENTA4) */ /*+ index_join(TBTipoSituacao IDXASSENTA3) */ BENEFICIARIO.BENEFICIARIO_IDENT_CODIGO CodigoBeneficiario, BENEFICIARIO.BENEFICIARIO_IDENT_NOME NomeBeneficiario, BENEFICIARIO.BENEFICIARIO_IDENT_PAI PaiBeneficiario, BENEFICIARIO.BENEFICIARIO_IDENT_MAE MaeBeneficiario, NACIONALIDADE.BENEFICIARIO_TPNAC_CODIGO CodigoNacionalidade, NACIONALIDADE.BENEFICIARIO_TPNAC_DESC Nacionalidade, ESTADOCIVIL.BENEFICIARIO_TPESTCIV_CODIGO CodigoEstadoCivil, ESTADOCIVIL.BENEFICIARIO_TPESTCIV_DESC EstadoCivil, BENEFICIARIO.BENEFICIARIO_IDENT_CPF CPF, PROJETO.PROJETO_IDENT_CODIGO CodigoProjeto, PROJETO.PROJETO_IDENT_NOME NomeProjeto, BENEFICIARIO.BENEFICIARIO_IDENT_PROCADM NumeroProcesso, LOTE.beneficiario_lote_numero NumeroLote, SEXO.sexo_codigo CodigoSexo, SEXO.sexo_descricao Sexo, BENEFICIARIO.BENEFICIARIO_IDENT_DTNASC DataNascimento, BENEFICIARIO.BENEFICIARIO_IDENT_DTATUALIZA DataAtualizacao, SITUACAO.BENEFICIARIO_TIPOSIT_CODIGO CodigoSituacao, SITUACAO.BENEFICIARIO_TIPOSIT_DESC Situacao, ASSENTAMENTO.BENEFICIARIO_ASSENT_SIT_DATA DataSituacao, BENEFICIARIO.BENEFICIARIO_IDENT_DTHOMOLOG DataAssentado, CASE WHEN DAP_GERADA.Cod_DAP IS NOT NULL THEN 'SIM' ELSE 'NÃO' END PossuiDAP, DAP_GERADA.Cod_DAP CodigoDAP, DAP_GERADA.ID_dap_gerada DAPGerada, DAP_GERADA.DAP_grupo DAPGrupo, DAP_GERADA.DAP_modelo DAPModelo, SR.sr_codigo CodigoSR, SR.sr_nome NomeSR, UF.COUF CodigoUF, UF.NOUF NomeUF, MUNICIPIO.COMUNIBGE CodigoIBGE, MUNICIPIO.NOMUN Municipio, PROJETOCOMPLEMENTO.Area Area, PROJETOCOMPLEMENTO.Capacidade Capacidade, PROJETOTIPOFASE.projeto_tipofase_codigo CodigoFase, PROJETOTIPOFASE.projeto_tipofase_descricao Fase, TIPOPROJETO.projeto_tipoprojeto_codigo CodigoTipoProjeto, TIPOPROJETO.projeto_tipoprojeto_descricao TipoProjeto, PROJETOCOMPLEMENTO.DataCriacao DataCriacao, CREDITO.crd_id CodigoCredito, TIPOCREDITO.tpc_codigo CodigoTipoCredito, tiPOCREDITO.tpc_descricao TipoCredito, CASE WHEN crd_complementacao = '0' THEN CREDITO.crd_valor ELSE 0 END ValorCredito, CREDITO.crd_data_recebimento DataCredito, CASE WHEN crd_complementacao = '1' THEN CREDITO.crd_valor ELSE 0 END ValorComplementacao, CASE WHEN CREDITO.crd_situacao = 'I' THEN 'INATIVO' ELSE 'ATIVO' END SituacaoCredito, AGENTEFINANCEIRO.age_financeiro_codigo CodigoAgenteFinanceiro, AGENTEFINANCEIRO.age_financeiro_descricao NomeAgenteFinanceiro, CASE WHEN CREDITO.crd_recebido = '1' THEN 'SIM' ELSE 'NÃO' END CreditoRecebido, MUNICIPIO.des_territorio Territorio, MUNICIPIO.amazonia_legal AmazoniaLegal, MUNICIPIO.modulo_fiscal ModuloFiscal FROM TBBeneficiario BENEFICIARIO, TBNacionalidade NACIONALIDADE, TBTipoEstadoCivil ESTADOCIVIL, TBProjeto PROJETO, TBTipoProjeto TIPOPROJETO, TBProjetoComplemento PROJETOCOMPLEMENTO, TBProjetoConstituicao PROJETOCONSTITUICAO, TBProjetoTipoFase PROJETOTIPOFASE, TBTipoSexo SEXO, TBLote LOTE, TBDAPGerada DAP_GERADA, TBSR SR, TBUF UF, TBMunicipio MUNICIPIO, TBCredito CREDITO, TBTipoCredito TIPOCREDITO, TBAgenteFinanceiro AGENTEFINANCEIRO, TBAssentamento ASSENTAMENTO, TBTipoSituacao SITUACAO where BENEFICIARIO.BENEFICIARIO_TPNAC_CODIGO = NACIONALIDADE.BENEFICIARIO_TPNAC_CODIGO and BENEFICIARIO.BENEFICIARIO_TPESTCIV_CODIGO = ESTADOCIVIL.BENEFICIARIO_TPESTCIV_CODIGO and BENEFICIARIO.PROJETO_IDENT_CODIGO = PROJETO.PROJETO_IDENT_CODIGO(+) and PROJETO.PROJETO_TPPROJ_CODIGO = TIPOPROJETO.projeto_tipoprojeto_codigo and PROJETO.PROJETO_TPPROJ_CODIGO = TIPOPROJETO.projeto_tipoprojeto_codigo and PROJETO.PROJETO_IDENT_CODIGO = PROJETOCOMPLEMENTO.PROJETO_IDENT_CODIGO(+) and PROJETO.PROJETO_IDENT_CODIGO = PROJETOCONSTITUICAO.PROJETO_IDENT_CODIGO(+) and PROJETOCONSTITUICAO.projeto_tipofase_codigo = PROJETOTIPOFASE.projeto_tipofase_c
Re: [oracle_br] Consulta SQL
Obrigado a todos!! 2008/1/31 Ricardo Francisco <[EMAIL PROTECTED]>: > veja se ajuda... acho que é isso > > SELECT COUNT(1), > p.id_plano > FROM usuario u, > planos p, > plano_contrato pc > WHERE pc.id_plano = p.id_plano > AND u.id_plano_contrato = pc.id_plano_contrato > GROUP BY p.id_plano > > --tabela usuario [id_usuario, id_plano_contrato] > > --tabela planos_contrato [plano_contrato, id_plano] > --tabela planos[id_plano, descricao] > > flws > > Em 30/01/08, Haroldo Gondim Torres Filho <[EMAIL > PROTECTED]> > escreveu: > > > > Olá pessoal, sou novo aqui no grupo > > > > alguém poderia me ajudar a fazer uma consulta > > > > a estrutura e mais ou menos assim > > > > tabela usuario [id_usuario, id_plano_contrato] > > tabela planos_contrato [plano_contrato, id_plano] > > tabela planos[id_plano, descricao] > > > > possui outros atributos, + acho que não influenciem > > > > o que eu preciso é a quantidade de usuários por plano > > > > > > > > -- > Ricardo Luiz Francisco > (17) 8132-7311 > > "É muito melhor arriscar coisas grandiosas, alcançar triunfos e glórias, > mesmo expondo-se a derrota, do que formar fila com os pobres de espírito > que > nem gozam muito nem sofrem muito, porque vivem nessa penumbra cinzenta que > não conhece vitória nem derrota." Theodore Roosevelt > > [As partes desta mensagem que não continham texto foram removidas] > > > -- Haroldo Gondim Torres Filho [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Consulta SQL
veja se ajuda... acho que é isso SELECT COUNT(1), p.id_plano FROM usuariou, planos p, plano_contrato pc WHERE pc.id_plano = p.id_plano AND u.id_plano_contrato = pc.id_plano_contrato GROUP BY p.id_plano --tabela usuario [id_usuario, id_plano_contrato] --tabela planos_contrato [plano_contrato, id_plano] --tabela planos[id_plano, descricao] flws Em 30/01/08, Haroldo Gondim Torres Filho <[EMAIL PROTECTED]> escreveu: > > Olá pessoal, sou novo aqui no grupo > > alguém poderia me ajudar a fazer uma consulta > > a estrutura e mais ou menos assim > > tabela usuario [id_usuario, id_plano_contrato] > tabela planos_contrato [plano_contrato, id_plano] > tabela planos[id_plano, descricao] > > possui outros atributos, + acho que não influenciem > > o que eu preciso é a quantidade de usuários por plano > > > -- Ricardo Luiz Francisco (17) 8132-7311 "É muito melhor arriscar coisas grandiosas, alcançar triunfos e glórias, mesmo expondo-se a derrota, do que formar fila com os pobres de espírito que nem gozam muito nem sofrem muito, porque vivem nessa penumbra cinzenta que não conhece vitória nem derrota." Theodore Roosevelt [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Consulta SQL
* * * select count*(id_usuario), b.id_plano, c.descricao * from *tabela usuario a, planos_contrato b, tabela planos c, * where *a.id_plano_contrato = b.id_plano *and *b.id_plano = c.id_plano * group by *b.id_plano, c.descricao Em 30/01/08, Haroldo Gondim Torres Filho <[EMAIL PROTECTED]> escreveu: > Olá pessoal, sou novo aqui no grupo > > alguém poderia me ajudar a fazer uma consulta > > a estrutura e mais ou menos assim > > tabela usuario [id_usuario, id_plano_contrato] > tabela planos_contrato [plano_contrato, id_plano] > tabela planos[id_plano, descricao] > > possui outros atributos, + acho que não influenciem > > o que eu preciso é a quantidade de usuários por plano > > > -- Roberto Fernandes Sobrinho Deenvolvedor Oracle [As partes desta mensagem que não continham texto foram removidas]
[oracle_br] Consulta SQL
Olá pessoal, sou novo aqui no grupo alguém poderia me ajudar a fazer uma consulta a estrutura e mais ou menos assim tabela usuario [id_usuario, id_plano_contrato] tabela planos_contrato [plano_contrato, id_plano] tabela planos[id_plano, descricao] possui outros atributos, + acho que não influenciem o que eu preciso é a quantidade de usuários por plano
Re: [oracle_br] Consulta SQL Hierárquica com contador e somatório
Olá Ulisses. Dê uma olha em http://www.psoug.org/reference/connectby.html Pode ser que te ajude... abs. Ricardo. Em 21/09/07, Ulisses Tenorio da Silva <[EMAIL PROTECTED]> escreveu: > > Ola pessoal! > > Existe alguns posts tratando de problemas parecidos com o que eu estou > passando, mas eles não me ajudaram a resolver meu problema. > > É o seguinte: > > Eu tenho uma tabela hierárquica da seguinte forma: > > CREATE TABLE historicos ( > codigo NUMBER(3), > nome VARCHAR2(30), > pai NUMBER(3), > CONSTRAINT fk_pai FOREIGN KEY pai REFERENCES esquema.tabela (codigo) > ); > COD NOME PAI > --- --- > 001 SUPERMERCADO > 002 LIMPEZA 001 > 003 ALIMENTACAO 001 > 004 MORADIA > 005 ALUGUEL 004 > 006 ALUGUEL CASA 005 > 007 ALUGUEL GARAGEM 005 > 008 AGUA 004 > 009 LUZ 004 > > e tenho outra tabela de lancamentos: > > CREATE TABLE esquema.lancamentos ( > data DATE, > valor NUMBER(10,2), > historico NUMBER(3), > CONSTRAINT fk_historico FOREIGN KEY historico REFERENCES historicos > (codigo) > ); > > DATA VALOR HISTORICO > -- -- > 020507 100,00 002 > 030507 130,00 003 > 070507 50,00 002 > 150507 210,00 006 > 150507 150,00 007 > 160507 30,00 008 > 170507 60,00 008 > 170507 25,00 009 > > Quero uma consulta SQL que retorne a árvore de históricos, um contador > de lancamentos e a soma dos valores dos lançamentos, dessa forma: > > HISTORICO QTD VLR > --- -- > 001 SUPERMERCADO 3 280,00 > 002 LIMPEZA 2 150,00 > 003 ALIMENTACAO 1 130,00 > 004 MORADIA 4 475,00 > 005 ALUGUEL 2 360,00 > 006 ALUGUEL CASA 1 210,00 > 007 ALUGUEL GARAGEM 1 150,00 > 008 AGUA 2 90,00 > 009 LUZ 1 25,00 > > Mesmo pesquisando muito (sobre SQL hierárquica) não consegui fazê-lo. > > Agradeço desde já qualquer dica; > > Obrigado!!! > > Ulisses > > > [As partes desta mensagem que não continham texto foram removidas]
[oracle_br] Consulta SQL Hierárquica com contador e somatório
Ola pessoal! Existe alguns posts tratando de problemas parecidos com o que eu estou passando, mas eles não me ajudaram a resolver meu problema. É o seguinte: Eu tenho uma tabela hierárquica da seguinte forma: CREATE TABLE historicos ( codigo NUMBER(3), nome VARCHAR2(30), pai NUMBER(3), CONSTRAINT fk_pai FOREIGN KEY pai REFERENCES esquema.tabela (codigo) ); COD NOME PAI --- --- 001 SUPERMERCADO 002 LIMPEZA001 003 ALIMENTACAO001 004 MORADIA 005 ALUGUEL004 006 ALUGUEL CASA 005 007 ALUGUEL GARAGEM 005 008 AGUA 004 009 LUZ004 e tenho outra tabela de lancamentos: CREATE TABLE esquema.lancamentos ( data DATE, valor NUMBER(10,2), historico NUMBER(3), CONSTRAINT fk_historico FOREIGN KEY historico REFERENCES historicos (codigo) ); DATA VALORHISTORICO -- -- 020507 100,00 002 030507 130,00 003 07050750,00 002 150507 210,00 006 150507 150,00 007 16050730,00 008 17050760,00 008 17050725,00 009 Quero uma consulta SQL que retorne a árvore de históricos, um contador de lancamentos e a soma dos valores dos lançamentos, dessa forma: HISTORICOQTDVLR --- -- 001 SUPERMERCADO 3 280,00 002 LIMPEZA 2 150,00 003 ALIMENTACAO 1 130,00 004 MORADIA4 475,00 005 ALUGUEL 2 360,00 006 ALUGUEL CASA 1 210,00 007 ALUGUEL GARAGEM1 150,00 008 AGUA 2 90,00 009 LUZ 1 25,00 Mesmo pesquisando muito (sobre SQL hierárquica) não consegui fazê-lo. Agradeço desde já qualquer dica; Obrigado!!! Ulisses