Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Re: how to dump data from oracle table to a flat file

Re: how to dump data from oracle table to a flat file

From: BvN <van_niekerk_bernard_at_hotmail.com>
Date: 2000/08/11
Message-ID: <8mvcq9$l4a$1@news7.svr.pol.co.uk>#1/1

Hi

I wrote this script in about 15 mins and got it working once!!! Used it on a table that was 56 columns wide and +/-1000000 rows deep. Don't know if this is even the right version, but it was something along this lines.. It worked all right. If you can figure out what it does and how it works you can have it.
------------------------------------GrabBuilder-----------------------------


set echo off
prompt -- Remember to execute the output from this script to capture the data
prompt -- from the chosen database. The result from this result will then generate
prompt -- the SQL*Loader file that can be used. prompt -- Ensure that your Screen Buffer Width in the Enviroment setting is BIG.(1000) ACCEPT TABLENAME CHAR PROMPT 'What is the TABLENAME = ' ACCEPT WHERECLAUSE CHAR PROMPT 'What is the WHERE clause (enter->NULL) = '

set verify off
set termout off
set feedback off
set linesize 1000
set pagesize 0
set heading off
spool grab_&&TABLENAME..sql

prompt -- Grab_TABLENAME.sql
prompt -- This file is built from the SQL Script GrabBuilder.
prompt -- It will grabs all the stuff from a table as layed out in the
GrabBuilder script,
prompt -- to a file that can be used to import , with SQL*Loader, prompt set linesize 1000
prompt set pagesize 0
prompt set heading off
prompt set verify off
prompt set echo off
prompt set feedback off
prompt set termout off
prompt spool data_&&TABLENAME..txt
prompt
prompt prompt LOAD DATA
prompt prompt INFILE *
prompt prompt APPEND INTO TABLE &&TABLENAME prompt prompt FIELDS TERMINATED BY '|'
prompt prompt (
--All but last column

prompt select a.COLUMN_NAME||','
prompt from ALL_TAB_COLUMNS a
prompt where a.TABLE_NAME = UPPER('&&TABLENAME') prompt and a.COLUMN_ID < (select MAX(COLUMN_ID) from ALL_TAB_COLUMNS where TABLE_NAME = UPPER('&&TABLENAME'))
prompt and a.DATA_TYPE <> 'DATE'
prompt order by a.COLUMN_ID ;;
--Dates

prompt select a.COLUMN_NAME|| ' DATE(10) "dd-mm-yyyy",' prompt from ALL_TAB_COLUMNS a
prompt where a.TABLE_NAME = UPPER('&&TABLENAME') prompt and a.COLUMN_ID < (select MAX(COLUMN_ID) from ALL_TAB_COLUMNS where TABLE_NAME = UPPER('&&TABLENAME'))
prompt and a.DATA_TYPE = 'DATE'
prompt order by a.COLUMN_ID ;;
--Last column

prompt select b.COLUMN_NAME
prompt from ALL_TAB_COLUMNS b
prompt where b.TABLE_NAME = UPPER('&&TABLENAME') prompt and b.COLUMN_ID = (select MAX(COLUMN_ID) from ALL_TAB_COLUMNS where TABLE_NAME = UPPER('&&TABLENAME'))
prompt and b.DATA_TYPE <> 'DATE';;
--Dates

prompt select b.COLUMN_NAME ||' DATE(10) "dd-mm-yyyy"' prompt from ALL_TAB_COLUMNS b
prompt where b.TABLE_NAME = UPPER('&&TABLENAME') prompt and b.COLUMN_ID = (select MAX(COLUMN_ID) from ALL_TAB_COLUMNS where TABLE_NAME = UPPER('&&TABLENAME'))
prompt and b.DATA_TYPE = 'DATE';;
prompt prompt )
prompt prompt BEGINDATA
prompt select
-- All but last column

select a.COLUMN_NAME||'||''|''||'
from ALL_TAB_COLUMNS a
where a.TABLE_NAME = UPPER('&&TABLENAME')   and a.COLUMN_ID < (select MAX(COLUMN_ID) from ALL_TAB_COLUMNS where TABLE_NAME = UPPER('&&TABLENAME'))
  and a.DATA_TYPE <> 'DATE'
order by a.COLUMN_ID;
--Dates

select 'TO_CHAR('||a.COLUMN_NAME||',''dd-mm-yyyy'')'||'||''|''||' from ALL_TAB_COLUMNS a
where a.TABLE_NAME = UPPER('&&TABLENAME')   and a.COLUMN_ID < (select MAX(COLUMN_ID) from ALL_TAB_COLUMNS where TABLE_NAME = UPPER('&&TABLENAME'))
  and a.DATA_TYPE = 'DATE'
order by a.COLUMN_ID;
-- Last column

select a.COLUMN_NAME||'||''|'''
from ALL_TAB_COLUMNS a
where a.TABLE_NAME = UPPER('&&TABLENAME')   and a.COLUMN_ID = (select MAX(COLUMN_ID) from ALL_TAB_COLUMNS where TABLE_NAME = UPPER('&&TABLENAME'))
  and a.DATA_TYPE <> 'DATE';
-- Dates

select 'TO_CHAR('||a.COLUMN_NAME||',''dd-mm-yyyy'')'||'||''|''' from ALL_TAB_COLUMNS a
where a.TABLE_NAME = UPPER('&&TABLENAME')   and a.COLUMN_ID = (select MAX(COLUMN_ID) from ALL_TAB_COLUMNS where TABLE_NAME = UPPER('&&TABLENAME'))
  and a.DATA_TYPE = 'DATE';
prompt from &&TABLENAME
prompt &&WHERECLAUSE;;
prompt spool off
prompt set linesize 200
prompt set pagesize 0
prompt set heading on
prompt set verify on
prompt set echo on
prompt set feedback on
prompt set termout on
spool off
set linesize 200
set pagesize 0
set heading on
set verify on
set feedback on
set termout on
set echo on
prompt Grab_&&TABLENAME..sql has been build prompt Execute it to build SQL*Loader Received on Fri Aug 11 2000 - 00:00:00 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US