Cache SQL에서 올림 기능을 하는 CEIL 함수를 만들어 쓰고 싶은 경우에 다음과 같이 한번 해보세엽.
우선 ROUND라는 함수가 반올림을 해 주므로, 이 함수를 이용해서 적당한 Method를 추가해 줍니다.
Class User.SQLFunctions Extends %RegisteredObject [ProcedureBlock]
{
ClassMethod CEIL(var As %Numeric) As %Integer [ Language = cache, SqlName = CEIL, SqlProc ]
{
&sql(select distinct Round(:var+0.5,0) into :ceil from dual)
quit ceil
}
}
참고로, 위 CEIL 예제는 dual이라는 한 row를 가지는 테이블이 있다고 가정한 것입니다.
dual 테이블을 만들기 귀찮으신 분은, 아래와 같은 COS로 작성한 함수를 쓰시면 되겠습니다.
ClassMethod CEILCOS(var As %Numeric) As %Integer [ Language = cache, SqlName = CEIL, SqlProc ]
{
set ceil=$NUMBER(var+0.5,0)
quit ceil
}
즐코딩 하세엽~
|