2
我寫一些簡單的程序,解析查詢到兩個水桶:如何識別返回Teradata中結果集的查詢?
1)那些沒有結果集(如INSERT,UPDATE,CREATE誰)
2)和那些誰做的(如SELECT )
據我所知,只要查詢以SEL
或WITH
子串開始,它總是有一個結果集。它是否正確 ?我相信SEL
,但不太確定WITH
。查詢是否可能以WITH
開頭,並且沒有結果集?
我寫一些簡單的程序,解析查詢到兩個水桶:如何識別返回Teradata中結果集的查詢?
1)那些沒有結果集(如INSERT,UPDATE,CREATE誰)
2)和那些誰做的(如SELECT )
據我所知,只要查詢以SEL
或WITH
子串開始,它總是有一個結果集。它是否正確 ?我相信SEL
,但不太確定WITH
。查詢是否可能以WITH
開頭,並且沒有結果集?
在Java(例如)
Connection conn = ... // connect here
if (conn.createStatement().execute(sql)) {
// it's a select statement
}
你的SQL可與評論也開始並submittable。另一個例子是一個匿名塊:
BT;
select user;
ET;
我相信你的假設是正確的關於'WITH'是'SELECT'而已。你不能在'INSERT','UPDATE','DELETE','CREATE'等中使用'With' ......事實上,在CTE之後唯一允許的關鍵字是'SELECT'和一些臨時關鍵字,最終只會導致一個'SELECT'。但是,當您點擊「USING」或「LOCKING」等關鍵字時,該解析可能會變得更加困難。 – JNevill
非常感謝你我完全忘了LOCKING。 – Pasha