问题:我想要使用Rails
插入到DB2表中的大型CSV描述:CSV大约是2k行/ 8K字符。 CLOB列设置为处理超过10K个字符。我可以通过RubyMine数据库控制台插入CSV。但是我的应用程序崩溃了。
ActiveRecord产生一个巨大的插入查询。代码:
Logger.create(csv: csv_data.to_s)
DB2返回错误:
ActiveRecord::JDBCError: [SQL0102] String constant beginning with 'foobar' too long.
我可以使用类似的代码将巨大的PDF文件插入到BLOB列中。我尝试先创建记录,然后用数据更新它,没有区别。
此问题与this相同。除了我需要一个Rails解决方案,而不是一般的
答案 0 :(得分:0)
通过将update_attribute(:csv, '') if self.csv.nil? # Can't CONCAT to nil
# Split csv_data into chunks, concatenate each one to the field
csv_data.scan(/.{1,6144}/m).each do |part|
parm = ActiveRecord::Base.connection.quote(part)
ActiveRecord::Base.connection.execute("update #{Logger.table_name} set csv = CONCAT(csv, #{parm}) where id = #{self.id}")
end
分成块并将它们附加到列
<div class="logo">
<img src="http://dragonkimfoundation.org/wp-content/uploads/2016/09/Dragon-Logo.png" class="center">
</div>
<div class="form">
....
</div>
img.center {
float: left;
height: 150px;
width: 520px;
box-shadow: rgba(0,0,0,0.14902) 0px 1px 1px 0px,rgba(0,0,0,0.09804) 0px 1px 2px 0px;
opacity: 0.7;
}
body {
font-family: Helvetica;
background: url("https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTFyEmWRW1cjDqI_rQ4aqZ8eFOB3Sq2z7NUNnUkm7YMJxpLv7WO");
background-size:cover;
background-color:orange;
}