나는 오라클 sys_refcursor
에 select를 위해 열리는 반환 기능이 있습니다 . 이 오라클 함수에 매개 변수를 전달하고 있으며이 매개 변수와 동일한 열로 선택을 주문합니다. 예를 들어, 선택에 10 개의 열이 있고 각 매개 변수가 각각 같을 수 있습니다. 이와 같은 절
if myParam = 'name' then
select <selected rows>
from table a
order by a.name
end if;
곧 내 코드가 될 다른 조건이 있습니까?
CREATE OR REPLACE FUNCTION my_fun( ord VARCHAR2 )
RETURN sys_refcursor
IS
refcur SYS_REFCURSOR;
BEGIN
OPEN refcur FOR
'SELECT level as x, 100-level as y FROM dual
CONNECT BY LEVEL <= 10
ORDER BY ' || ord;
RETURN refcur;
END;
/
그리고 지금:
VAR x REFCURSOR;
exec :x := my_fun( 'x' );
print :x;
X Y
---------- ----------
1 99
2 98
3 97
4 96
5 95
6 94
7 93
8 92
9 91
10 90
10 rows selected.
exec :x := my_fun( 'y' );
print :x;
X Y
---------- ----------
10 90
9 91
8 92
7 93
6 94
5 95
4 96
3 97
2 98
1 99
10 rows selected.
exec :x := my_fun( 'z' );
print :x;
ORA-00904: "Z": invalid identifier
ORA-06512: "TEST.MY_FUN", line 7
ORA-06512: line 1
00904. 00000 - "%s: invalid identifier"
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다