You are on page 1of 3

set serveroutput on;

CREATE or replace DIRECTORY USER_DIR AS '/home/oracle';

GRANT READ ON DIRECTORY USER_DIR TO PUBLIC;

DECLARE
V1 VARCHAR2(2000); --32767

v2 VARCHAR2(2000) null; --32767


F1 UTL_FILE.FILE_TYPE;
BEGIN
F1 := UTL_FILE.FOPEN('USER_DIR','bse64.txt','R');
Loop
BEGIN
UTL_FILE.GET_LINE(F1,V1);
--dbms_output.put_line(V1 );
--select V1 into v2 from dual;
v2:= v2||V1;

dbms_output.put_line('v2 '||v2);

EXCEPTION WHEN No_Data_Found THEN EXIT; END;


end loop;

dbms_output.put_line('v3 '||v2);

IF UTL_FILE.IS_OPEN(F1) THEN
dbms_output.put_line('File is Open');
end if;

UTL_FILE.FCLOSE(F1);
END;
/
set serveroutput off;

select * from /home/oracle/output.txt

create or replace function ODI_STAGING.get_content( name_in in varchar2) return


varchar2 as

V1 VARCHAR2(2000); --32767

v2 VARCHAR2(2000) null; --32767


F1 UTL_FILE.FILE_TYPE;
BEGIN
F1 := UTL_FILE.FOPEN('USER_DIR',name_in,'R',32767);
Loop
BEGIN
UTL_FILE.GET_LINE(F1,V1);
--dbms_output.put_line(V1);
--select V1 into v2 from dual;
--v2:=V1;
v2:= v2||V1;

dbms_output.put_line(v2);
EXCEPTION WHEN No_Data_Found THEN EXIT; END;
end loop;

Return v2;

IF UTL_FILE.IS_OPEN(F1) THEN
dbms_output.put_line('File is Open');
end if;

UTL_FILE.FCLOSE(F1);
END;

select substr(get_content('output.txt'),43) a from dual;

--extractvalue(*, '/ns0/result') A

--EXTRACT(XMLTYPE.CREATEXML(*), '/ns0/result') "A"

EXTRACT(blob_to_xmltype(*), '/ns0/result')

select extractvalue((XMLTYPE.CREATEXML(get_content('output.txt'))),'/ns0/result')
a from dual;

select x.*

from (
select XMLTYPE(substr(get_content('output.txt'),43)) a from dual) t,
xmltable(

xmlnamespaces
('http://xmlns.oracle.com/apps/financials/commonModules/shared/model/erpIntegration
Service/types/' as "ns0"
-- ,default
'http://xmlns.oracle.com/apps/financials/commonModules/shared/model/erpIntegrationS
ervice/types/'

), 'ns0:uploadFileToUcmResponse'

passing t.a

columns Result_id varchar2(10) PATH 'result'


) x;

--'//e:GetGeoLocationIDByWellTagIDResponse/a:GetGeoLocationIDByWellTagIDResult'
20
's:Envelope/s:Body/GetGeoLocationIDByWellTagIDResponse/GetGeoLocationIDByWellTagIDR
esult'
21 passing t.xml
22 columns
23 loc_id number path 'a:int'
24 ) x;
select x.*
from
(select xmltype('<s:Envelope
xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<GetGeoLocationIDByWellTagIDResponse xmlns="http://tempuri.org/">
<GetGeoLocationIDByWellTagIDResult
xmlns:a="http://schemas.microsoft.com/2003/10/Serialization/Arrays"
xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<a:int>9110910</a:int>
</GetGeoLocationIDByWellTagIDResult>
</GetGeoLocationIDByWellTagIDResponse>
</s:Body>
</s:Envelope>') xml from dual) t,
xmltable(
xmlnamespaces (
'http://tempuri.org/' as "e",
'http://schemas.microsoft.com/2003/10/Serialization/Arrays' as "a"
, 'http://schemas.xmlsoap.org/soap/envelope/' as "s"
,default 'http://tempuri.org/'
),
--'//e:GetGeoLocationIDByWellTagIDResponse/a:GetGeoLocationIDByWellTagIDResult'

's:Envelope/s:Body/GetGeoLocationIDByWellTagIDResponse/GetGeoLocationIDByWellTagIDR
esult'
passing t.xml
columns
loc_id number path 'a:int'
) x;

final

select x.*

from (
select XMLTYPE(get_content('output.txt')) a from dual) t,
xmltable(

xmlnamespaces
('http://xmlns.oracle.com/apps/financials/commonModules/shared/model/erpIntegration
Service/types/' as "ns0"
,default
'http://xmlns.oracle.com/apps/financials/commonModules/shared/model/erpIntegrationS
ervice/types/'

), 'ns0:uploadFileToUcmResponse'

passing t.a

columns Result_id varchar2(10) PATH 'result'


) x;

You might also like