gpt4 book ai didi

ruby-on-rails - ActiveRecord 参数错误 : negative string size (or size too big)

转载 作者:行者123 更新时间:2023-12-04 02:15:39 25 4
gpt4 key购买 nike

我已经和这个一起工作了几天。这是 ActiveRecord 错误和应用程序跟踪。

ArgumentError: negative string size (or size too big): 
EXEC sp_executesql N'SELECT [ops_jobs_join].* FROM [ops_jobs_join]
WHERE (work_center_id = N''M*1053'' OR work_center_id = N''M*1035'' OR
work_center_id = N''M*1037'' OR work_center_id = N''M*1036'') AND
(status != N''C'') AND (start_date != N'''') AND
(start_date >= N''20120516'') AND (comp_date <= N''20120527'') AND
(work_order NOT LIKE N''LA%'')
ORDER BY work_center_id ASC, start_date ASC, starting_shift_num ASC,
status ASC, priority ASC, comp_date ASC, ending_shift_num ASC,
due_date ASC, sequence_number ASC'

事实证明,如果我调用 Op.all 会收到此错误:

ActiveRecord ArgumentError: negative string size (or size too big)



如果我忽略使用的列可能包含 unicode 字符,它工作正常。所有数据都没有问题地存储在数据库中,但由于某种原因 rails3 没有它。

一些 where 子句会返回记录,而另一些会导致相同的错误:

activerecord-sqlserver-adapter (3.2.4) lib/active_record/connection_adapters/sqlserver/database_statements.rb:421:in `fetch_all'



它类似于以下两个帖子:
  • ActiveRecord::StatementInvalid: ArgumentError: negative string size (or size too big): SELECT * FROM [shop]
  • ActiveRecord doesn't work on one table

  • 似乎第一篇文章中的解决方案是更改我想避免的 gem。

    我查看了我的表格,我认为我没有使用任何关键字作为字段名称。

    我使用与此类似的其他查询,它们工作正常。唯一的区别是我在 where 子句中使用的值 (work_center_id = N''M*1053'')。

    最佳答案

    Rails 对数据操作的默认编码是 UTF8,您也需要在数据库中使用这种编码。
    改变它,一切都会好起来的。

    关于ruby-on-rails - ActiveRecord 参数错误 : negative string size (or size too big),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10690640/

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