存儲過程pro_A返回一個表集合TableA,在存儲過程pro_B中以TableA為數據源再做一重過濾,想實現代碼復用,因此原意是在存儲過程pro_B中調用存儲過程pro_A,但事實發現我們不能寫成select * from (exec pro_A para1,para2) a ;雖然返回結果是表集合。
后來想執行存儲過程返回一個output表變量,就像一般變量一樣,但存儲過程可不支持這種寫法;想到最后只能將pro_A 的內容寫在一個函數中fn_A,函數支持返回表,可以寫成select * from fn_A (para1,para2);