亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如圖,在判斷并給游標賦值的時候報錯了?為什么

如圖,在判斷并給游標賦值的時候報錯了?為什么

墨色風雨 2022-10-20 15:15:39
CREATE OR REPLACE FUNCTION F1(i_UnitId VARCHAR,i_CityId VARCHAR)RETURN VARCHAR2 AS v_SendFlag VARCHAR2(2); -- 發送結果標識 ERR_INPUT_PARA EXCEPTION; -- 輸入參數異常 TYPE v_TagCursor IS REF CURSOR; -- 查詢結果集BEGIN v_SendFlag := '0'; IF i_CityId IS NULL THEN -- 如果城市為空 v_TagCursor IS (SELECT A.TAGID FROM T1 A WHERE A.TIME BETWEEN SYSDATE AND SYSDATE - 1 AND A.UNITID = i_UnitId); ELSE -- 城市非空 v_TagCursor IS (SELECT A.TAGID FROM T1 AWHERE A.TIME BETWEEN SYSDATE AND SYSDATE - 1 AND A.UNITID = i_UnitIdAND A.CITYID = i_CityId); END IF; IF v_TagCursor IS NULL THEN v_SendFlag := '0';ELSE v_SendFlag := '1';END IF; RETURN v_SendFlag;EXCEPTION WHEN ERR_INPUT_PARA THEN RETURN '1'; WHEN OTHERS THEN RETURN '1';END F1;?
查看完整描述

2 回答

?
BIG陽

TA貢獻1859條經驗 獲得超6個贊

首先你要明白TYPE v_TagCursor IS REF CURSOR; 這句話的意思。定義了一個v_TagCursor動態游標變量類型。
動態游標:
語法:Type REF游標名 IS Ref Cursor;
弱類型REF游標:不指定return type,能和任何類型的CURSOR變量匹配,用于獲取任何結果集。
用法如:
例子:弱類型REF游標 /*conn scott/tiger*/
Declare
Type MyRefCur IS Ref Cursor;
vRefCur MyRefCur;
vtemp vRefCur%RowType;
Begin Case(&n)
When 1 Then Open vRefCur For Select * from emp;
When 2 Then Open vRefCur For Select * from dept; Else
Open vRefCur For Select eno, ename from emp Where JOB = 'CLERK';
End Case;
Close vRefCur;
End;
你自己定義一下存儲過程中的v_TagCursor然后再試試。


查看完整回答
反對 回復 2022-10-24
?
holdtom

TA貢獻1805條經驗 獲得超10個贊

給函數名插入數據之后要給一個變量賦值,然后創建游標,不然你后面的游標哪來的?

查看完整回答
反對 回復 2022-10-24
  • 2 回答
  • 0 關注
  • 146 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號