在INFORMATICA中将LONG转换为CLOB

时间:2015-06-17 20:20:01

标签: sql oracle informatica

当我运行信息映射时,我收到以下错误,该映射在源中具有LONG列,而目标列的数据类型为CLOB。我正在尝试使用TO_LOBTO_CLOB,但没有帮助。在infa映射中的源限定符中没有LONGCLOB,因此我在源限定符中使用了数据类型作为此列的字符串,文本,nsting和ntext,但仍然抛出相同的错误。

ORA-00932: inconsistent datatypes: expected CLOB got LONG

如果您遇到此类错误,请告诉我们,从LONG转换为CLOB

由于 克瑞提

1 个答案:

答案 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列来读取函数内的行。