2013-05-21 54 views
4

我正在使用R JDBC和teradataR將R連接到teradata。我想使用的功能dbWriteTable寫一個表,但我收到此錯誤使用R JDBC插入到Teradata中

[錯誤3932] [的SQLState 25000]只有一個ET或空語句是合法的DDL語句後。)

這工作完全在MySQL數據庫上使用RMySQL很好。

這裏有一個類似的線程哪裏出了問題被認爲是缺乏一個「開始交易」的,但實際上這是不是這樣 http://forums.teradata.com/forum/extensibility/teradata-r-create-table-based-on-a-data-frame-using-jdbc

+0

您可以發佈您提交的SQL或代碼嗎?對於連接到Teradata的JDBC連接,「TMODE」參數集有什麼價值? –

回答

0

如果使用DDL語句非常久遠的DML語句在並行執行期間(;在下一行分號)或ANSI模式下,並且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解決問題