sp_executesql和臨時表的用法
相比oracle,sqlserver對數據集的操作不直觀,而且比較麻煩。我就遇到這樣的一種情形,想獲取 exec sp_executesql @sql返回的數據集,然后對返回的數據集進行遍歷。
起初,我利用游標來操作返回的數據集,但是游標不支持 exec sp_executesql @sql 返回的數據集,于是我想到了臨時表,但很快發現,利用 exec sp_executesql 操作創建的臨時表,其作用范圍只存在于當前語句中,它后面的語句就不能再引用這個臨時表了。
也許有人會說,先把臨時表定義好,不就可以了。其實,我要做的這個工作,臨時表的列是變化的,所以不能先定義臨時表。這是我想到了全局臨時表,把查詢的數據集存入全局臨時表中。
下面給出sqlserver和oracle進行此類操作的代碼,希望能對大家有所幫助。
Code
oracle代碼操作如下:
Code
如果大家更好的,解決該問題的方法,即時討論。
起初,我利用游標來操作返回的數據集,但是游標不支持 exec sp_executesql @sql 返回的數據集,于是我想到了臨時表,但很快發現,利用 exec sp_executesql 操作創建的臨時表,其作用范圍只存在于當前語句中,它后面的語句就不能再引用這個臨時表了。
也許有人會說,先把臨時表定義好,不就可以了。其實,我要做的這個工作,臨時表的列是變化的,所以不能先定義臨時表。這是我想到了全局臨時表,把查詢的數據集存入全局臨時表中。
下面給出sqlserver和oracle進行此類操作的代碼,希望能對大家有所幫助。
oracle代碼操作如下:
如果大家更好的,解決該問題的方法,即時討論。
posted on 2009-08-19 09:12 mjgforever 閱讀(4825) 評論(1) 收藏 舉報

浙公網安備 33010602011771號