问题描述
我是Talend的新手。我正在使用Talend 6.5.1版本和Oracle 11。 我已经在Oracle中创建了一个简单的表。
表DDL:
CREATE TABLE test(id NUMBER);
现在,我将按照以下Talend作业流程插入记录。
tOracleConnection ---On Component Ok ---> tOracleRow_1
我能够通过提供PLSQL查询来插入记录。
PLSQL查询:
" BEGIN
INSERT INTO test(id) values(1);
INSERT INTO test(id) values(2);
INSERT INTO test(id) VALUES(3);
END; "
直到这一切都很好。
现在,我想使它自动化,以便将这些PLSQL查询放入一个文本文件中。 然后,我将以字符串形式读取文件的内容,并将该字符串传递给tOracleRow组件。
为此,我准备了以下Talend作业流程。
tOracleConnection --- On Component Ok ---> tFileInputRaw(reading PLsql file) ---
--- row1(Main) --> tJavaRow(logging purpose) ---row2(Main) ---> tOracleRow_1
执行此作业时,我正在遵循sqlException。
组件tOracleRow_1中的异常:java.sql.sqlException:无效 sql类型:sqlKind = UNINITIALIZED
如果已经遇到此类问题,请提供您的建议。
谢谢。
解决方法
此问题已解决。
实际上,在PLSQL查询文件中,我们不需要带双引号的封闭查询。
因此,您的PLSQL查询将如下所示。
BEGIN
INSERT INTO test(id) values(1);
INSERT INTO test(id) values(2);
INSERT INTO test(id) VALUES(3);
END;