使用R JDBC插入Teradata

时间:2013-05-21 23:58:36

标签: database r jdbc teradata

我使用R JDBC和teradataR将R连接到teradata。我想使用函数dbWriteTable编写一个表,但是收到此错误

[错误3932] [SQLState 25000]在DDL语句之后,只有ET或null语句才合法。)

这在MySQL数据库上使用RMySQL完全正常。

这里有一个类似的线程,问题被认为是缺乏'开始交易',但事实证明并非如此 http://forums.teradata.com/forum/extensibility/teradata-r-create-table-based-on-a-data-frame-using-jdbc

1 个答案:

答案 0 :(得分:0)

如果在并行执行期间使用DDL语句和DML语句(在下一行使用分号)或在ANSI模式下使用DDL语句,并且DDL语句不是块中的最后一个语句,则会出现此错误。

select * from employee
;create table dept as select * from tmp_dept with no data
;update table employee set name = 'abc' where id = 101;

正如您所看到的,DDL将导致隐式提交;而在事务中,整个事务都被提交,否则回滚。 我想你现在得到了直觉。 请检查是否删除了DDL代码并且仅使用DML解决了问题