ruby-on-rails – Rails:oracle set_sequence_name被忽略
发布时间:2020-12-17 02:42:07 所属栏目:百科 来源:网络整理
导读:我有一个简单的模型,我必须手动设置数据库名称. 此外,由于它使用的是oracle数据库,我正在设置序列名称,因此我可以自动递增id. 当我运行rails控制台并尝试创建我的模型时,它会回来并说无法找到序列.奇怪的部分是它找不到的序列不是我在set_sequence_name中设
我有一个简单的模型,我必须手动设置数据库名称.
此外,由于它使用的是oracle数据库,我正在设置序列名称,因此我可以自动递增id. 当我运行rails控制台并尝试创建我的模型时,它会回来并说无法找到序列.奇怪的部分是它找不到的序列不是我在set_sequence_name中设置的序列. 模型 class Survey < ActiveRecord::Base set_sequence_name "SURVEY.SQ_SURVEY_ID" set_table_name "SURVEY.SURVEYS" end 控制台错误 ActiveRecord::StatementInvalid: ActiveRecord::JDBCError: ORA-02289: sequence does not exist: select SURVEY.SURVEYS_seq.nextval id from dual 看起来它忽略了我的设置序列名称行. 我只是错过了一些东西吗? 解决方法
FWIW:
使用11g我逃脱了: self.id = ActiveRecord::Base.connection.execute("select SURVEY.SQ_SURVEY_ID.nextval id from dual").fetch 看来在我的情况下,序列返回一个我需要进行提取的游标. 11g / Rails 3.1 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |