[Oracle Database] MTContents タグで sort_by 使用時にエラーが出ることがある

Description

https://movabletype.atlassian.net/browse/MTC-25841?focusedCommentId=368475&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-368475

Oracle Database では BLOB, CLOB カラムを ORDER BY に指定できない。
下記カラムでエラーが起こるはず。

  • multi_line_text

  • url

  • embedded_text

  • tables

SQL Server では未確認。確認する。

SQL でソートは行わず、データ取得後 Perl でソートを行うのが良いのでは。

Environment

None

Checklists

None

Activity

Show:
Pro tip: press M to comment

Kenichi IshigakiNovember 15, 2021 at 3:31 AM

CLOB カラムの場合は order by のところで DBMS_LOB.SUBSTR( value, 4000 ) を通すことである程度実用的に回避できそう。また単純な where 句の (clob column) = ? についても DBMS_LOB.Compare( a, b ) = 0 に置き換えた方がよい場面がありそう。

·

Kenichi IshigakiOctober 18, 2018 at 5:21 AM


sort_byをPerl側にまわすと必然的にlimitもPerl側ということになるので問題が大きくなりすぎるような。urlが含まれるのが悩ましいですが、BLOB/CLOB的なカラムでソートするのが本当に適切なのか含めて、再検討が必要かと。

·

Details

Assignee

Reporter

Fix versions

Original estimate

Time tracking

No time logged2w remaining

Priority

Smart Checklist

Created October 2, 2018 at 7:46 AM
Updated November 15, 2021 at 3:31 AM