原始代码:
require 'oci8'
SCHEDULER.every '10s', :first_in => 0 do |job|
begin
conn = OCI8.new('apps','apps');
mylist = Hash.new
conn.exec("select full_name, count(*) from per_all_people_f
where rownum < 6 group by first_name") do |r|
mylist[r[0]] = { label: r[0], value: r[1].to_i.to_s }
end
send_event('emp-list', { items: mylist.values })
conn.logoff
rescue Exception => e
puts e.message
end
end
正在运行ruby oratest1.rb
会出现以下错误:
oratest1.rb:11: syntax error
mylist[r[0]] = { label: r[0], value: r[1].to_i.to_s }
^
oratest1.rb:11: syntax error
mylist[r[0]] = { label: r[0], value: r[1].to_i.to_s }
^
oratest1.rb:11: syntax error
oratest1.rb:13: syntax error
send_event('emp-list', { items: mylist.values })
^
oratest1.rb:13: syntax error
send_event('emp-list', { items: mylist.values })
^
oratest1.rb:17: syntax error
rescue Exception => e
^
oratest1.rb:21: syntax error
答案 0 :(得分:0)
你可能正在使用ruby 1.8。此哈希语法包含在1.9之后。
要确保,请运行ruby -v并检查输出。
答案 1 :(得分:0)
如果在1.9之前使用ruby,则必须使用以下语法进行哈希:
mylist[r[0]] = { :label => r[0], :value => r[1].to_i.to_s }
您使用的语法在ruby 1.9及更高版本中有效!