Alle Tuesday 30 September 2008, Alan Nicoll ha scritto: > I'm a perlish person trying to get Ruby to talk to our Oracle 10g > database. The following program gives me a syntax error I can't > resolve. I've looked at a lot of the website messages concerning the > same error an not found anything that points me to a solution. The sql > runs in TOAD. The caret points to the underbar between aradmin and et. > > require 'oci8' > conn = OCI8.new('sql_user', 'sql_user05', 'AR') > cursor = conn.exec('SELECT entry_id, status FROM aradmin.et_requests > where entry_id > '007850'') > while r = cursor.fetch() > puts r.join(',') > end > cursor.close > conn.logoff > > > ruby data2.rb > data2.rb:3: syntax error, unexpected tINTEGER, expecting ')' > cursor = conn.exec('SELECT entry_id, status FROM aradmin.et_requests > where entry_id > '007850'') > > ^ > > >Exit code: 1 The single quote before the number closes the string opening at SELECT, so that ruby sees a string followed by a number, just like: 'abc'123 which isn't valid ruby syntax. To solve the issue, simply replace the single quotes around the argument to conn.exec with double quotes: cursor = conn.exec("SELECT entry_id, status FROM aradmin.et_requests where entry_id > '007850'"). I hope this helps Stefano