ruby - 在 Sequel 中捕获 Oracle raise_applicaiton_error

标签 ruby oracle stored-functions

我有一个 Ruby 脚本,它调用 Oracle 数据库中的存储过程,该数据库具有检查表是否被锁定的功能。如果表被锁定,该过程将生成一个 raise_application_error (-20001,...)

如何在我的 Ruby 脚本中捕获 raise_application_error?

最佳答案

以下是我为使其正常工作所做的工作:

# Lock unit test before all test classes run
...connect to DB
begin
  err = nil
  ...call stored procedure to lock db
rescue
  puts $!.message
  err = $!.message
  puts "DB is locked. Retrying in 5 seconds"
  sleep(5)
  retry if err.include? "ORA-20001"
end

# Unlock unit test
...call stored procedure to unlock db

关于ruby - 在 Sequel 中捕获 Oracle raise_applicaiton_error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29109062/

相关文章:

mysql - 如何使用 ALTER 语句与 GENERATE ALWAYS INSIDE mysql 函数?

ruby - "[^"] *"and ".+ 之间有什么区别?

sql - 排除行,直到列中的值发生更改

python - 在 Python 中设置数据库连接超时

arrays - 将数组变量作为参数传递给另一个函数

sql - Oracle如何处理SQL中的存储函数调用?

Ruby:如何使用带有散列的 'send' 方法调用方法?

ruby-on-rails - 瘦启动 ssl 抛出无效的解析错误

ruby - 如何从 url 获取文件扩展名?

sql - 当行丢失时,在 Oracle SQL PIVOT 结果中用自定义值替换 NULL