在Microsoft SQL Server中这样一个设置:
set fmtonly on|off
它是用来只将元数据返回给客户端,当 SET FMTONLY 为 ON 时,将不对行进行处理,也不将行作为请求的结果发送到客户端。
比如:
如果不设置set fmtonly的值,以下语句
select * from sysobjects
会返回非常多条记录,

set fmtonly on
select * from sysobjects
set fmtonly off
只返回一个记录条数为0的查询空记录.其实我的问题就是想问,在oracle中是否可以不真正执行查询而返回没有数据的空记录(我需要的只是有些查询结果的字段信息,以空记录返回),即只解析不运行.我们要解析的查询是复杂的、不定的,不要试图通过加什么 where 1 =2 或 where rownum<0实现,因为对于这个查询语句你很难正确解析它的最终where是否存在或是在什么位置,可能你能找到的是这个查询中的一个子查询,那么就错了;或通过加select * from (复杂查询) where rownum < 0的方法实现,因为这样也会出错,复杂查询可能包含order by 或其它的统计表达,这样就会出错。我们的宗旨是不破坏复杂查询原型。不知道oracle中是否可以做到?