当我运行信息映射时,我收到以下错误,该映射在源中具有LONG
列,而目标列的数据类型为CLOB
。我正在尝试使用TO_LOB
和TO_CLOB
,但没有帮助。在infa映射中的源限定符中没有LONG
或CLOB
,因此我在源限定符中使用了数据类型作为此列的字符串,文本,nsting和ntext,但仍然抛出相同的错误。
ORA-00932: inconsistent datatypes: expected CLOB got LONG
如果您遇到此类错误,请告诉我们,从LONG
转换为CLOB
。
由于 克瑞提
答案 0 :(得分:0)
如果您阅读TO_LOB函数http://docs.oracle.com/cd/E11882_01/server.112/e41084/functions205.htm#SQLRF06134
的参考然后你看它只适用于INSERT ... SELECT ...语句。你无法在飞行中将LONG转换为CLOB。唯一的方法是使用CLOB替换表而不是LONG。
然而,Tom Kyte使用了由rowid LONG读取PL / SQL函数到VARCHAR2(32767)的解决方法。见https://asktom.oracle.com/pls/asktom/f?p=100:11:::::P11_QUESTION_ID:1037232794454
但它对于您无法通过rowid读取的视图不起作用。您需要编写另一个更复杂的函数来接受PK列来读取函数内的行。