Syntax error

A

Alan Nicoll

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'')
^
 
G

Gregory Brown

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'')

Check your quotes.

-greg
 
S

Stefano Crocco

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'')

^

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
 
A

Alan Nicoll

Stefano said:
Alle Tuesday 30 September 2008, Alan Nicoll ha scritto:
which isn't valid ruby syntax. To solve the issue, simply replace the
single
quotes around the argument to conn.exec with double quotes:
I hope this helps

Stefano

That worked like a charm; debugging is so easy in hindsight.

Thanks
Nick
 
L

Luis Parravicini

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'')

Check the quotes used in the string passed as argument to exec. The
single quotes used for the ruby string are clashing with the single
quotes around 007850. Try using "SELECT entry_id, status FROM
aradmin.et_requests where entry_id > '007850'".
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,981
Messages
2,570,188
Members
46,731
Latest member
MarcyGipso

Latest Threads

Top