그냥 쿼리만으로는 안되구요.
변형시킨 식을 가지고 execute immediate 를 이용하셔야 합니다.
식을 입력받아 값을 리턴하는 함수를 하나 만드시는게 좋겠네요.
CREATE OR REPLACE FUNCTION f_calculation(sCalc VARCHAR2)
RETURN NUMBER IS
sSql VARCHAR2(100);
nRtn NUMBER;
BEGIN
sSql := 'SELECT ' || sCalc || ' FROM dual';
EXECUTE IMMEDIATE (sSql) INTO nRtn;
RETURN nRtn;
EXCEPTION
WHEN OTHERS THEN
RETURN Null;
END;
/
SELECT f_calculation('1000*3') v FROM dual;
by 정민호
[2010.07.28 13:05:01]
감사합니다.
그런데... FUNCTION 이 불가능하다고 하네요. 그래서 LANGUAGE 에서 LOOP 돌면서 계산해야되게어요. ^^
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.