JRuby OJDBC,没有错误但插入没有出现?

JRuby OJDBC, no error but insert doesn't show up?

我一直在关注 Oracle 的 tutorial,将他们的 JDBC 驱动程序与 Oracle 数据库和 JRuby 一起使用。我需要 JRuby 连接器 class,我修改了他们的一些代码。我只想做一个简单的插入语句并从我的脚本中执行它。一旦完成,我可能不得不这样做 10 多次。

我使用的是 oracle 数据库,11g。中央操作系统 7.2 x64。

这是我的代码:

def insert_row
insert_stmt = nil
begin
  conn = OracleConnection.create(@dbuser, @dbpass, @dburl)

  insert_sql = <<-EOH
INSERT INTO TESTTABLE2(COLUMN1)
VALUES('JRUBY')
  EOH
  puts insert_sql
  insert_stmt = conn.prepare_statement(insert_sql)
  insert_stmt.execute

rescue
  puts "\n** Error occured **\n"
  puts "Failed executing Oracle demo from JRuby ", $!, "\n"
ensure
  # We have to ensure everything is closed here.
  if (!insert_stmt.nil?)
    insert_stmt.close
  end
end
end

代码似乎成功完成,但实际上什么也没做。我刚刚复制并粘贴了 jdbc_connector.rb 文件并需要它,我认为这就是您应该使用它的方式,因为它只是用于发布到数据库。

这些是我的设置: init = CSVParse.new("SYSTEM", "Password", "jdbc:oracle:thin:@...:1521:XE")

请帮忙。

如果您使用的是您提供的 link 中的示例代码,那么它在您的代码中某处有 @conn.auto_commit = false,该示例显示了 conn.commit 的用法insert_stmt.execute,所以这很可能是您需要做的。

简而言之,添加缺少的 conn.commit 调用。