4

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

[错误 3932] [SQLState 25000] 在 DDL 语句之后只有 ET 或空语句是合法的。)

在 MySQL 数据库上使用 RMySQL 可以很好地工作。

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

4

1 回答 1

0

如果在并行执行期间(下一行使用分号)或在 ANSI 模式下将 DDL 语句与 DML 语句一起使用,并且 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 解决问题

于 2015-10-18T10:55:11.887 回答