起初,我利用游标来操作返回的数据集,但是游标不支持 exec sp_executesql @sql 返回的数据集,于是我想到了临时表,但很快发现,利用 exec sp_executesql 操作创建的临时表,其作用范围只存在于当前语句中,它后面的语句就不能再引用这个临时表了。
也许有人会说,先把临时表定义好,不就可以了。其实,我要做的这个工作,临时表的列是变化的,所以不能先定义临时表。这是我想到了全局临时表,把查询的数据集存入全局临时表中。
下面给出sqlserver和oracle进行此类操作的代码,希望能对大家有所帮助。
oracle代码操作如下:
Dbms_Sql.close_cursor(cursor_Select);
如果大家更好的,解决该问题的方法,即时讨论。