我使用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
答案 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解决了问题