none
Pesquisa num campo Image RRS feed

  • Pergunta

  •  Senhores ,

      Imagine o seguinte cenario , tenhum uma tabela com um campo Image com milhares de Documentos, e fui questionado 

     se e possivel fazer pesquisa no Binario desse campo Image

     

      Por Exempo

       id_Doc  = 1 ; ds_Doc = 'carta.doc' , im_Doc =  000xxx000 ( Binario )

       Existe alguma forma de pesquisar palavras nesse ( im_Doc ) com um Like '%SQL SERVER%' ????

      Obrigado ,

         Andre Rodrigues

     

     

     

     

     

     

     

     

     

     


    andre
    sábado, 12 de setembro de 2009 17:21

Respostas

Todas as Respostas

  • Boa Noite,

    É possível sim, mas você terá que utilizar o recurso de FULL TEXT INDEX sobre esse campo. Nesse caso será possível efetuar pesquisas sobre o binário. Você não conseguirá ler o binário através do SELECT, mas poderá recuperar os registros em que as ocorrências são verdadeiras para posterioremente recuperar os registros (e os binários desejados). Já efetuei alguns projetos desse tipo no SQL Server 2000 e sei que é plenamente possível de fazer nas versões posteriores.

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.spaces.live.com

    A armadilha do Backup Diferencial – O que fazer para evitá-la ?
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!719.entry
    Classifique as respostas. O seu feedback é imprescindível
    domingo, 13 de setembro de 2009 01:56
  •  Gustavo
      Voce poderia me mostrar um Exemplo  ??
     
      Tem que configurar algo a mais no Sql Server ??
    andre
    segunda-feira, 14 de setembro de 2009 12:22
  • Bom Dia,

    Segue um exemplo que utilizava em sala de aula. Acredito que funcione no 2005 sem maiores problemas. Para ficar 100% (apenas por questões de apresentação), é necessário mudar as stored procedures pelos comandos do 2005.

    -- Cria uma nova tabela
    CREATE TABLE tblArquivos (URL VARCHAR(50) NOT NULL, Arquivo IMAGE,
    Tipo CHAR(3), Versao TIMESTAMP
    CONSTRAINT PK_URL PRIMARY KEY (URL))
    
    -- Insere três registros
    INSERT INTO tblArquivos (URL, Arquivo, Tipo) VALUES ('D:\ModeloCurriculo.doc',0x0,'doc')
    INSERT INTO tblArquivos (URL, Arquivo, Tipo) VALUES ('D:\Documentos.xls',0x0,'xls')
    INSERT INTO tblArquivos (URL, Arquivo, Tipo) VALUES ('D:\teste.txt',0x0,'txt')
    
    -- Insira os arquivos por sua conta (via aplicação)
    
    -- Verifica o conteúdo da tabela
    SELECT URL, Arquivo, Tipo FROM tblArquivos
    
    -- Cria a estrutura de full text
    EXEC sp_fulltext_table 'tblArquivos', 'create', 'BDFullText_Cat', 'PK_URL'
    EXEC sp_fulltext_column 'tblArquivos', 'Arquivo', 'add', 0,'Tipo'
    EXEC sp_fulltext_table 'tblArquivos', 'activate'
    EXEC sp_fulltext_catalog 'BDFullText_Cat', 'start_full' 
    
    -- Retorna todos os arquivos que tem a palavra CPF
    SELECT * FROM tblArquivos
    WHERE CONTAINS (Arquivo, 'cpf')


    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.spaces.live.com

    A armadilha do Backup Diferencial – O que fazer para evitá-la ?
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!719.entry


    Classifique as respostas. O seu feedback é imprescindível
    segunda-feira, 14 de setembro de 2009 12:30
  • Estranho Gustavo , nao tem que fazer nenhuma configuracao adicional  ???

    Msg 7641, Level 16, State 1, Line 1

    Msg 7641, Level 16, State 1, Line 1

    Full-Text catalog 'BDFullText_Cat' does not exist in database 'DB_ABN' or user does not have permission to perform this action.


    andre
    • Marcado como Resposta Arodrigues32 segunda-feira, 14 de setembro de 2009 14:22
    • Não Marcado como Resposta Gustavo Maia Aguiar segunda-feira, 14 de setembro de 2009 14:55
    segunda-feira, 14 de setembro de 2009 13:06
  • Bom Dia,

    Sim, desculpe eu esqueci de criar o catálogo.

    EXEC sp_fulltext_catalog 'BDFullText_Cat', 'create'

    Ao final dos demais scripts, carregue o catálogo

    EXEC sp_fulltext_catalog 'BDFullText_Cat', 'start_full'

    Vale a pena lembrar que você não é obrigado a utilizar os mesmos nomes que descrevei. Opcionalmente escolha outro nome que não BDFullText_Cat e altere seus scripts

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.spaces.live.com

    A armadilha do Backup Diferencial – O que fazer para evitá-la ?
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!719.entry
    Classifique as respostas. O seu feedback é imprescindível
    • Sugerido como Resposta Gustavo Maia Aguiar segunda-feira, 14 de setembro de 2009 13:43
    • Não Sugerido como Resposta Gustavo Maia Aguiar segunda-feira, 14 de setembro de 2009 13:44
    • Marcado como Resposta Arodrigues32 segunda-feira, 14 de setembro de 2009 15:54
    segunda-feira, 14 de setembro de 2009 13:43
  • Show de Bola funcionou Perfeitamente !!!!!

     Obrigadao Gustavo


    andre
    segunda-feira, 14 de setembro de 2009 14:22
  • Olá André,

    Se puder marcar como resposta...

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.spaces.live.com

    A armadilha do Backup Diferencial – O que fazer para evitá-la ?
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!719.entry
    Classifique as respostas. O seu feedback é imprescindível
    segunda-feira, 14 de setembro de 2009 14:56