日期:2014-05-17  浏览次数:20996 次

long类型的字段拼接报错。
select max(column_expression)
  from (select t.index_owner,
               t.index_name,
               t.table_owner,
               t.table_name,
               wm_concat(t.column_expression) over(partition by t.index_owner, t.index_name, t.table_owner, t.table_name order by column_position) as column_expression
          from sys.all_ind_expressions t)
 group by index_owner, index_name, table_owner, table_name

我要拼接column_expression字段,由于column_expression是long类型的。执行报:ORA-00997:非法自用long数据类型?请问大家如何解决?怎么改呢?
------解决方案--------------------
引用:
Quote: 引用:

先转换成字符型试试
 我用to_lob和to_char都不能转呢?请问用什么转?

官方解释是因为long所存的字符长度很大,而CHAR有长度限制,为了避免长度溢出,你可以通过SUBSTR的方式截取规定的长度作为CHAR型