我需要檢索遊標內(在Oracle中)的SELECT COUNT(*)語句中的行數。在Oracle中檢索Oracle中的select count(*)
下面的代碼應該解釋清楚:
PROCEDURE Save(CF_CURSOR OUT "VPA"."CF_#Runtime".CF_CURSOR_TYPE) AS
V_CF_CURSOR "VPA"."CF_#Runtime".CF_CURSOR_TYPE;
CF_ROWCOUNT NUMBER;
BEGIN
OPEN V_CF_CURSOR FOR
SELECT COUNT(*) INTO CF_ROWCOUNT FROM (
SELECT * FROM "VPA"."Employee" -- returns 1 row
) WHERE ROWNUM <= 1;
IF(CF_ROWCOUNT = 0) THEN
-- DO SOMETHING BUT NEVER GOES HERE
END IF;
COMMIT;
CF_CURSOR := V_CF_CURSOR;
END;
這裏,CF_ROWCOUNT的值永遠不會設置。如果我刪除光標,一切都按預期工作。我試圖使用SQL%ROWCOUNT,但它也不起作用。 而且,我不能刪除光標...
在此先感謝!
首先它不會工作,因爲你的語法不正確。其次,當你寫_「我試圖使用SQL%ROWCOUNT,但它不工作」_什麼不工作?你有錯誤信息嗎?你跑了什麼?最後,你只是想獲得一個計數,或者你是否也想在員工中使用這些數據? – Ben 2013-02-27 08:57:20
在得到結果之前,你不應該在光標上做一個'FETCH'嗎? – 2013-02-27 09:18:21