gpt4 book ai didi

ruby-on-rails - Rails 执行存储过程

转载 作者:行者123 更新时间:2023-12-04 06:19:10 24 4
gpt4 key购买 nike

我正在尝试从 rails 控制台 执行oracle 存储过程。使用以下代码

ActiveRecord::Base.connection.execute("execute change_name('shanison', 'shanison_test');

不断报错

ActiveRecord::StatementInvalid: OCIError: ORA-00900: invalid SQL statement: execute si.change_name('shanison', 'shanison_test');

我尝试直接在 oracle sql developer 中运行查询,结果运行良好,这意味着我的存储过程没问题

execute change_name('shanison', 'shanison_test');

我确实向我正在使用的 Rails 的数据库用户授予了执行权限。我试过在 Rails 2 和 3 下运行它,两者都不起作用并显示相同的错误消息。

最佳答案

下面的语句有效:

OracleTableBase.connection.execute("begin change_user_name('shanison', 'shanison_test');end;")

虽然很多文档显示使用 exec 或 call 应该是有效的。 Calling Stored procedure through Rails?

关于ruby-on-rails - Rails 执行存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12909504/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com