Pular para o conteúdo

Fóruns SQL e PL/SQL Função similar à função lo_import do PostgreSQL Função similar à função lo_import do PostgreSQL

#109184
Avatar photoJosé Laurindo Chiappa
Moderador

    Blz ? Então, primeira coisa eu ** sempre ** indico que vc explique DETALHADAMENTE o que vc quer ao invés de se basear numa funcionalidade de outro SGBD, pois NÃO APENAS dificilmente quem conhece bem teu SGBD exemplo conhece também o RDBMS Oracle MAS TAMBÉM sempre há detalhes a se considerar – por exemplo, por não conhecer bem o PostgerSQL eu não sei se essa tal ‘lo_import’ lê um arquivo que está na máquina servidora do SGBD ou numa máquina-cliente, se é uma built-in interna do SGBD ou se demanda alguma instalação a mais, nada de nada…. okdoc ??
    AO QUE ENTENDO (baseado na minha POUCA experiência com o Post e no artigo http://www.andersonmedeiros.com/importar-arquivos-pdf-postgresql/), essa tal é uma função interna do SGBD que lê um arquivo presente no servidor do SGBD (ou disponibilizado para acesso por parte do servidor, via NFS ou coisa assim) e insere o conteúdo lido numa coluna do tipo Binary Object, BLOB no Oracle : o equivalente no RDBMS Oracle seria a package DBMS_LOB, nela há uma rotina LOADFROMFILE que faz exatamente isso, https://asktom.oracle.com/pls/asktom/f?p=100:11:::::P11_QUESTION_ID:232814159006 tem um exemplo loho na primeira resposta – ignore a parte que vem depois de “Now here is the package that can retrieve the pdf…”, a carga do .PDF é o que foi feito antes desse parágafo… VC vai ver que é basicamente criar a tabela com a coluna BLOB que vc quer (tem que ser BLOB e não CLOB, já que .PDF é binário), tem que criar um “sinônimo” pra pasta do servidor aonde vc vai ler o arquivo (é o objeto chamado DIRECTORY que o Autor cria no exemplo), e imediatamente antes de vc chamar o LOADFROMFILE vc tem que ter aberto um file handler via DBMS_LOB.FILEOPEN, e depois de carregar o .PDF vc fecha o file handler, certinho como tá feito no exemplo…

    []s

    Chiappa

    OBS : evidentemente, se for OUTRA a sua necessidade (por exemplo, se vc quer carregar o arquivo a partir duma máquina-cliente, digamos) vc teria que usar OUTRAS funcionalidades do RDBMS Oracle , veja https://blogs.oracle.com/searchtech/loading-documents-and-other-file-data-into-the-oracle-database para refs…