Re: Bulk data loading

2006-09-08 Thread Aaron Rouse
Maybe I have been lucky but I have found sql loader to be an incredibly easy
tool to use for this need.

On 9/6/06, Douglas Knudsen [EMAIL PROTECTED] wrote:

 yes.  You can even do this
 1) have user upload cvs file
 2) use sqlloader called via cfexecute to load the data into the DB

 This will require installing the oracle client on the server and some
 patience :)

 DK




~|
Introducing the Fusion Authority Quarterly Update. 80 pages of hard-hitting,
up-to-date ColdFusion information by your peers, delivered to your door four 
times a year.
http://www.fusionauthority.com/quarterly

Archive: 
http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:252645
Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4


RE: Bulk data loading

2006-09-06 Thread Ray Champagne
This is something that the database should do, not CF.  Not being an Oracle
guy, I can't tell you what that is, but it has been discussed here recently.
(Hint. :) )

Anyways, you're looking for whatever Oracle's equivalent is to MSSQL's DTS.

That should at least get you on the right track.

Ray

 -Original Message-
 From: Chris Tilley [mailto:[EMAIL PROTECTED]
 Sent: Wednesday, September 06, 2006 2:20 PM
 To: CF-Talk
 Subject: Bulk data loading
 
 Does anyone have a tested method of uploading bulk data to a database?  I
 have a need (annually) for the admin person to be able to take data from
an
 Excel spreadsheet and have it inserted into an Oracle database.  Any
sample
 code would be greatly appreciated.  I've played with a CFC that makes Java
 calls but without success.
 
 Thanks in advance,
 
 --
 Chris Tilley
 
 
 

~|
Introducing the Fusion Authority Quarterly Update. 80 pages of hard-hitting,
up-to-date ColdFusion information by your peers, delivered to your door four 
times a year.
http://www.fusionauthority.com/quarterly

Archive: 
http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:252247
Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm
Unsubscribe: 
http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4


Re: Bulk data loading

2006-09-06 Thread Claude Schneegans
 Does anyone have a tested method of uploading bulk data to a database?

Just set a datasource using the Microsoft Excel ODBC driver and query in 
the data.

-- 
___
REUSE CODE! Use custom tags;
See http://www.contentbox.com/claude/customtags/tagstore.cfm
(Please send any spam to this address: [EMAIL PROTECTED])
Thanks.


~|
Introducing the Fusion Authority Quarterly Update. 80 pages of hard-hitting,
up-to-date ColdFusion information by your peers, delivered to your door four 
times a year.
http://www.fusionauthority.com/quarterly

Archive: 
http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:252248
Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm
Unsubscribe: 
http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4


Re: Bulk data loading

2006-09-06 Thread Matt Robertson
You're talking about a CSV right?  What amounts to a simple list, but
with zillions of rows?

The trick I found to getting this done (which the good folks here
helped with enormously) is to use java to read each line incrementally
rather than having cffile try to scarf down the whole file into
memory.

I don't have code handy right this second (I can get hold of it when I
get back home tonight) but basically once you read in a single line
you just use list processing to feed the individual fields into an
insert statement.  I actually used listToArray() and then array
notation in my code, to keep from having to use listGetAt() or
somesuch on every spot on my insert.  Was easier for me as well if I
wanted to manipulate the field prior to saving as well.


On 9/6/06, Chris Tilley [EMAIL PROTECTED] wrote:
 Does anyone have a tested method of uploading bulk data to a database?  I
 have a need (annually) for the admin person to be able to take data from an
 Excel spreadsheet and have it inserted into an Oracle database.  Any sample
 code would be greatly appreciated.  I've played with a CFC that makes Java
 calls but without success.

 Thanks in advance,

 --
 Chris Tilley


 

~|
Introducing the Fusion Authority Quarterly Update. 80 pages of hard-hitting,
up-to-date ColdFusion information by your peers, delivered to your door four 
times a year.
http://www.fusionauthority.com/quarterly

Archive: 
http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:252249
Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm
Unsubscribe: 
http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4


RE: Bulk data loading

2006-09-06 Thread Ray Champagne
Well, yea, I guess, depending on the size of this spreadsheet, this would
work just as well.

Chris, how large is this Excel sheet?

 -Original Message-
 From: Claude Schneegans [mailto:[EMAIL PROTECTED]
 Sent: Wednesday, September 06, 2006 2:31 PM
 To: CF-Talk
 Subject: Re: Bulk data loading
 
  Does anyone have a tested method of uploading bulk data to a database?
 
 Just set a datasource using the Microsoft Excel ODBC driver and query in
 the data.
 
 --
 ___
 REUSE CODE! Use custom tags;
 See http://www.contentbox.com/claude/customtags/tagstore.cfm
 (Please send any spam to this address: [EMAIL PROTECTED])
 Thanks.
 
 
 

~|
Introducing the Fusion Authority Quarterly Update. 80 pages of hard-hitting,
up-to-date ColdFusion information by your peers, delivered to your door four 
times a year.
http://www.fusionauthority.com/quarterly

Archive: 
http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:252250
Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm
Unsubscribe: 
http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4


Re: Bulk data loading

2006-09-06 Thread Rick Root
Matt Robertson wrote:
 You're talking about a CSV right?  What amounts to a simple list, but
 with zillions of rows?
 
 The trick I found to getting this done (which the good folks here
 helped with enormously) is to use java to read each line incrementally
 rather than having cffile try to scarf down the whole file into
 memory.
 
 I don't have code handy right this second (I can get hold of it when I

I blogged the method at www.opensourcecf.com =)

Rick

~|
Introducing the Fusion Authority Quarterly Update. 80 pages of hard-hitting,
up-to-date ColdFusion information by your peers, delivered to your door four 
times a year.
http://www.fusionauthority.com/quarterly

Archive: 
http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:252251
Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4


Re: Bulk data loading

2006-09-06 Thread Rick Root
Rick Root wrote:
 I blogged the method at www.opensourcecf.com =)

specifically...

http://www.opensourcecf.com/1/2006/07/Reading-large-files-with-java-versus-CFFILE.cfm

~|
Introducing the Fusion Authority Quarterly Update. 80 pages of hard-hitting,
up-to-date ColdFusion information by your peers, delivered to your door four 
times a year.
http://www.fusionauthority.com/quarterly

Archive: 
http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:252252
Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm
Unsubscribe: 
http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4


Re: Bulk data loading

2006-09-06 Thread Craig Drabik
Does anyone have a tested method of uploading bulk data to a database?  I
have a need (annually) for the admin person to be able to take data from an
Excel spreadsheet and have it inserted into an Oracle database.  Any sample
code would be greatly appreciated.  I've played with a CFC that makes Java
calls but without success.

Thanks in advance,

-- 
Chris Tilley

With Oracle, 9i or newer your best bet is to set up an externally organized 
table.  It's basically stored SQL loader which allows you to access an external 
text file as you would any read-only oracle table via SQL.  You would export 
your Excel data into csv format, then set up the EOT to point to that file.  
You can then overwrite that file at any time with new data.  Here's an example 
of the PL/SQL to create one of these.  Most of it will be cut and paste - 
you'll need to create a directory in Oracle (pointer to the filesystem 
directory you will put the CSV in) and fill it in for MYDATA_DIR



CREATE TABLE EXT_ACCOUNT_BALANCE
(
  ACCOUNTVARCHAR2(20 BYTE),
  BEGIN_BAL  NUMBER
)
ORGANIZATION EXTERNAL
  (  TYPE ORACLE_LOADER
 DEFAULT DIRECTORY MYDATA_DIR
 ACCESS PARAMETERS 
   ( RECORDS DELIMITED BY 0x'0a' CHARACTERSET WE8ISO8859P9
LOGFILE 'beginbalance.log'
BADFILE 'beginbalance.bad'
READSIZE 1048576
FIELDS TERMINATED BY , 
OPTIONALLY ENCLOSED BY ''
LDRTRIM
REJECT ROWS WITH ALL NULL FIELDS
(
account 
CHAR(255) TERMINATED BY , OPTIONALLY ENCLOSED BY '',
begin_bal 
CHAR(255) TERMINATED BY , OPTIONALLY ENCLOSED BY ''
)
   )
 LOCATION (MYDATA_DIR:'beginbalance.csv')
  )
;


~|
Introducing the Fusion Authority Quarterly Update. 80 pages of hard-hitting,
up-to-date ColdFusion information by your peers, delivered to your door four 
times a year.
http://www.fusionauthority.com/quarterly

Archive: 
http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:252253
Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4


Re: Bulk data loading

2006-09-06 Thread Chris Tilley
Ray,

Approx. 145kb, 1000 rows with 16 columns

Matt,

I'd love to see your sample code, if you don't mind sharing?

Chris


On 9/6/06, Ray Champagne [EMAIL PROTECTED] wrote:

 Well, yea, I guess, depending on the size of this spreadsheet, this would
 work just as well.

 Chris, how large is this Excel sheet?

  -Original Message-
  From: Claude Schneegans [mailto:[EMAIL PROTECTED]
  Sent: Wednesday, September 06, 2006 2:31 PM
  To: CF-Talk
  Subject: Re: Bulk data loading
 
   Does anyone have a tested method of uploading bulk data to a
 database?
 
  Just set a datasource using the Microsoft Excel ODBC driver and query in
  the data.
 
  --
  ___
  REUSE CODE! Use custom tags;
  See http://www.contentbox.com/claude/customtags/tagstore.cfm
  (Please send any spam to this address: [EMAIL PROTECTED])
  Thanks.
 
 
 

 

~|
Introducing the Fusion Authority Quarterly Update. 80 pages of hard-hitting,
up-to-date ColdFusion information by your peers, delivered to your door four 
times a year.
http://www.fusionauthority.com/quarterly

Archive: 
http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:252254
Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm
Unsubscribe: 
http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4


Re: Bulk data loading

2006-09-06 Thread Joseph Lamoree
On 6 Sep 2006, at 11:19, Chris Tilley wrote:

 Does anyone have a tested method of uploading bulk data to a  
 database?  I
 have a need (annually) for the admin person to be able to take data  
 from an
 Excel spreadsheet and have it inserted into an Oracle database.   
 Any sample
 code would be greatly appreciated.  I've played with a CFC that  
 makes Java
 calls but without success.

You'll probably get the best performance using the Oracle SQL*Plus  
tools, specifically SQL*Loader:
http://www.orafaq.com/faq/sql_loader

--
Joseph Lamoree



~|
Introducing the Fusion Authority Quarterly Update. 80 pages of hard-hitting,
up-to-date ColdFusion information by your peers, delivered to your door four 
times a year.
http://www.fusionauthority.com/quarterly

Archive: 
http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:252257
Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4


Re: Bulk data loading

2006-09-06 Thread Chris Tilley
I've tried it but getting an error message:
12:52:15.015 - Expression Exception - in
D:\Inetpub\cf\WorkingCapitalFund\FileReader.cfc : line 65

Variable RETURNSTRING is undefined.

Any ideas why?


On 9/6/06, Rick Root [EMAIL PROTECTED] wrote:

 Rick Root wrote:
  I blogged the method at www.opensourcecf.com =)

 specifically...


 http://www.opensourcecf.com/1/2006/07/Reading-large-files-with-java-versus-CFFILE.cfm

 

~|
Introducing the Fusion Authority Quarterly Update. 80 pages of hard-hitting,
up-to-date ColdFusion information by your peers, delivered to your door four 
times a year.
http://www.fusionauthority.com/quarterly

Archive: 
http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:252258
Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4


Re: Bulk data loading

2006-09-06 Thread Rick Root
Chris Tilley wrote:
 I've tried it but getting an error message:
 12:52:15.015 - Expression Exception - in
 D:\Inetpub\cf\WorkingCapitalFund\FileReader.cfc : line 65
 
   Variable RETURNSTRING is undefined.
 
 Any ideas why?


Your cfc is referencing a variable that isn't defined?  I don't know, I 
can't see your code =)

returnstring isn't in my code anywhere...

Rick


~|
Introducing the Fusion Authority Quarterly Update. 80 pages of hard-hitting,
up-to-date ColdFusion information by your peers, delivered to your door four 
times a year.
http://www.fusionauthority.com/quarterly

Archive: 
http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:252260
Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm
Unsubscribe: 
http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4


Re: Bulk data loading

2006-09-06 Thread Rick Root
Joseph Lamoree wrote:
 
 You'll probably get the best performance using the Oracle SQL*Plus  
 tools, specifically SQL*Loader:
 http://www.orafaq.com/faq/sql_loader


You are probably right - but for 1000 records, 145KB of data, and it 
only occurs once per year (I think that's what he said), it's probably 
not worth the effort.

Rick

~|
Introducing the Fusion Authority Quarterly Update. 80 pages of hard-hitting,
up-to-date ColdFusion information by your peers, delivered to your door four 
times a year.
http://www.fusionauthority.com/quarterly

Archive: 
http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:252261
Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4


Re: Bulk data loading

2006-09-06 Thread Joseph Lamoree
On 6 Sep 2006, at 12:45, Rick Root wrote:

 You are probably right - but for 1000 records, 145KB of data, and it
 only occurs once per year (I think that's what he said), it's probably
 not worth the effort.

True. I thought we were talking about a jazillion rows.

I have a similar requirement for one of my projects -- to generate a  
batch of a few hundred thousand serial numbers and do a bulk import  
to PostgreSQL. The serial numbers are appended to a CSV flat file as  
they are created. I use the native psql program and a bit of shell  
scripting to bring them into the appropriate table. It takes far  
longer to generate the serial numbers with a PRNG than it does to  
copy them to the database, but less time than it takes to get another  
cup of coffee.

--
Joseph Lamoree

~|
Introducing the Fusion Authority Quarterly Update. 80 pages of hard-hitting,
up-to-date ColdFusion information by your peers, delivered to your door four 
times a year.
http://www.fusionauthority.com/quarterly

Archive: 
http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:252264
Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm
Unsubscribe: 
http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4


RE: Bulk data loading

2006-09-06 Thread Ben Nadel
Sorry to come in late in the convo... If you can put the file in a public
directory, I have found from some simple testing that CFHttp is faster than
a buffered file reader... 

http://bennadel.com/blog/200-ColdFusion-CFHttp-To-Query-Much-Faster-Than-Jav
a-Buffered-Reader.htm

DISCLAIMER: I am a ColdFusion programmer, not a Java programmer, so there
are probably issues. 

...
Ben Nadel 
www.bennadel.com
Certified Advanced ColdFusion Developer

Need Help?
www.bennadel.com/ask-ben/


-Original Message-
From: Chris Tilley [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, September 06, 2006 3:26 PM
To: CF-Talk
Subject: Re: Bulk data loading

I've tried it but getting an error message:
12:52:15.015 - Expression Exception - in
D:\Inetpub\cf\WorkingCapitalFund\FileReader.cfc : line 65

Variable RETURNSTRING is undefined.

Any ideas why?


On 9/6/06, Rick Root [EMAIL PROTECTED] wrote:

 Rick Root wrote:
  I blogged the method at www.opensourcecf.com =)

 specifically...


 http://www.opensourcecf.com/1/2006/07/Reading-large-files-with-java-ve
 rsus-CFFILE.cfm

 



~|
Introducing the Fusion Authority Quarterly Update. 80 pages of hard-hitting,
up-to-date ColdFusion information by your peers, delivered to your door four 
times a year.
http://www.fusionauthority.com/quarterly

Archive: 
http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:252267
Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4


Re: Bulk data loading

2006-09-06 Thread Douglas Knudsen
yes.  You can even do this
1) have user upload cvs file
2) use sqlloader called via cfexecute to load the data into the DB

This will require installing the oracle client on the server and some
patience :)

DK

On 9/6/06, Joseph Lamoree [EMAIL PROTECTED] wrote:

 On 6 Sep 2006, at 11:19, Chris Tilley wrote:

  Does anyone have a tested method of uploading bulk data to a
  database?  I
  have a need (annually) for the admin person to be able to take data
  from an
  Excel spreadsheet and have it inserted into an Oracle database.
  Any sample
  code would be greatly appreciated.  I've played with a CFC that
  makes Java
  calls but without success.

 You'll probably get the best performance using the Oracle SQL*Plus
 tools, specifically SQL*Loader:
 http://www.orafaq.com/faq/sql_loader

 --
 Joseph Lamoree



 

~|
Introducing the Fusion Authority Quarterly Update. 80 pages of hard-hitting,
up-to-date ColdFusion information by your peers, delivered to your door four 
times a year.
http://www.fusionauthority.com/quarterly

Archive: 
http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:252287
Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4


Re: Bulk data loading

2006-09-06 Thread Rick Root
Ben Nadel wrote:
 Sorry to come in late in the convo... If you can put the file in a public
 directory, I have found from some simple testing that CFHttp is faster than
 a buffered file reader... 
 
 http://bennadel.com/blog/200-ColdFusion-CFHttp-To-Query-Much-Faster-Than-Jav
 a-Buffered-Reader.htm
 
 DISCLAIMER: I am a ColdFusion programmer, not a Java programmer, so there
 are probably issues. 

Hey, that's pretty cool.  Your method does work very well provided 
you're looking at well formatted, query like data (like a quality CSV) 
and the file is accessible via http.

Of course, you can't do *ANY* validation on the data until after the 
data is loaded into the query... so that could be a disadvantage.

but still that's pretty cool.  Using CFHTTP to generate a query object 
was somethingthat I'd never really had a need for before.

Rick

~|
Introducing the Fusion Authority Quarterly Update. 80 pages of hard-hitting,
up-to-date ColdFusion information by your peers, delivered to your door four 
times a year.
http://www.fusionauthority.com/quarterly

Archive: 
http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:252293
Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm
Unsubscribe: 
http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4


Re: Bulk data loading

2006-09-06 Thread Denny Valliant
 Hey, that's pretty cool.  Your method does work very well provided
 you're looking at well formatted, query like data (like a quality CSV)
 and the file is accessible via http.

One way to get around poor quality CSV is similar to getting around
poor quality WSDL(?) type stuff... grab the file, parse it locally, re-save
it, and then point cfhttp at it.  I have to do this for one site that has
tabs and weird chars in the CSV file.  Works great.

I also have some code that will take a real excel file (not CSV) and
import it using jexcelapi.  Used it with 11000 rows so far, takes
about 10seconds.

Turns it into a table or a query, IIRC... and it will pull out all of the
workbook spreadsheets.

Been meaning to finish off my how to create a entry with a how
to import one... sad, sad blog: http://loggedden.blogspot.com.

Big thanks to whover wrote the coloredcode bit of blogCFC... :-)

~|
Introducing the Fusion Authority Quarterly Update. 80 pages of hard-hitting,
up-to-date ColdFusion information by your peers, delivered to your door four 
times a year.
http://www.fusionauthority.com/quarterly

Archive: 
http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:252310
Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm
Unsubscribe: 
http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4