From: Paul Barry Date: 2006-05-31T05:45:03+09:00 Subject: Re: Passing an array to DBI statement execute ------=_Part_13186_27032357.1149021900286 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline that's it, thanks On 5/30/06, Berger, Daniel wrote: > > > -----Original Message----- > > From: pauljbarry3@gmail.com [mailto:pauljbarry3@gmail.com] On > > Behalf Of Paul Barry > > Sent: Tuesday, May 30, 2006 2:28 PM > > To: ruby-talk ML > > Subject: Passing an array to DBI statement execute > > > > > > I am trying to write a ruby script that will parse a > > tab-delimited text file and load the data into a database > > table. Here is my script: > > > > require "dbi" > > > > DBI.connect("DBI:OCI8:mydb", "myusername", "mypassowrd") do |dbh| > > sth = dbh.prepare("INSERT INTO my_table VALUES(?, ?, ?, ?, > > ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)") > > > > f = File.open("data.txt", "r") > > id = 0 > > f.each_line do |line| > > values = [id] > > values.concat line.chomp.split("\t") > > (10..12).each {|x| values[x] = Time.parse(values[x]) > > unless values[x].nil? || values[x].strip == ""} > > sth.execute(values) > > sth.execute(*values) > > You need to flatten the list here. Otherwise, you're just passing a > single array. > > Regards, > > Dan > > > This communication is the property of Qwest and may contain confidential > or > privileged information. Unauthorized use of this communication is strictly > prohibited and may be unlawful. If you have received this communication > in error, please immediately notify the sender by reply e-mail and destroy > all copies of the communication and any attachments. > > ------=_Part_13186_27032357.1149021900286--