Export query results to a CSV file

Hi,
My requirement is I need to export the results of a query to a CSV file. Can anyone please suggest a way to include the column names also in the CSV file?
Thanks in advance.
Annie

Following code is from asktom. I have modified to include column heading. This will get your desired CSV file for a given query.
create or replace function  dump_csv( p_query     in varchar2,
                                      p_separator in varchar2
                                                    default ',',
                                      p_dir       in varchar2 ,
                                      p_filename  in varchar2 )
return number
AUTHID CURRENT_USER
is
    l_output        utl_file.file_type;
    l_theCursor     integer default dbms_sql.open_cursor;
    l_columnValue   varchar2(2000);
    l_status        integer;
    l_colCnt        number default 0;
    l_separator     varchar2(10) default '';
    l_cnt           number default 0;
     l_colDesc          dbms_sql.DESC_TAB;
begin
    l_output := utl_file.fopen( p_dir, p_filename, 'w' );
    dbms_sql.parse(  l_theCursor,  p_query, dbms_sql.native );
    for i in 1 .. 255 loop
        begin
            dbms_sql.define_column( l_theCursor, i,
                                    l_columnValue, 2000 );
            l_colCnt := i;
        exception
            when others then
                if ( sqlcode = -1007 ) then exit;
                else
                    raise;
                end if;
        end;
    end loop;
    dbms_sql.define_column( l_theCursor, 1, l_columnValue, 2000 );
    l_status := dbms_sql.execute(l_theCursor);
     dbms_sql.describe_columns(l_theCursor,l_colCnt, l_colDesc);
     l_separator := '';
     for lColCnt in 1..l_colCnt
     loop          
            utl_file.put( l_output, l_separator ||  '"' || Upper(l_colDesc(lColCnt).col_name) || '"');
               l_separator := p_separator;
     end loop;
     utl_file.new_line( l_output );
    loop
        exit when ( dbms_sql.fetch_rows(l_theCursor) <= 0 );
        l_separator := '';
        for i in 1 .. l_colCnt loop
            dbms_sql.column_value( l_theCursor, i,
                                   l_columnValue );
            utl_file.put( l_output, l_separator ||  '"' ||
                                    l_columnValue || '"');
            l_separator := p_separator;
        end loop;
        utl_file.new_line( l_output );
        l_cnt := l_cnt+1;
    end loop;
    dbms_sql.close_cursor(l_theCursor);
    utl_file.fclose( l_output );
    return l_cnt;
end dump_csv;The original link is below.
http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:95212348059
Thanks,
Karthick.

Similar Messages

  • Exporting query result set into CSV file using Forms

    Hi ,
    My requirement is
    -> I need to create a form where I have a Multi line text box and two button.
    -> When I enter a query in text box and click on Execute button, It should execute a select query.
    -> After execution, Result set needs to be exported into an Excel file.
    Please give a hint how to do this????
    Thanks,
    maddy

    as you are using text item to write SQL query by the user
    so for that you need to use the exec_sql package to parse the text items query and get definitions and values of the columns being
    resulted in the result set of the query.
    once your query is execute to the desired connection then you need to use fetch the result to the CSV file by use of the TEXT_io package
    which will open the text file with .csv extension and you have to pass the each line to that text file with comma separated values as "ss","rr" etc.
    or you can use the ole2 package to call the excel application and then fetch the data of exe_sql query to that.

  • Exporting query results into a csv file using arabic and hebrew chars

    Hi,
    iv'e encountered a problem, using plsql to export a query into a csv file.. the arabic turns into question mark. Do you have any idea why?

    Usually this indicates a mismatch between client and database character set.
    How do you export this query?
    What is your database version?
    What is your client OS?
    T.

  • Select Query Results to a .csv file????

    Hello All,
    I have a question in Oracle, if anyone knows how to do this. Please help me.
    How can I get the results of select query in Oracle loaded into a Excel file (.csv) file.
    Thanks in Advance,
    Sarada.

    Hi Sarada,
    as a csv is nothing more than a list of Comma Separated Values your best shot is to simply read do this with your values. read each value in an iteration add them to a string / stringbuffer and add a "," between them. When you read then next line in the ResultSet you just add a carriage return to the end. Depending on what format you want your csv list in.
    After you written all of this into a String you write this out to a file (unless you want to do it slower and write them line by line whenever you read them).
    Hope this helps,
    Kalle

  • Export query result to csv using Export Wizard

    Been a decade since I last used Oracle and related tools.
    I had to use Oracle server again, I have a query over multiple tables, I am to run a scheduled script that will spit out the query result as a csv file.
    I started with SQL Developer Export wizard, in step "Specify Data", I am at a loss, where to specify the query itself? I see a Name,Schema,Type input, a text area below, Up,UpAll,Down,DownAll buttons etc etc. Where do I specify my query here? Can someone please help?
    Is this the best way to go about to schedule a data export (query to csv) daily?

    To export a user query rather than a whole table, run it in a worksheet and export using the context menu on the result grid. However none can be scheduled.
    Instead you can look at the SPOOL command and schedule it through SQL*Plus. Any questions can go to the iSQL*Plus and/or SQL And PL/SQL forum.
    Have fun,
    K.

  • How to export query results

    How can I export query results from sqlplus on the command line? Are there ways to specify the format such as CSV, TAB, XML, etc?
    I've seen one approach that involves creating a shell script and piping the output to a file:
    #!/bin/sh
    sqlplus user/password <<__EOF__
    set heading off;
    set newpage none;
    select f1, ',', f2, ',', f3 from some_table;
    __EOF__
    Then pipe the output to a file. Is there a simpler solution to this?

    http://asktom.oracle.com/pls/ask/f?p=4950:8:::::F4950_P8_DISPLAYID:235814350980

  • Exporting Query Result to OpenOffice

    Hello,
    We would like to export Query Result from Web Application to a file which could be opened in OpenOffice.
    Exporting data in XLS format doesn't work because XLS file is created with MS VML Markup with couln't be read by OpenOffice.
    Does someone already deals with this kind of issue ?
    How do you overcome this problem ?
    Thanks in advance for your answer
    Laurent

    Hi Laurent,
    Can you try saving the file in .csv.
    ad try opening it in openoffice.
    Hope this helps
    PV

  • How to call a SP with dynamic columns and output results into a .csv file via SSIS

    hi Folks, I have a challenging question here. I've created a SP called dbo.ResultsWithDynamicColumns and take one parameter of CONVERT(DATE,GETDATE()), the uniqueness of this SP is that the result does not have fixed columns as it's based on sales from previous
    days. For example, Previous day, customers have purchased 20 products but today , 30 products have been purchased.
    Right now, on SSMS, I am able to execute this SP when supplying  a parameter.  What I want to achieve here is to automate this process and send the result as a .csv file and SFTP to a server. 
    SFTP part is kinda easy as I can call WinSCP with proper script to handle it.  How to export the result of a dynamic SP to a .CSV file? 
    I've tried
    EXEC xp_cmdshell ' BCP " EXEC xxxx.[dbo].[ResultsWithDynamicColumns ]  @dateFrom = ''2014-01-21''"   queryout  "c:\path\xxxx.dat" -T -c'
    SSMS gives the following error as Error = [Microsoft][SQL Server Native Client 10.0]BCP host-files must contain at least one column
    any ideas?
    thanks
    Hui
    --Currently using Reporting Service 2000; Visual Studio .NET 2003; Visual Source Safe SSIS 2008 SSAS 2008, SVN --

    Hey Jakub, thanks and I did see the #temp table issue in our 2008R2.  I finally figured it out in a different way... I manage to modify this dynamic SP to output results into
    a physical table. This table will be dropped and recreated everytime when SP gets executed... After that, I used a SSIS pkg to output this table
    to a file destination which is .csv.  
     The downside is that if this table structure ever gets changed, this SSIS pkg will fail or not fully reflecting the whole table. However, this won't happen often
    and I can live with that at this moment. 
    Thanks
    --Currently using Reporting Service 2000; Visual Studio .NET 2003; Visual Source Safe SSIS 2008 SSAS 2008, SVN --

  • Export query results to excel from forms

    Are there any ways to export query results to MS Excel format files from a form.
    Thanks.

    Here's my working code out of one of my forms that does this:
    PROCEDURE export_transactions_to_excel IS
    -- Declare the ole objects
    application ole2.obj_type;
    workbooks ole2.obj_type;
    workbook ole2.obj_type;
    worksheets ole2.obj_Type;
    worksheet ole2.obj_type;
    cell ole2.obj_type;
    -- my variables
    rowCounter Number := 1;
    local_cursor_Record number := :System.Cursor_Record;
    old_cursor_Style varchar2(100);
    errors_occurred boolean := false;
    Ole_Error Exception;
    pragma exception_init( Ole_Error, -305500 );
    my_alert_id ALERT;
    alert_response NUMBER;
    procedure place_value_in_cell( rownum_in in number
    , colnum_in in number
    , value_in in varchar2 )
    is
    -- Declare handles to OLE argument lists
    args ole2.list_Type;
    begin
    args := ole2.create_arglist;
    ole2.add_arg(args, rownum_in); /* row number */
    ole2.add_arg(args, colnum_in); /* column number */
    -- the next line is for excel97
    -- cell := ole2.invoke_obj( worksheet, 'Cells', args );
    cell := ole2.get_obj_property( worksheet, 'Cells', args );
    ole2.Destroy_arglist( args );
    ole2.set_property( cell, 'Value', value_in );
    ole2.release_obj (cell);
    end place_value_in_cell;
    procedure SaveSpreadsheet
    is
    args ole2.List_Type;
    vDateStamp varchar2(20);
    begin
    vDateStamp := to_char(sysdate,'mmddyyyy') &#0124; &#0124; '_' &#0124; &#0124; to_char(sysdate,'hh24miss');
    args := OLE2.CREATE_ARGLIST;
    OLE2.ADD_ARG(args, 'C:\PAPRETCC_' &#0124; &#0124; vDateStamp &#0124; &#0124; '.XLS');
    OLE2.INVOKE(worksheet, 'SaveAs', args);
    OLE2.DESTROY_ARGLIST(args);
    --args := Ole2.Create_ARgList;
    ole2.invoke( application, 'Quit' );
    end SaveSpreadSheet;
    procedure Open_EXCEL_Workbook is
    Begin
    application := ole2.create_obj('Excel.Application');
    --ole2.set_property( application, 'Visible', 'True' );
    -- Return object handle to the Workbooks collection
    workbooks := ole2.get_obj_property( application, 'Workbooks' ); -- invoke_obj w/ excel 97
    -- Add a new Workbook object to the Workbooks collection
    workbook := ole2.invoke_obj( workbooks, 'Add' );
    -- return object handle to the Worksheets collection for the
    -- Workbook
    worksheets := ole2.get_obj_property( workbook, 'Worksheets' ); -- invoke_obj w/ Excel97
    -- Add a new Worksheet to the Worksheets collection
    worksheet := ole2.invoke_obj( worksheets, 'Add');
    end open_EXCEL_workbook;
    PROCEDURE Write_Column_Headers IS
    BEGIN
    place_value_in_cell(rowCounter,1, 'Payer Name');
    place_Value_in_cell(rowCounter,2, 'Payer Address');
    place_value_in_cell(rowCounter,3, 'SSN');
    place_value_in_cell(rowCounter,4, 'Account');
    place_value_in_cell(rowCounter,5, 'Refund Receipt');
    place_value_in_cell(rowCounter,6, 'Pretax Allocation');
    place_value_in_cell(rowCounter,7, 'Tax Allocation');
    place_value_in_cell(rowCounter,8, 'Total Amount');
    place_value_in_cell(rowCounter,9, 'Orig Receipt');
    place_value_in_cell(rowCounter,10,'Orig Date');
    place_value_in_cell(rowCounter,11,'TR Number');
    place_value_in_Cell(rowCounter,12,'Date');
    place_Value_in_cell(rowCounter,13,'Status');
    place_value_in_cell(rowCounter,14,'Vt Number');
    rowCounter := rowCounter + 1;
    END Write_Column_Headers;
    PROCEDURE Export_The_Data IS
    original_receipt number;
    original_date DATE;
    original_transmittal_number number;
    BEGIN
    -- Return object handle to cell A1 on the Worksheet
    Go_block('Transactions');
    First_Record;
    LOOP
    IF alert_response = ALERT_BUTTON2 or
    (alert_response = ALERT_BUTTON1 and nvl(:transactions.rg_approval,'N') <> 'N' )
    -- :system.record_status = 'CHANGED')
    then
    place_value_in_cell( rowCounter, 1, :TRANSACTIONS.NDB_PAYEE_NAME );
    place_value_in_cell( rowCounter, 2, nvl(:TRANSACTIONS.NDB_PAYEE_ADDRESS,'unknown') );
    place_value_in_cell( rowCounter, 3, nvl(:TRANSACTIONS.NDB_SSN,'unknown') );
    place_value_in_cell( rowCounter, 4, :transactions.NDB_DESCRIPTION );
    place_value_in_cell( rowCounter, 5, to_char(:Transactions.transaction_group_EID) );
    place_Value_in_cell( rowCounter, 6, to_char(:transactions.ndb_pretax_amount) ); -- chg
    place_ value_in_Cell( rowCounter, 7, to_char(:transactions.ndb_tax_amount) );
    place_value_in_cell( rowCounter, 8, to_char(:transactions.amount_including_taxes) );
    original_receipt := revenue_pkg.original_receipt_number(
    :transactions.transaction_group_eid,
    :transactions.allocation_eid,
    :transactions.allocation_table );
    original_date := revenue_pkg.original_receipt_date(
    :transactions.transaction_group_eid,
    :transactions.allocation_eid,
    :transactions.allocation_table );
    original_transmittal_number := revenue_pkg.transmittal_number_for_receipt(original_receipt);
    place_value_in_cell( rowCounter, 9, nvl(to_char(original_receipt),'unknown') );
    place_value_in_cell( rowCounter, 10, nvl(to_char(original_date,'mm/dd/yyyy hh24:mi:ss'),'unknown') );
    place_value_in_cell( rowCounter, 11, nvl(to_char(original_transmittal_number),'unknown') );
    -- COMPTROLLER COLUMNS
    IF ( alert_response = ALERT_BUTTON1 and nvl(:transactions.rg_approval,'N') <> 'N' )
    THEN
    place_value_in_cell( rowCounter, 12, to_Char(sysdate,'mm/dd/yyyy') );
    place_value_in_cell( rowCounter, 13, nvl(:transactions.rg_approval,'N') );
    place_value_in_cell( rowCounter, 14, nvl(to_char(:location.vt_number),'NULL') );
    END IF;
    End If;
    exit when :SYSTEM.LAST_RECORD = 'TRUE';
    NEXT_RECORD;
    rowCounter := rowCounter + 1;
    END LOOP;
    END Export_The_Data;
    /* ----------------------------------- main procedure --------------------------------------*/
    BEGIN
    Begin
    my_alert_id := Find_Alert('THREE_BUTTON_ALERT');
    IF NOT ID_NULL( my_alert_id ) then
    alert_Response := SHOW_ALERT( my_alert_id );
    If (alert_response = ALERT_BUTTON1) OR
    (alert_response = ALERT_BUTTON2) then
    old_Cursor_style := get_application_property( CURSOR_STYLE );
    set_application_property( CURSOR_STYLE, 'BUSY' );
    Open_EXCEL_WorkBook;
    Write_Column_Headers;
    Export_The_Data;
    Else
    Raise Form_Trigger_Failure;
    End If;
    Else
    Raise Form_Trigger_Failure;
    End If;
    exception
    when Form_Trigger_Failure then
    RAISE;
    when Ole_Error then
    AlertSend( 'There was an error exporting the data to Microsoft Excel (receipt# ' &#0124; &#0124;
    to_Char(:transactions.transaction_Group_eid) &#0124; &#0124; ')', false );
    errors_occurred := TRUE;
    when others then
    AlertSend( SQLERRM, false );
    errors_occurred := TRUE;
    End;
    Ideally, I'd like to call SaveSpreadsheet in Export_The_Data, and just ExitExcel here,
    but it prompts for whether to save the changes and I don't know how to get around that
    right now. SO, we just save and exit, regardless.
    SaveSpreadSheet;
    -- Release the OLE objects
    ole2.release_obj (worksheet);
    ole2.release_obj (worksheets);
    ole2.release_obj (workbook);
    ole2.release_obj (workbooks);
    ole2.release_obj (application);
    IF NOT errors_occurred then -- stay on the record that caused the error
    Go_Record( local_cursor_Record );
    End If;
    Set_Application_Property ( CURSOR_STYLE, old_cursor_style );
    EXCEPTION
    When Form_Trigger_Failure then
    null;
    When Others then
    AlertSend( SQLERRM );
    END export_transactions_to_excel;

  • How do i export my contacts into a csv file?

    I need to export my contacts into a csv file - Apple support says it can't be done.  Any suggestions anyone please?

    or -> http://lmgtfy.com/?q=Mac+OS+export+contacts+to+CSV

  • How to Compare 2 CSV file and store the result to 3rd csv file using PowerShell script?

    I want to do the below task using powershell script only.
    I have 2 csv files and I want to compare those two files and I want to store the comparision result to 3rd csv file. Please look at the follwingsnap:
    This image is csv file only. 
    Could you please any one help me.
    Thanks in advance.
    By
    A Path finder 
    JoSwa
    If a post answers your question, please click &quot;Mark As Answer&quot; on that post and &quot;Mark as Helpful&quot;
    Best Online Journal

    Not certain this is what you're after, but this :
    #import the contents of both csv files
    $dbexcel=import-csv c:\dbexcel.csv
    $liveexcel=import-csv C:\liveexcel.csv
    #prepare the output csv and create the headers
    $outputexcel="c:\outputexcel.csv"
    $outputline="Name,Connection Status,Version,DbExcel,LiveExcel"
    $outputline | out-file $outputexcel
    #Loop through each record based on the number of records (assuming equal number in both files)
    for ($i=0; $i -le $dbexcel.Length-1;$i++)
    # Assign the yes / null values to equal the word equivalent
    if ($dbexcel.isavail[$i] -eq "yes") {$dbavail="Available"} else {$dbavail="Unavailable"}
    if ($liveexcel.isavail[$i] -eq "yes") {$liveavail="Available"} else {$liveavail="Unavailable"}
    #create the live of csv content from the two input csv files
    $outputline=$dbexcel.name[$i] + "," + $liveexcel.'connection status'[$i] + "," + $dbexcel.version[$i] + "," + $dbavail + "," + $liveavail
    #output that line to the csv file
    $outputline | out-file $outputexcel -Append
    should do what you're looking for, or give you enough to edit it to your exact need.
    I've assumed that the dbexcel.csv and liveexcel.csv files live in the root of c:\ for this, that they include the header information, and that the outputexcel.csv file will be saved to the same place (including headers).

  • How to output a query results into a text file

    How to output a query results into a text file instead of outputing it to the screen..
    is there a way for us to write a SQL query which specifies to output the query results to a text file.
    Pls let me know how to do it
    Thanking u in advance
    regards
    Muraly

    Muraly,
    If you are using SQL*Plus 8.1.6 or later, you can also spool output to a file in HTML format, eg
    SET MARKUP HTML ON SPOOL ON PREFORMAT OFF ENTMAP ON
    SPOOL c:\temp\report.html
    SELECT DEPARTMENT_NAME, CITY
    FROM EMP_DETAILS_VIEW
    WHERE SALARY>12000;
    SPOOL OFF
    SET MARKUP HTML ENTMAP OFF
    In iSQL*Plus 9.0.1 (the browser-based interface to SQL*Plus) onwards, you can also send the HTML output to a new web browser window, or an html file -- much easier than the command line method.
    Alison

  • Exporting table data to a CSV file

    hello everyone,
    i need help on exporting table data to a CSV file.
    I have a div element containing the table which displays some data.
    there is a "Export" button just above the table, which if clicked, will export the current data in the table to a .csv file.
    can this be done in jsp? or i need to use servlet?
    also how can i submit the table data only? (as my webpage contiain other data also)
    can anyone provide with some sort of sample code?
    thanks in advance!!

    oops!!
    i just forgot..
    when the user will click on the export button, i want to greet him with a "Save As"
    popup, so that he can specify the filename and location to save the file.
    thanks!!

  • Display the query result in an Excel file??

    hi there..
    am writing one script file that queries my DB and display the query result in an Excel file??
    i.e: if my query is :
    select col1, col2
    from table;
    and i want the results to dispalys in 2 col. in an Excel spreadsheet..
    Appreaciating ur cooperation..
    Mourad

    set colsep to a delimiter that is not normally part of your data like |
    also setup the environment with these other setup commands
    Set Echo Off;
    Set Concat Off;
    Set Pagesize 9999;
    Set Feedback Off;
    Set Verify Off;
    Set Term Off;
    Set Space 0;
    Set Colsep '|'
    Set Underline Off;
    If you wanted to use a comma delimiter the setup would be same but the set colsep='","'
    with the addition of concatenating a " on the first col and last col of the query
    eg.
    -- if first col and last_col are character types then
    SELECT '"'||col1,....,last_col||'"'
    FROM table;
    Otherwise if either is a number they would have to be converted with a TO_CHAR

  • Export query results into .csv file?

    Hello I have a T-SQL script that gets row counts for a specified date range and then needs to loop (by incrementing +1 day to get the next day's counts) for a large date range.  I'm aiming to output & append each query results day counts
    into a .csv file via a SQL Agent job since this will take quite a while to complete.
    Would using the following as an example template...
    INSERT INTO OPENROWSET('Microsoft.ACE.OLEDB.12.0','Text;Database=D:\;HDR=YES;FMT=Delimited','SELECT * FROM [FileName.csv]')
    SELECT Field1, Field2, Field3
    FROM DatabaseName
    ...be the method or something else?
    If this is good to use I've tried running this but get the following error:
    Msg 7357, Level 16, State 2, Line 76
    Cannot process the object "SELECT * FROM [FileName.csv]". The OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)" indicates that either the object has no columns or the current user does not have permissions
    on that object.
    Thanks in advance.

    Hi Techresearch7777777,
    The error in your post says that the file FileName.csv has to be created with the column names in the first row. Like:
    Field1,Field2,Field3
    Either you can create a schema.ini file under the same folder:
     [FileName.csv]
     Format=CSVDelimited
     ColNameHeader=False
     Col1=Field1 [DataType]
     Col2=Field2 [DataType]
     Col3=Field3 [DataType]
    For the [DataType],you can reference
    Schema.ini File (Text File Driver)
    If you have any question, feel free to let me know.
    Eric Zhang
    TechNet Community Support

Maybe you are looking for