我對Oracle非常陌生,並被要求編寫一個過程來查詢表中的某些數據。我用2個參數構建它,一個遊標和一個數字。基本上我有:是否需要在程序中查詢遊標?
PROCEDURE PROC_NAME (
cursor_name IN OUT NOCOPY MY_DEFINED_CURSOR_TYPE,
a_number IN NUMBER);
AS
BEGIN
OPEN CURSOR_NAME FOR
SELECT
column
FROM
table
WHERE
table.dat_value > (SYSDATE - a_number);
END PROC_NAME;
它的工作原理就像一個魅力,我可以從光標中獲取列。我的問題是請求者不想傳入光標,他們只是想傳入數字。我從來沒有創建過一個不使用遊標來返回查詢值的過程,我見過的例子只有這樣才能做到。這可能嗎?
這聽起來像你只是被要求到'cursor_name'參數從'IN OUT'改爲'OUT'。作爲一種風格,我會在'IN'參數之後加入'OUT'參數,但這只是個人偏好。 –
有多種方式可以返回數據而不是遊標。請求者能指定他們想要的東西嗎?嵌套表,關聯數組,單個標量值...? –
請求者是否被用於SQL Server?在SQL Server中,遊標的返回是隱含的,不需要通過參數。 –