請在 ORACLE 中。
'ORDER BY' 陳述句中是否可以有變數?
所以我目前正在創建一個我需要動態排序的程序。有沒有辦法做到這一點?
CREATE OR REPLACE PROCEDURE TEST1
vorder varchar(250);
...
vOrder := 'number';
FOR o IN (SELECT * FROM TABLENAME order by vOrder)
LOOP
-- Some stuff ---
END LOPP;
....
uj5u.com熱心網友回復:
真正擁有動態 order by 子句而不是僅僅擁有 Alex 建議的預定義選項串列的唯一方法是使用動態 sql 游標。
TYPE curType IS REF CURSOR;
vCur curType;
vRec tablename%ROWTYPE;
vOrd VARCHAR2(250) := 'column';
BEGIN
OPEN vCur FOR 'SELECT * FROM tablename ORDER BY '||vOrd';
LOOP
FETCH vCur INTO vRec;
EXIT WHEN cur%NOTFOUND;
END LOOP;
CLOSE vCur;
END;
/
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/489463.html
