2015-10-05 97 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;