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
调用。
我一直在关注 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
调用。