2016-07-12 6 views
0

Oracleデータベースを使用してコースに関する情報を保存します。
私はCourseモデルを持っているSequel gem更新Clobフィールドの問題

class Course < Sequel::Model 
    set_dataset Sequel.lit(TABLE_NAME_HERE) 
    set_primary_key :offer_rk 
end 

各コースは4000以上の長さを持つことができます説明があります。
descriptionの型をClobに設定することを余儀なくされました。続編がClob値として普通のStringないとして説明を節約できますように、私は

course.update description: large_text_here 

のようなものは、残念ながら、それは誤り

OCIError: ORA-01704: string literal too long 

を上げる必要があり、私のコードでは

は思えます。

大きなテキストをClobフィールドに正しく保存するにはどうすればよいですか?

どういうわけかこのメソッドにパッチを当てるべきですか?

module Sequel 
    module JDBC 
    module Oracle 
     module DatabaseMethods 
     def schema_column_type(db_type) 
     end 
     end 
    end 
    end 
end 

ありがとうございます。

答えて

1

はprepared_statementsプラグインを使用してみてください:Course.plugin :prepared_statements

+0

は、ジェレミーありがとうございました。それは問題を解決します。今、私はUTF-8からUS-ASCIIへの 'U + 2019 '例外が残っています。しかし、私はそれが後遺症問題ではないと思う。 – Aleksey

+0

私はこのエンコーディングの問題を理解しました。 'NLS_LANG'環境を設定する必要があります。私は 'AMERICAN_AMERICA.UTF8'に設定します。 – Aleksey