{"id":20404,"date":"2020-04-27T14:19:03","date_gmt":"2020-04-27T17:19:03","guid":{"rendered":"https:\/\/orabr.com\/?p=20404"},"modified":"2020-04-29T20:17:52","modified_gmt":"2020-04-29T23:17:52","slug":"-leitura-campo-blob-por-dblink-2","status":"publish","type":"post","link":"https:\/\/orabr.virttus.com\/?p=20404","title":{"rendered":"Leitura campo BLOB por DBLink."},"content":{"rendered":"<p><HTML><\/p>\n<div>  <span style=\"display:none\">&nbsp;<\/span>    <!--~-|**|PrettyHtmlStartT|**|-~-->  <\/p>\n<div id=\"ygrp-mlmsg\" style=\"position:relative;\">\n<div id=\"ygrp-msg\" style=\"z-index: 1;\">  <!--~-|**|PrettyHtmlEndT|**|-~-->        <\/p>\n<div id=\"ygrp-text\" >\n<p><div dir=\"ltr\">Oi Denilson, tudo bem?<\/p>\n<div><\/div>\n<div>Tive de fazer isto recentemente para um projeto de Nota Fiscal Eletronica, para recuperar o XML da Nota Fiscal do Mastersaf que est\u00e1 em BLOB em outro banco de\u00a0 dados. O PLSQL\u00a0n\u00e3o permite que voc\u00ea fa\u00e7a um SELECT &#8230; INTO em um campo BLOB utilizando uma tabela remota pois d\u00e1 erro de ORA-22992. por\u00e9m ele\u00a0 permite uma inser\u00e7\u00e3o direta com comando INSERT..SELECT.\u00a0<\/div>\n<div>Ent\u00e3o o workaround que utilizamos foi criar uma GLOBAL TEMPORARY TABLE com este campo BLOB, fazer um INSERT..SELECT nela buscando via DBLINK, e depois j\u00e1 dentro do ambiente destino, fazer o SELECT..INTO na vari\u00e1vel local, tipo abaixo:<\/div>\n<div><\/div>\n<div>CREATE GLOBAL TEMPORARY TABLE xx_temp_lob (templob BLOB);<\/div>\n<div>\/* Dentro da procedure PLSQL, fazer a sequencia abaixo *\/<\/div>\n<div>INSERT INTO xx_temp_lob\u00a0<\/div>\n<div>SELECT coluna_blob FROM xyz@dblink;<\/div>\n<div><\/div>\n<div>SELECT templob\u00a0INTO\u00a0l_variavelLob\u00a0FROM xx_temp_lob;<\/div>\n<div><\/div>\n<div>Tem essa solu\u00e7\u00e3o no ASKTOM tamb\u00e9m:\u00a0<a href=\"https:\/\/asktom.oracle.com\/pls\/apex\/f?p=100:11:0::::P11_QUESTION_ID:950029833940\">https:\/\/asktom.oracle.com\/pls\/apex\/f?p=100:11:0::::P11_QUESTION_ID:950029833940<\/a><\/div>\n<div><\/div>\n<div>Espero que ajude.<\/div>\n<div>Abra\u00e7os!<\/div>\n<div><\/div>\n<div><\/div>\n<\/div>\n<p><\/p>\n<div class=\"gmail_quote\">\n<div dir=\"ltr\" class=\"gmail_attr\">On Mon, 27 Apr 2020 at 14:10, FelixDenilson <a href=\"mailto:felix.denilson@gmail.com\">felix.denilson@gmail.com<\/a>  &lt;<a href=\"mailto:\"><\/a>&gt; wrote:<\/div>\n<blockquote class=\"gmail_quote\" style=\"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);\"><p>      <u><\/u>                       <\/p>\n<div style=\"background-color:rgb(255,255,255);\">  <span>\u00a0<\/span>      <\/p>\n<div id=\"gmail-m_-4111585373701237685ygrp-mlmsg\">\n<div id=\"gmail-m_-4111585373701237685ygrp-msg\">\n<div id=\"gmail-m_-4111585373701237685ygrp-text\">\n<p>Boa tarde Grupo.<\/p>\n<p>  Algu\u00e9m teria um exemplo de como recuperar um campo BLOB de uma tabela que est\u00e1 em outro ambiente utilizando para isso um DBLink?<br \/>  Estando no banco Oracle, preciso ler um campo IMAGEM da tabela xyz@dblink (ambiente APEX)\u00a0 e guardar no RI.\u00a0<\/p>\n<p>  Vers\u00e3o R11.<\/p>\n<p>  Obrigado,<br \/>  Denilson  <\/p>\n<\/p><\/div>\n<div style=\"color:rgb(255,255,255);height:0px;\"><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/div>\n<\/blockquote>\n<\/div>\n<\/p><\/div>\n<p>               <\/HTML><\/p>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp; Oi Denilson, tudo bem? Tive de fazer isto recentemente para um projeto de Nota Fiscal Eletronica, para recuperar o XML da Nota Fiscal do&hellip; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[29],"tags":[],"class_list":["post-20404","post","type-post","status-publish","format-standard","hentry","category-base-de-conhecimentos"],"_links":{"self":[{"href":"https:\/\/orabr.virttus.com\/index.php?rest_route=\/wp\/v2\/posts\/20404","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/orabr.virttus.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/orabr.virttus.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/orabr.virttus.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/orabr.virttus.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=20404"}],"version-history":[{"count":0,"href":"https:\/\/orabr.virttus.com\/index.php?rest_route=\/wp\/v2\/posts\/20404\/revisions"}],"wp:attachment":[{"href":"https:\/\/orabr.virttus.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=20404"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/orabr.virttus.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=20404"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/orabr.virttus.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=20404"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}