2015-10-05 100 views
2

我寫一些簡單的程序,解析查詢到兩個水桶:如何識別返回Teradata中結果集的查詢?

1)那些沒有結果集(如INSERT,UPDATE,CREATE誰)

2)和那些誰做的(如SELECT )

據我所知,只要查詢以SELWITH子串開始,它總是有一個結果集。它是否正確 ?我相信SEL,但不太確定WITH。查詢是否可能以WITH開頭,並且沒有結果集?

+1

我相信你的假設是正確的關於'WITH'是'SELECT'而已。你不能在'INSERT','UPDATE','DELETE','CREATE'等中使用'With' ......事實上,在CTE之後唯一允許的關鍵字是'SELECT'和一些臨時關鍵字,最終只會導致一個'SELECT'。但是,當您點擊「USING」或「LOCKING」等關鍵字時,該解析可能會變得更加困難。 – JNevill

+0

非常感謝你我完全忘了LOCKING。 – Pasha

回答

0

在Java(例如)

Connection conn = ... // connect here 
if (conn.createStatement().execute(sql)) { 
    // it's a select statement 
} 

你的SQL可與評論也開始並submittable。另一個例子是一個匿名塊:

BT; 
    select user; 
ET;