表 CKSFLTHD
| 過濾器 | 描述 | 啟用 |
|---|---|---|
| 美國廣播公司 | 蘋果蜜蜂角 | 1 |
| EFG | 大象森林格羅夫 | 1 |
表 CKSFLTLN
| 過濾器 | 地點 | LNUM |
|---|---|---|
| 美國廣播公司 | 蘋果蜜蜂角 | ABC123 |
| EFG | 大象森林格羅夫 | EFG456 |
這就是輸出的樣子,而是一個空表。我將使用DISPLAY來填充下拉串列。
| 展示 | 資料值 |
|---|---|
| 蘋果蜜蜂角 | 美國廣播公司 |
OPEN cv_2 FOR
SELECT descr DispVal, filterc DataVal
FROM cksflthd
WHERE activate = 1
AND ( v_showAll = 1
OR filterc IN ( SELECT *
FROM ( SELECT DISTINCT filterc
FROM cksfltln
WHERE SITE IN ( SELECT SITE
FROM cksfltln
WHERE filterc = v_userfiltercode )
AND ( lnum <> ' '
OR filterc = v_userfiltercode ) ) useflt
WHERE filterc IN ( SELECT DISTINCT filterc
FROM cksfltln
WHERE SITE IN ( SELECT SITE
FROM cksfltln
WHERE filterc = v_filterCode )
AND ( lnum <> ' '
OR filterc = v_filterCode ) )
)
);
uj5u.com熱心網友回復:
檢查你的代碼...
這就是我所做的,試圖觀察你分享的內容。
create table CKSFLTLN
(FILTERC varchar2(10),
SITE varchar2(25),
LNUM varchar2(10));
create table CKSFLTHD
(FILTERC varchar2(10),
DESCR varchar2(25),
ACTIVATE varchar2(25));
insert into cksflthd values ('ABC', 'Applebees Corner', 1);
insert into cksflthd values ('EFG', 'Elephant Forest Grove', 1);
insert into CKSFLTLN values ('ABC', 'Applebees Corner', 'ABC123');
insert into CKSFLTLN values ('EFG', 'Elephant Forest Grove', 'EFG456');
CREATE OR REPLACE FUNCTION refcursor_function
RETURN SYS_REFCURSOR
AS
c SYS_REFCURSOR;
v_userfiltercode varchar2(25) :='ABC';
v_filterCode varchar2(25) := 'ABC';
v_showall number(9,0) :=1 ;
BEGIN
OPEN c FOR
SELECT descr DispVal, filterc DataVal
FROM cksflthd
WHERE activate = 1
AND ( v_showAll = 1
OR filterc IN ( SELECT *
FROM ( SELECT DISTINCT filterc
FROM cksfltln
WHERE SITE IN ( SELECT SITE
FROM cksfltln
WHERE filterc = v_userfiltercode )
AND ( lnum <> ' '
OR filterc = v_userfiltercode ) ) useflt
WHERE filterc IN ( SELECT DISTINCT filterc
FROM cksfltln
WHERE SITE IN ( SELECT SITE
FROM cksfltln
WHERE filterc = v_filterCode )
AND ( lnum <> ' '
OR filterc = v_filterCode ) )
)
);
RETURN c;
END;
/
您只共享了游標定義,而不是您正在使用的 PL/SQL 程式,所以我模擬了一個,并對您的用戶值進行了硬編碼......
然后我用一個匿名塊執行了這個函式,或者我真的讓 SQL Developer 為我執行了這個函式。又回來了 refcursor ......不是空的。

轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/417786.html
標籤:
