ODI or FDM to extract data from Oracle ERP
I want to extract data directly from Oracle ERP GL module in HFM. I use ERPi and ODI. Should I also use FDM to retrieve the data, or if I can load data in HFM using just ERPi and ODI?I finished the configuration of the ERPi and I am currently in the process of installation and configuration ODI.
All entries on the best practices that I have to follow during the configuration of ODI?
You don't need to use FDM. ERPI can load directly to HFM as a stand-alone product and you still get the feature drillback. Use FDM, if you need additional features that offers for example validation of intersection, to check the reports, logic etc.
Tags: Business Intelligence
Similar Questions
-
Extract data from Oracle into excel file
Hello
I have a requirement where in I need to extract data from Oracle into excel file and the worksheet excel name should be 'given '.
for example. Excel 'AR Data_DDMMYY' file name and the name of the "Data" sheet excel
I used the UTL_FILE API to extract the data delimited by tabs that you can open in excel, but it's not exactly an excel file as the name of the worksheet is the same as the name of the file.
I tried to use utl_file.fcopy and frename.
Is it possible to do it using PLSQL?
Select * from version of v$.
Example Code:Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bi PL/SQL Release 10.2.0.5.0 - Production "CORE 10.2.0.5.0 Production" TNS for HPUX: Version 10.2.0.5.0 - Production NLSRTL Version 10.2.0.5.0 - Production
Thank youdeclare cursor c is select * from scott.emp; v varchar2(100); f utl_file.file_type; file_name varchar2(100) := 'AR Data.xls'; dir varchar2(50) := 'CESDIR191710'; --select * from dba_directories begin f := utl_file.fopen(dir, file_name, 'W'); v := 'EMPNO'||chr(9)||'ENAME'||chr(9)||'JOB'||chr(9)||'SAL'||chr(9)||'HIREDATE'||chr(9)||'DEPTNO'; utl_file.put_line(f, v); for i in c loop v := i.empno||chr(9)||i.ename||chr(9)||i.job||chr(9)||i.sal||chr(9)||i.hiredate||chr(9)||i.deptno; utl_file.put_line(f, v); end loop; utl_file.fclose(f); --utl_file.frename(dir, file_name, dir, replace(file_name, '.xls', '_')||to_char(sysdate, 'MMDDYY')||'.xls', false); utl_file.fcopy(dir, file_name, dir, replace(file_name, '.xls', '_')||to_char(sysdate, 'MMDDYY')||'.xls'); end;
ImranHello
I tried to change the .xlsx to .xls and it gives a note at the opening of the file "the file you are trying to open, abc.xls, is in a different format that it is specified by the file extension. Check that the file is not corrupted and precedes from a trusted source before you open the file. Do you want to open it now? »
When you rename the file does not solve your problem.
Anton Scheffer package generates a file in format xlsx Office 2010. When rename you it with the .xls extension, then Office 2010 will give you the warning that the file format does not match the extension.but the requirement has to generate excel 2003 file.
The xml_spreadsheet package writes a format that was introduced with Office 2003, but you must use .xml as extension in other Office 2010 will give you the same caveat.
To write the real xls version (binary), you can use Apache POI. You will need to import Java classes in your db and write a PL/SQL wrapper. Or you can use one of the options above, writing the output to a windows server and then use Excel to open and save in the required format.You must decide whether it is easier to write the binary xls format or to convince the customer to accept other formats that can be opened with Excel.
Concerning
Marcus -
How to extract data from SAP and COBOL using ODI
Hi people,
Can you please let me know the procedures in ODI to extract data from SAP and COBOL?
Thank you all for the help.Hello
You can download the Patch 8571830 to Oracle metalink.
It has a new technology 'SAP ABAP' and KMs to extract and load data-
RKM SAP ERP and SAP to Oracle ERP LKM.Thank you
-
Hi, after all stages of extraction of data from oracle to oracle during the execution of command "start extract ext1" his error giving this handler does not run both source and target, can you please help me. Thank you
Hello
The setting should be as below, and not only the port number should be...
PORT 7809
Kind regards
Veera
-
How to extract data from SQL server in the FDM
Hi Experts
How to extract data from a SQL server HFM to another SQL Server using scripts for integration in FDQM?
concerning
DevCould you clarify why you want to do this?
If you try to synchronize two databases (apps) to have a backup or something running in a development environment, I suggest configuring replication between two databases. It would be much more effective to do it at the SQL Server level through the application of FDM, IMHO.
Charles
-
How to transfer data from oracle to the web service using ODI with axis2 tech
Hi all
Can someone cause a document or markets about 'How to transfer data from oracle to the web service with the help of ODI with AXIS2 technology'
If any person with a document or markets, please share it with me
Thank you
PhaniI can give you a few examples of web services in ODI, perhaps that you find them useful?
Try: -.
http://John-Goodwin.blogspot.com/2009/04/ODI-series-Web-services.html
http://John-Goodwin.blogspot.com/2009/05/ODI-series-Web-services-part-3.html
http://John-Goodwin.blogspot.com/2009/05/ODI-series-Web-services-part-4.htmlSee you soon
John
http://John-Goodwin.blogspot.com/ -
SOS! -Error to load data from Oracle 11 g to Essbase using ODI
Hi all.
I want to load data from oracle database to essbase using ODI.
I have set up correctly the Hyperion essbase physical and logical topology manager and got the structure ESSBASE BASIC app DEMO.
The problem is.
1. when I try see data right click on the table of essbase.
va.sql.SQLException: driver must be specified
at com.sunopsis.sql.SnpsConnection.a (SnpsConnection.java)
at com.sunopsis.sql.SnpsConnection.testConnection (SnpsConnection.java)
at com.sunopsis.sql.SnpsConnection.testConnection (SnpsConnection.java)
at com.sunopsis.graphical.frame.b.jc.bE (jc.java)
at com.sunopsis.graphical.frame.bo.bA (bo.java)
at com.sunopsis.graphical.frame.b.ja.dl (ja.java)
to com.sunopsis.graphical.frame.b.ja. < init > (ja.java)
to com.sunopsis.graphical.frame.b.jc. < init > (jc.java)
I got the answer of partisan Oracle it's ok, just omit it. The second problem will appear.
2 create an interface between the oracle and essbase database, click on the option ' staging of deffirent from the area of the "(ce qui signifie que la mise en scène est créé à la base de données oracle) target, and using IKM SQL for Hyperion Essbase (metadata), run this interface".
org.apache.bsf.BSFException: exception of Jython:
Traceback (innermost last):
"< String >" file, line 61, in there?
com.hyperion.odi.essbase.ODIEssbaseException: invalid value specified [RULES_FILE] for the load option [null]
at com.hyperion.odi.essbase.ODIEssbaseMetaWriter.validateLoadOptions (unknown Source)
at com.hyperion.odi.essbase.AbstractEssbaseWriter.beginLoad (unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke (unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke (unknown Source)
at java.lang.reflect.Method.invoke (unknown Source)
at org.python.core.PyReflectedFunction.__call__ (PyReflectedFunction.java)
at org.python.core.PyMethod.__call__ (PyMethod.java)
at org.python.core.PyObject.__call__ (PyObject.java)
at org.python.core.PyInstance.invoke (PyInstance.java)
to org.python.pycode._pyx1.f$ 0 (< string >: 61)
to org.python.pycode._pyx1.call_function (< string >)
at org.python.core.PyTableCode.call (PyTableCode.java)
at org.python.core.PyCode.call (PyCode.java)
at org.python.core.Py.runCode (Py.java)
at org.python.core.Py.exec (Py.java)
I am very confused by it. Someone give me a solution or other docs.
Ethan.Hello
You say that you are loading, but you chose the KM for the loading of metadata?
If you load metadata then you must provide a rules file, if you are loading and then choose the KM - IKM SQL for Hyperion Essbase (DATA)Ok?
See you soon
John
http://John-Goodwin.blogspot.com/ -
Script Insert statement to extract data from Table in Oracle 7i
Hi all, I have an old Oracle legacy system that works for more than 15 years. Every now and then, we need to extract data from this table @ ORacle 7i to import to Oracle 10 G.
My thoughts are to create a script to Insert statements in oracle 7 and that, to be deployed to Oracle 10 G.
I found cela scripts in Google and don't know exactly how it works. No explanation on these scripts, would be greatly appreciated. I find that this format can help to produce a set of insert statements in this table to the last table to 10G.
< pre >
-Step 1: create this procedure:
create or replace function ExtractData (v_table_name varchar2) return varchar2 as
Boolean b_found: = false;
v_tempa varchar2 (8000);
v_tempb varchar2 (8000);
v_tempc VARCHAR2 (255);
Start
for tab_rec in (select table_name from user_tables where table_name = upper (v_table_name))
loop
b_found: = true;
v_tempa: =' select ' insert into ' | tab_rec.table_name |' (';
for col_rec in (select * from user_tab_columns)
where
table_name = tab_rec.table_name
order by
column_id)
loop
If col_rec.column_id = 1 then
v_tempa: = v_tempa | " ' || Chr (10) | " ' ;
on the other
v_tempa: = v_tempa |', ". Chr (10) | " ' ;
v_tempb: = v_tempb |', ". Chr (10) | " ' ;
end if;
v_tempa: = v_tempa | col_rec.column_name;
If instr(col_rec.data_type,'CHAR') > 0 then
v_tempc: = "' |' | col_rec.column_name |'| " ' ;
elsif instr (col_rec.data_type, 'DATE') > 0 then
v_tempc: = "' to_date ("'| to_char('|| col_rec.column_name||',''mm/DD/YYYY HH24 '') | ") (', "' dd/mm/yyyy hh24"') "';
on the other
v_tempc: = col_rec.column_name;
end if;
v_tempb: = v_tempb | " ' || Decode('|| col_rec.column_name||',''Null'','||v_tempc||') | " ' ;
end loop;
v_tempa: = v_tempa |') values ('| v_tempb |'); "from ' |" tab_rec.table_name | « ; » ;
end loop;
If not b_found then
v_tempa: ='-Table ' | v_table_name | 'not found ';
on the other
v_tempa: = v_tempa | Chr (10) | "select"-commit; "double;';
end if;
Return v_tempa;
end;
/
display errors
-STEP 2: run the following code to extract the data.
Go head
set pages 0
game of stripes on
fixed lines 2000
the feeding off value
trigger the echo
var retline varchar2 (4000)
coil c:\t1.sql
Select 'set echo off' from dual;
Select 'spool c:\recreatedata.sql' from dual;
Select ' select "-these data was extracted on" | TO_CHAR (sysdate, "mm/dd/yyyy hh24" ") double;' double.
-The following two lines as repeat as many times as the tables that you want to extract
exec: retline: = ExtractData ('dept');
print: retline;
exec: retline: = ExtractData ('emp');
print: retline;
Select 'off spool' from dual;
spool off
@c:\t1
-Step 3: run the updated c:\recreatedata.sql waiting for output to recreate the data.
Source: http://www.idevelopment.info/data/Oracle/DBA_tips/PL_SQL/PLSQL_5.shtml
< / pre >Hello
Well what this script do.
You will pass a table name as input to the function that will return varchar2 (string - insert statement). It will generate 2 t1.sql of sql script that contains the output sequence.Will use the first passed the user_tables scipt to check if the input table name exists and if there is the will reterive user_table_columns column names and generate the following sql script.
Now, this t1.sql will run to generate a final sript formally orders insert that will run you on the target schema (make sure that the table exists).* #t1.sql*
set echo off spool recreatedata.sql select '-- This data was extracted on '||to_char(sysdate,'mm/dd/yyyy hh24:mi') from dual; select 'insert into MY_OBJECT1 ('||chr(10)||'OWNER,'||chr(10)||'TOTAL) values ('||decode(OWNER,Null,'Null',''''||OWNER||'''')||','||chr(10)||''||decode(TOTAL,Null,'Null',TOTAL)||');' from MY_OBJECT1; select '-- commit;' from dual; spool off
Then @t1.sql runs, and the general insert for the infeed table table.
-- This data was extracted on 03/09/2009 23:39 INSERT INTO MY_OBJECT1 (OWNER, TOTAL) VALUES ('MDSYS', 92800); INSERT INTO MY_OBJECT1 (OWNER, TOTAL) VALUES ('TSMSYS', 256); INSERT INTO MY_OBJECT1 (OWNER, TOTAL) VALUES ('DMSYS', 15104); INSERT INTO MY_OBJECT1 (OWNER, TOTAL) VALUES ('TESTME', 128); INSERT INTO MY_OBJECT1 (OWNER, TOTAL) VALUES ('PUBLIC', 2571392); INSERT INTO MY_OBJECT1 (OWNER, TOTAL) VALUES ('OUTLN', 768); INSERT INTO MY_OBJECT1 (OWNER, TOTAL) VALUES ('CTXSYS', 21888); INSERT INTO MY_OBJECT1 (OWNER, TOTAL) VALUES ('OLAPSYS', 78336); INSERT INTO MY_OBJECT1 (OWNER, TOTAL) VALUES ('KLONDIKE', 2432); INSERT INTO MY_OBJECT1 (OWNER, TOTAL) VALUES ('SYSTEM', 51328); INSERT INTO MY_OBJECT1 (OWNER, TOTAL) VALUES ('EXFSYS', 21504); INSERT INTO MY_OBJECT1 (OWNER, TOTAL) VALUES ('DBSNMP', 4096); INSERT INTO MY_OBJECT1 (OWNER, TOTAL) VALUES ('ORDSYS', 216192); INSERT INTO MY_OBJECT1 (OWNER, TOTAL) VALUES ('SYSMAN', 111744); -- commit;
Hope this helps
Concerning -
How to ETL extract data from database Oracle 11.1 using Cognos Data Manager 10.1
Hello
I need to run the IBM Cognos Data Manager 10.1 version ETL tool for extracting data from the Oracle11.1 database.
My understanding is that, from the point of view of database, the best way would to have a stored procedure that will provide a reference cursor in the ETL client tool.
However, a database procedure the ETL tool running seems not to be possible in this version of the data manager.
If someone has done this before? What is the best way for this snippet to do?
Thank you
Emilija
Annabelle says:
My reading of original question: "What is the best way for this snippet to do?"
Sorry - is NOT helping.
The BEST way to extract data from a table is to use a SELECT statement.
You said you want to do.
So just repeat your original question instead of those that ask you to answer will not move forward us.
-
Hello
Is there any task in the Installation Manager to extract data from configuration of an instance as working Structures, research etc.
I'm looking for the same kind that I could move all these configurations of one example to the other.
Thank you
Maury
The name of the task is to manage Configuration packages in the installation and maintenance program. You can see this document http://docs.oracle.com/cd/E48434_01/fusionapps.1118/e49542/F1166430AN11D30.htm
-
extract data from XMLType using vbscript on OleDB?
Hello.
We have a problem where the XMLType column data to get in 11.2.0.1 on Windows x 64 worked very well, but we have moved to 11.2.0.3 Patch 21 and the column type changed to binary storage default, and we started to do read errors when the data was greater than 32 k (or so it seems).
I opened a SR, and Oracle support sent me a VB script to test playback of the table on OleDB. However, their script doesn't seem to work as announced, so after a lot of gooling, came to us with the following to read a column of xmltype - not the same table, just to test that the vbscript works:
REM need to re-register the dll OLEDB as there is a problem with the oracle client and the dll registration
REM start following an administrator command prompt
REM regsvr32.exe c:\Users\finite9\oracle\product\11.2.0\client_2\bin\oraoledb11.dll
the con value = createobject ("adodb.connection")
con. Open "provider = oraoledb.oracle; user id = finite9; password = password1; data source = TSTDB ".
Set rs = createobject ("adodb.recordset")
RS. Open 'select SW_REPLY changedate', con
While not on the place. EXPRESSIONS OF FOLKLORE
MsgBox rs. Fields ("ChangeDate"). Value
RS. MoveNext
Wend
RS. Close
Set rs = nothing
con. Close
the value con = nothing
This works perfectly and displays 12 rows in this column in a vbscript dialog box, but I am not able to do to extract the XMLType column clob data. I try with for example. RS. Open 'select REPLYDATA.getclobval () from SW_REPLY', stupid but just get errors.
Is it possible to extract data from XMLType on OleDB with vbscript? It cannot be OleDB itself which poses problem, because it has worked in our application and 11.2.0.1 although with < 32 k of data. But it would be nice to have a working test case while we were able to test out our app. If it is with vbscript or c# is irrelevant.
ignore the message, it is possible. Support of Oracle gave me this:
the con value = createobject ("adodb.connection")
con. Open "provider = oraoledb.oracle; user id = finite9; password = password1; data source = DEVTST ".
Set rs = createobject ("adodb.recordset")
RS. Open "select t.REPLYDATA.getclobval () as xmltestdata OF SW_REPLY t", con
While not on the place. EXPRESSIONS OF FOLKLORE
MsgBox rs. Fields ("xmltestdata"). Value
RS. MoveNext
Wend
RS. Close
Set rs = nothing
con. Close
the value con = nothing
but there is a problem when xmldata exceeds a certain size. small starters work well if.
-
Extract data from error HFM, float to Numeric?
Hi all
We extract data from HFM,.
HFM-> SQL-> FILE staging
Our mapping, flow, everything seems fine. When we run this out on the third market errors while extracting data with the following:
com.hyperion.odi.common.ODIHAppException: arithmetic overflow error conversion float type numeric data.
We researched and found to increase the logical length should solve this problem.
Our Source has a length of 16...
We have increased the logical length of target from 16 to 30, and he rest-error. We even tried 50, 100 for the logical length.
We are at Version 10.1.3.6.0.
Any suggestions on how to fix this?
Thank you!
Published by: user10678366 on May 22, 2013 13:28Have you tried changing the scale of all the columns float, right?
It can be a ridiculously large number coming from HFM. So, go to store for your data source in ODI and manually change the data type of column type VARCHAR of size like 100 or more. That would force the ODI to create the staging table with columns of characters for the field. Data will be retrieved anyway. Given that you write it in file, type of character should not matter. In addition, if writing to the file fails for any reason, you can do a max on the staging table and find the value problem in the table (while in HFM, you may not be able to do).
-
Creating rules file to extract data from Interface OIC
Hello.
I'm new on the BEAK, I worked on the DSN earlier method to extract data from the database.
Can someone give me the steps of how extract data from the interface of the OIC.
My database is Oracle 11 g 2 and I use 11.1.2.2 version merger.
Concerning
Mahesh BallaThe format is DBSERVERNAME:PORT / service name
for example ORACLE11G:1521 / ORCLSee you soon
John
http://John-Goodwin.blogspot.com/ -
Extract data from an xml file takes almost an hour to 2.5 M data.
Hello
Any help would be much appreciated. Extract data from an xml file takes almost an hour to 2.5 M. data is there a solution to this.
WITH t AS
(SELECT XMLTYPE (response) pass FROM dual
)
SELECT
b.entity_id,
c.INSTANCE_ID,
d.attribute_id,
d.DATA_TYPE,
d.ATTRIBUTE_VALUE,
d.outcome_style
T,.
XMLTABLE (XMLNamespaces ("http://schemas.xmlsoap.org/soap/envelope/" AS "SOAP-ENV"
'http://oracle.com/determinations/server/10.3/rulebase/assess/types' AS 'type')
, ' SOAP - ENV:Envelope / SOAP - ENV:Body / typ: assess-response/typ: global instance / typ:entity'
PASSAGE t.col
Path of COLUMNS entity_id VARCHAR2 (256) "@id".
path XMLTYPE res_tmp2 'typ:instance') b
xmltable (XMLNamespaces ("http://schemas.xmlsoap.org/soap/envelope/" AS "SOAP-ENV"
'http://oracle.com/determinations/server/10.3/rulebase/assess/types' AS 'type')
, "typ:instance".
PASSAGE b.res_tmp2
Path of COLUMNS instance_id VARCHAR2 (256) "@id".
path XMLTYPE res_tmp3 'typ:attribute') c
xmltable (XMLNamespaces ("http://schemas.xmlsoap.org/soap/envelope/" AS "SOAP-ENV"
'http://oracle.com/determinations/server/10.3/rulebase/assess/types' AS 'type')
, "typ:attribute".
PASSAGE c.res_tmp3
Path of VARCHAR2 (256) COLUMNS attribute_id '@id '.
, data_type VARCHAR2 (256) path '@type '.
, attribute_value VARCHAR2 (256) path '.'
path VARCHAR2 (256) outcome_style '@inferred') d;
Thank you
MhandOK, in this case the best option is to store the answer in a binary table of XMLType (may be a temporary table if you want to) and run the query from there:
CREATE TABLE tmp_xml OF XMLType XMLType STORE AS SECUREFILE BINARY XML -- default storage in your version ;
INSERT INTO tmp_xml VALUES(XMLType(response));
SELECT b.entity_id, c.instance_id, d.attribute_id, d.data_type, d.attribute_value, d.outcome_style FROM tmp_xml t, XMLTABLE( XMLNamespaces('http://schemas.xmlsoap.org/soap/envelope/' AS "SOAP-ENV" , 'http://oracle.com/determinations/server/10.3/rulebase/assess/types' AS "typ") , 'SOAP-ENV:Envelope/SOAP-ENV:Body/typ:assess-response/typ:global-instance/typ:entity' PASSING t.object_value COLUMNS ...
-
extract data from a table to a text file
I need to extract data from a table to a text file, I twist my output is the following...
bash-3. $00 vi tap3roamercosts_20110915144318.txt
lines of 'tap3roamercosts_20110915144318.txt' 393948, 23464348 characters
^ LAFGTD | N | 2011090203000001 | 13242514000064 | 1. 0 | 20. 41220 | 02-SEVEN.-11. 01-SEPT.-11. 0 | 13244
755. 64. 70. 0093794428588 | 0093796234547 | 0 | S2 | E | 412200306902634 | 8. 1. 61500 | 16081 |
| HW | Call to the Roamer. 0 | I have | Roaming billing Inroamer Plan | 1_0_1 | LKA | N_I_Independent
the time of day. Rate of Roamer SMST systems | AFGTD20110902030000010001013242514000064 |
|||||||||||||||||||||
AFGTD | N | 2011090203000001 | 13242612000044 | 1. 0 | 20. 41220 | 02-SEVEN.-11. 01-SEPT.-11. 0 | 13244
853. 44. 70. 234. 0093793252818 | 0 | S2 | E | 412200303198150 | 8. 1. 61000 | 12403 | HW | -Ro
bitter call | 0 | I have | Roaming billing Inroamer Plan | 1_0_1 | N_I_Independent time of Da
There | Rate of Roamer SMST systems | AFGTD20110902030000010001013242612000044 |
||||||||
AFGTD | N | 2011090203000001 | 13242612000047 | 1. 0 | 20. 41220 | 02-SEVEN.-11. 01-SEPT.-11. 0 | 13244
853. 47. 70. 234. 0093793252818 | 0 | S2 | E | 412200303198150 | 8. 1. 61000 | 12403 | HW | -Ro
bitter call | 0 | I have | Roaming billing Inroamer Plan | 1_0_1 | N_I_Independent time of Da
There | Rate of Roamer SMST systems | AFGTD20110902030000010001013242612000047 |
||||||||
.
.
.
.
.
Please help me how to format my output each record in simple lines in oracle sqlplus. Here are the settings I used...
TERMOUT OFF SET;
SET ECHO OFF;
SET LINESIZE 100000;
THE VALUE OF NEWPAGE 0;
SET SPACE 0;
SET PAGESIZE 50000;
SET FEEDBACK OFF;
SET THE OFF POSITION;
SET TRIMSPOOL
SET THE TABAnd what was wrong with the answers that you have on your previous thread?
How to extract data in a text file
Please do not ask the same question again. If there is a problem with the answers provided, then continue on the same thread that tell people what is the problem.
Saying that, this is another possibility for you...
As user sys:
CREATE OR REPLACE DIRECTORY TEST_DIR AS '\tmp\myfiles' / GRANT READ, WRITE ON DIRECTORY TEST_DIR TO myuser /
As myuser:
CREATE OR REPLACE PROCEDURE run_query(p_sql IN VARCHAR2 ,p_dir IN VARCHAR2 ,p_header_file IN VARCHAR2 ,p_data_file IN VARCHAR2 := NULL) IS v_finaltxt VARCHAR2(4000); v_v_val VARCHAR2(4000); v_n_val NUMBER; v_d_val DATE; v_ret NUMBER; c NUMBER; d NUMBER; col_cnt INTEGER; f BOOLEAN; rec_tab DBMS_SQL.DESC_TAB; col_num NUMBER; v_fh UTL_FILE.FILE_TYPE; v_samefile BOOLEAN := (NVL(p_data_file,p_header_file) = p_header_file); BEGIN c := DBMS_SQL.OPEN_CURSOR; DBMS_SQL.PARSE(c, p_sql, DBMS_SQL.NATIVE); d := DBMS_SQL.EXECUTE(c); DBMS_SQL.DESCRIBE_COLUMNS(c, col_cnt, rec_tab); FOR j in 1..col_cnt LOOP CASE rec_tab(j).col_type WHEN 1 THEN DBMS_SQL.DEFINE_COLUMN(c,j,v_v_val,2000); WHEN 2 THEN DBMS_SQL.DEFINE_COLUMN(c,j,v_n_val); WHEN 12 THEN DBMS_SQL.DEFINE_COLUMN(c,j,v_d_val); ELSE DBMS_SQL.DEFINE_COLUMN(c,j,v_v_val,2000); END CASE; END LOOP; -- This part outputs the HEADER v_fh := UTL_FILE.FOPEN(upper(p_dir),p_header_file,'w',32767); FOR j in 1..col_cnt LOOP v_finaltxt := ltrim(v_finaltxt||','||lower(rec_tab(j).col_name),','); END LOOP; -- DBMS_OUTPUT.PUT_LINE(v_finaltxt); UTL_FILE.PUT_LINE(v_fh, v_finaltxt); IF NOT v_samefile THEN UTL_FILE.FCLOSE(v_fh); END IF; -- -- This part outputs the DATA IF NOT v_samefile THEN v_fh := UTL_FILE.FOPEN(upper(p_dir),p_data_file,'w',32767); END IF; LOOP v_ret := DBMS_SQL.FETCH_ROWS(c); EXIT WHEN v_ret = 0; v_finaltxt := NULL; FOR j in 1..col_cnt LOOP CASE rec_tab(j).col_type WHEN 1 THEN DBMS_SQL.COLUMN_VALUE(c,j,v_v_val); v_finaltxt := ltrim(v_finaltxt||',"'||v_v_val||'"',','); WHEN 2 THEN DBMS_SQL.COLUMN_VALUE(c,j,v_n_val); v_finaltxt := ltrim(v_finaltxt||','||v_n_val,','); WHEN 12 THEN DBMS_SQL.COLUMN_VALUE(c,j,v_d_val); v_finaltxt := ltrim(v_finaltxt||','||to_char(v_d_val,'DD/MM/YYYY HH24:MI:SS'),','); ELSE v_finaltxt := ltrim(v_finaltxt||',"'||v_v_val||'"',','); END CASE; END LOOP; -- DBMS_OUTPUT.PUT_LINE(v_finaltxt); UTL_FILE.PUT_LINE(v_fh, v_finaltxt); END LOOP; UTL_FILE.FCLOSE(v_fh); DBMS_SQL.CLOSE_CURSOR(c); END;
This allows the header line and the data to write into files separate if necessary.
for example
SQL> exec run_query('select * from emp','TEST_DIR','output.txt'); PL/SQL procedure successfully completed.
Output.txt file contains:
empno,ename,job,mgr,hiredate,sal,comm,deptno 7369,"SMITH","CLERK",7902,17/12/1980 00:00:00,800,,20 7499,"ALLEN","SALESMAN",7698,20/02/1981 00:00:00,1600,300,30 7521,"WARD","SALESMAN",7698,22/02/1981 00:00:00,1250,500,30 7566,"JONES","MANAGER",7839,02/04/1981 00:00:00,2975,,20 7654,"MARTIN","SALESMAN",7698,28/09/1981 00:00:00,1250,1400,30 7698,"BLAKE","MANAGER",7839,01/05/1981 00:00:00,2850,,30 7782,"CLARK","MANAGER",7839,09/06/1981 00:00:00,2450,,10 7788,"SCOTT","ANALYST",7566,19/04/1987 00:00:00,3000,,20 7839,"KING","PRESIDENT",,17/11/1981 00:00:00,5000,,10 7844,"TURNER","SALESMAN",7698,08/09/1981 00:00:00,1500,0,30 7876,"ADAMS","CLERK",7788,23/05/1987 00:00:00,1100,,20 7900,"JAMES","CLERK",7698,03/12/1981 00:00:00,950,,30 7902,"FORD","ANALYST",7566,03/12/1981 00:00:00,3000,,20 7934,"MILLER","CLERK",7782,23/01/1982 00:00:00,1300,,10
The procedure allows for the header and the data to separate files if necessary. Just by specifying the file name "header" will put the header and the data in a single file.
Adapt to the exit of styles and different types of data are needed.
Maybe you are looking for
-
HP Pavilion dv6000 will not stay
HP Pavilion dv6000 does not load
-
SSD upgrade on Satellite L50 - B - 2 8
Hello I would buy the Satellite L50 - B - 2 8 and replace the hard drive with an SSD.At the moment I think that the samsung 850 evo is a good choice. Unfortunately, I read on some recognition problems hard drive with other models of satellite. It wou
-
Automatic reconnection to a bluetooth device
Hello I have a bluetooth device that communicates using port virtual com. When I reset the unit it disconnects - obviously. However, when the device is live * not reconnect.* I couldn't find an AutoFix * battery Toshiba Bluetooth for Windows v5.10.14
-
After you import an image (.jpeg) file for the Photos on my Mac app, can I safely delete this image file to save space on my hard drive?
-
I have hp officejet pro L7590. the scan is blocked
Hi, my printer is HP officejet Pro L7590 and scan it is stuck, how do I clear that? Thank you