Skip to Main Content

SQL & PL/SQL

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Sorting does not work with ROW_NUMBER () OVER (ORDER BY

SmidrebSep 14 2011 — edited Sep 14 2011
CREATE OR REPLACE PROCEDURE SP_SALES (
p_sales_id IN VARCHAR2,
p_rownnum_from IN NUMBER,
p_rownnum_to IN NUMBER,
p_sort_by IN VARCHAR2,
p_query OUT SYS_REFCURSOR,
)
AS
v_query VARCHAR2 (32000);
v_sort_list VARCHAR2(32000) ;
BEGIN

IF p_spv_sort_by IS NULL THEN
v_sort_list := 'given_name ASC ' ;
ELSE
v_sort_list :=p_spv_sort_by;
END IF ;

DBMS_OUTPUT.PUT_LINE ('v_sort_list '||v_sort_list);
OPEN p_query FOR
SELECT sales_id,
item_id,
order_num,
employee_name
,given_name
dept_id,
manager_name,
ROW_NUM
FROM
(SELECT x.*,
ROW_NUMBER () OVER (ORDER BY v_sort_list ) ROW_NUM
FROM (sales_id,
item_id,
order_num,
employee_name
,given_name
dept_id,
manager_name,
FROM order rvw,
sales pol,
emp ca,
WHERE pol.id = rvw.pr_order_id
AND ca.empid =pol.employee_id
AND status = 'SUP') x )
WHERE ROW_NUM BETWEEN p_rownnum_from AND p_rownnum_to;
-- ORDER by v_sort_list ;
DBMS_OUTPUT.PUT_LINE ('v_sort_list '||v_sort_list);

EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE ('EX ');
END;
END;
/
SHOW ERRORS


Sorting does not work. Am I doing something wrong here?

executing procedure using below
declare
x SYS_REFCURSOR;
y number;
BEGIN
SP_SALES('70159_502',1,5, 'GIVEN_NAME'||' ASC' ,:x);
--dbms_output.put_line (:x);
END;
This post has been answered by 32685 on Sep 14 2011
Jump to Answer
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Oct 12 2011
Added on Sep 14 2011
6 comments
1,004 views