我的存儲過程是這樣的:凡在甲骨文
CREATE OR REPLACE PROCEDURE Proc_SearchRequests
(
RequestedBy LONG,
FromDate DATE DEFAULT NULL,
ToDate DATE DEFAULT NULL,
RequestedByDesignation VARCHAR2 DEFAULT NULL,
TypeId INT,
CurrentStatusId INT DEFAULT NULL,
AmountFrom LONG DEFAULT NULL,
AmountTo LONG DEFAULT NULL,
cur_ExcelOutput OUT SYS_REFCURSOR
)
AS
BEGIN
OPEN cur_ExcelOutput FOR
SELECT cd.*,
emp.FIRSTNAME || ' ' || emp.LASTNAME AS ADDEDBYNAME
FROM
DETAILS cd
LEFT JOIN EMPLOYEES emp ON cd.ADDEDBY = emp.EMPLOYEEID
WHERE
cd.TYPEID=TypeId;
END;
我傳遞執行過程爲:
BEGIN
PROC_SEARCHREQUESTS (110, to_date ('2001-01-01', 'YYYY-MM-DD'), to_date ('9999-12-31 23:59:59', 'YYYY-MM-DD HH24:MI:SS'), null, 2, 0, 0, 0, :cur_exceloutput$REFCURSOR);
END;
但無論我通過爲TYPEID我得到完整的數據,而不是過濾一個.. 如果我寫「cd.TYPEID = 2」我得到正確的結果,但傳遞值varible不起作用。
什麼可能是錯的?我是否缺少任何鑄件或其他東西?
這實際上工作......但我不明白原因......什麼是這個「p_」? – user1181942 2012-07-24 05:45:40
好的我知道了..我不知道變量名稱不能與列名稱相同..謝謝..這增加了我的知識.. – user1181942 2012-07-24 05:47:37
p來自參數。是一個命名約定。我剛剛更改了變量的名稱。 – 2012-07-24 05:48:23