首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >人才动态创造中的问题

人才动态创造中的问题
EN

Stack Overflow用户
提问于 2017-05-09 21:24:17
回答 1查看 224关注 0票数 0

我得到了这样的要求:创建一个单独的Talend作业,其中包含读取多个表并动态写入多个文件(当我们通过上下文变量给出一个表名时,作业应该将该表作为select * from tablename并写入文件tablename.txt)

我在toracle输入阶段给出的oracle查询-

代码语言:javascript
复制
"SELECT *  FROM '"+context.Table_Name+"'"

在上下文变量部分,给出如下

代码语言:javascript
复制
Table_Name-    String-   checked Prompt for value for dynamic table name

在Oracle表的元数据定义中,我给出的

代码语言:javascript
复制
Type="dynamic" db type="varchar2"

面临的问题:

  1. 作业未标识上下文变量。 ORA-00903:组件中的无效表名异常( oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:91) tOracleInput_1 java.sql.SQLSyntaxErrorException: ORA-00903: oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:173) at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:112) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:173))上的无效表名 但是,当我硬编码表名时,作业运行良好。
  2. 我给出的目标文件路径 "C:/Talend/OutputFIles/context.Table_Name.txt“

我不是打印上下文变量的值,而是作为文件名作为context.Table_Name.txt

请帮我一下

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-10 06:06:12

你试着在表名旁边删除‘了吗?

试试这个:

"SELECT * FROM " + context.Table_Name

与文件名构造相同,您应该写:

"C:/Talend/OutputFIles/" + context.Table_Name + ".txt"

更好的是,您应该有一个上下文变量定义的路径名,提供:

context.OutputPath + context.Table_Name + ".txt"

TRF

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43880102

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档