请教ODI 执行到Insert flow into I$ table步骤报错的问题

正在学习ODI,目前操作步骤都比较熟悉了,就是到最后执行接口时无法通过。请哪位熟悉的朋友帮忙看看,非常感谢先!!!

所联系的例子是从SCOTT shema同步EMP表到ODITRG schema下面的EMP表,所采用的数据库是Oracle XE 10g。

执行到“Insert flow into I$ table” 步骤时报错,错误的log信息如下:

12154 : 66000 : java.sql.SQLException: ORA-12154: TNS: 无法解析指定的连接标识符

java.sql.SQLException: ORA-12154: TNS: 无法解析指定的连接标识符


        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:125)

        at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:316)

        at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:282)

        at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:639)

        at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:185)

        at oracle.jdbc.driver.T4CPreparedStatement.execute_for_rows(T4CPreparedStatement.java:633)

        at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1086)

        at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:2984)

        at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3057)

        at com.sunopsis.sql.SnpsQuery.executeUpdate(SnpsQuery.java)

        at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execStdOrders(SnpSessTaskSql.java)

        at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTaskTrt(SnpSessTaskSql.java)

        at com.sunopsis.dwg.dbobj.SnpSessTaskSqlI.treatTaskTrt(SnpSessTaskSqlI.java)

        at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(SnpSessTaskSql.java)

        at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java)

        at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java)

        at com.sunopsis.dwg.cmd.DwgCommandSession.treatCommand(DwgCommandSession.java)

        at com.sunopsis.dwg.cmd.DwgCommandBase.execute(DwgCommandBase.java)

        at com.sunopsis.dwg.cmd.e.i(e.java)

        at com.sunopsis.dwg.cmd.g.y(g.java)

        at com.sunopsis.dwg.cmd.e.run(e.java)

        at java.lang.Thread.run(Unknown Source)

作者: lkfi   发布时间: 2010-06-22

源和目标是在不同的服务器吧?
在目标端的tnsnames.ora中配置对源端数据库访问的连接标识符。
此连接标识符最好与要访问的SID一致。

如果源和目标在相同的服务器上,那么,请在物理架构中将两者配置在同一个data server下。
如果你在物理架构中配置到了不同的data server下,
ODI会按照不同server下的配置来创建一些代码访问数据库,容易出错。

作者: stone0619   发布时间: 2010-08-05

最近也在学习ODI,碰到了和楼主同样的问题,不知道楼主有没有解决。

我是照着Oracle提供的例子做的,数据源和目标都是在一个本地数据库中,也是报
"TNS: 无法解析指定的连接标识符java.sql.SQLException" 这个错误,前前后后查了好几遍
也没有看到有什么不对劲的地方。郁闷啊,做到这里卡了好几天,没法往下继续了。

作者: tiaozao56   发布时间: 2010-08-18

在创建物理模型时,填写的那个源库的sid.dblink也要放进目标数据仓库的tnsname文件中。

作者: 永远的Troy   发布时间: 2010-08-31