如何识别在Teradata中返回结果集的查询?

时间:2015-10-05 21:05:01

标签: sql teradata

我正在编写一个简单的程序,将查询解析为两个桶:

1)没有结果集的人(如INSERT,UPDATE,CREATE)

2)和那些人(如SELECT)

据我了解,只要查询以SELWITH子字符串开头,它总是有结果集。它是否正确 ?我确信SEL,但对WITH不太确定。查询是否可能以WITH开头并且没有结果集?

2 个答案:

答案 0 :(得分:0)

在Java中(例如)

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

您的SQL也可以从评论开始并可以提交。另一个例子是匿名块:

BT;
  select user; 
ET;

答案 1 :(得分:0)

您将忽略“隐藏”此拆分中逻辑的SQL。例如,宏可以包含SELECT和/或DML。如果您有EXEC myMacro,则必须获取宏的DDL并对此进行解析。

我将尝试请求SQL解释的方法。在这种情况下,RDBMS接管了解析,您只需要扫描说明(最后)是将某些内容发送到客户端(它们将具有结果集)还是插入/合并到表中。