3

long データ型を clob に変換しようとすると、Oracle 11g で次のエラーが表示されます。私は試します:select to_lob(long_col_name) from table1. 私は得ます:

[Error] Execution (1: 39): ORA-00932: inconsistent datatypes: expected - got LONG

ここで何が間違っていますか?

4

4 に答える 4

4

同僚の助けを借りてここで答えを見つけました:http: //docs.oracle.com/cd/B19306_01/server.102/b14200/functions185.htm しかし、なぜこの制限が適用されているのかわかりません

于 2012-08-17T18:22:08.300 に答える
3

この関数は、LONG または LONG RAW 列にのみ適用でき、INSERT ステートメントのサブクエリの選択リストにのみ適用できます。

于 2013-10-16T09:22:30.267 に答える
1

このような回避策を提案します。これが誰かに役立つことを願っています。

 SELECT substr(Y.longtoclob,
          43 + length('ALIASLONG'),
          DBMS_LOB.GETLENGTH(Y.longtoclob) -
          2 * (32 + length('ALIASLONG'))) longtoclob
  from dual,
   (select (dbms_xmlgen.getxml('SELECT t.column_long ALIASLONG 
  FROM TABLE_LONG_CLOB t WHERE t.id = 2')) longtoclob
      from dual) Y where DBMS_LOB.GETLENGTH(Y.longtoclob) > 0
于 2014-02-26T14:04:33.647 に答える
0

LONGをLOBに直接フェッチすることはできません。最初にVARCHAR2に変換することをお勧めします

于 2012-08-17T20:30:18.003 に答える