我一直在关注Oracle的tutorial,将他们的JDBC驱动程序与oracle数据库和JRuby一起使用。我需要JRuby连接器类,并修改了一些代码。我只想做一个简单的插入语句并从我的脚本执行它。一旦完成,我可能必须完成这么多次。
我使用的是oracle数据库,11g。 CentOS 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(&#34; SYSTEM&#34;,&#34;密码&#34;,&#34; jdbc:oracle:thin:@ 。 :1521:XE&#34)
请帮忙。
答案 0 :(得分:1)
如果您使用的是自己提供的链接中的示例代码,那么代码中的代码就会@conn.auto_commit = false
,示例会在conn.commit
后面显示insert_stmt.execute
的使用情况,这很可能是你需要做的。
简而言之,添加丢失的conn.commit
电话。