Oracle-10g
返回 Oracle 儲存過程中的行數
我主要是 SQL Server 人,所以如果這與 SQL Server 太接近,請原諒我,但簡而言之,使用 Oracle 10 我正在嘗試建構一個類似這樣的過程:
PROCEDURE SP_INFO_EX_S( v_EX_ID IN NUMBER, v_EX_ROWS OUT NUMBER ) AS SELECT COUNT(*) AS ExCount FROM EXAMPLE WHERE EX_ID = v_EX_ID END SP_INFO_EX;
我想做的是返回 v_EX_ROWS 作為範例表中與 WHERE 子句匹配的總行數,但 Google 似乎對此沒有答案。我錯過了什麼嗎?謝謝!
你快到了,只需將 select 的結果放入 out 變數中:
SELECT COUNT(*) into v_EX_ROWS FROM EXAMPLE WHERE EX_ID = v_EX_ID
不過,您可能會更好地使用函式:
create or replace function SP_INFO_EX_S(v_EX_ID IN NUMBER) return number AS row_count number; BEGIN SELECT COUNT(*) into row_count; FROM EXAMPLE WHERE EX_ID = v_EX_ID; return row_count; END SP_INFO_EX; /
然後做:
select sp_info_ex_s(42) from dual;
根據您的查詢工具,這可能比 out 參數更容易處理。