0

この単純な MRI スクリプトを jRuby で動作させようとしましたが、以下のエラーが発生します。MRI と同じ gem をインストールしました。Active Record の JDBC を使用したくありません。単純な接続とクエリを作成するだけです。どうすればよいですか?

C:\jruby-1.7.4\bin>jruby -S gem list --local 

与える

..
ruby-oci8 (2.1.0 x86-mingw32)
..

スクリプト

require 'oci8'

$conn = OCI8.new('test','test','dbcm.cm_121')

sql = %q{
  select * from table
 }

$conn.exec(sql).fetch_hash do |r|
  r.each {|key, value| puts "#{key} is #{value}"}
  puts ""
end

$conn.logoff

エラー

C:\jruby-1.7.4\test>jruby fetch_sql.rb
LoadError: no such file to load -- oci8lib_jruby191
  require at org/jruby/RubyKernel.java:1054
  require at C:/jruby-1.7.4/lib/ruby/shared/rubygems/custom_require.rb:36
   (root) at C:/jruby-1.7.4/lib/ruby/gems/shared/gems/ruby-oci8-2.1.0-x86-mingw32/lib/oci8.rb:43
  require at org/jruby/RubyKernel.java:1054
   (root) at C:/jruby-1.7.4/lib/ruby/shared/rubygems/custom_require.rb:1
   (root) at fetch_sql.rb:1
4

1 に答える 1

0

不可能のようですが、ご連絡ください。ここで、jdbc を使用して作成できる最短/最も単純な例を示します

require 'java'

#source: http://www.oracle.com/technetwork/articles/dsl/jruby-oracle11g-330825.html

java_import 'oracle.jdbc.OracleDriver'
java_import 'java.sql.DriverManager'

begin
  oradriver = OracleDriver.new
  DriverManager.registerDriver oradriver
  user = 'xxx'
  passwd = 'xxx'
  url = 'jdbc:oracle:thin:@xxxxxx:9999:xxxx'
  conn = DriverManager.get_connection url, user, passwd
  select_sql = "select * from resources"
  select_stmt = conn.create_statement
  rset = select_stmt.execute_query select_sql
  while (rset.next)
    puts "    resource [#{rset.getInt(1)}, #{rset.getString(2)}]"
  end
rescue
  puts "Failed executing Oracle demo from JRuby ", $!, "\n"
ensure
  select_stmt.close
  conn.close_connection
end
于 2013-06-24T15:13:46.390 に答える