아래표처럼 계산식이 데이터로 들어 있습니다.
column |
25 / (( 0 + 0 + 0) /12 ) + 100 |
25 / 0 * 30/ 50 |
dbms_xmlgen.getxmltype 사용하여 수식의 값을 계산했었는데
위의경우처럼 제수가 0인경우가 문제가 되네요.
ORA-01476 제수가 0 입니다
위와같은 에러를 토해내면서 계산식을 실행하지 못하는데
이런경우는 어떤식으로 처리해야 하는건지 문의를 드립니다.
결과값이 0으로 나와도 상관은 없거든요..
고수님들의 고견을 여쭙니다.
* 계산수식은 다음처럼 구했습니다.
dbms_xmlgen.getxmltype ( 'SELECT ' || 컬럼 || ' FROM DUAL' ).extract('//text()') )
그냥 function 만들어서 쓰시는 게 나을듯합니다.
create function fc_calc(in_exp varchar2) return number is v_rtn number; begin execute immediate 'select ' || in_exp || ' from dual' into v_rtn; return v_rtn; exception when others then return 0; end; select fc_calc('25 / (( 0 + 0 + 1) /12 ) + 100') from dual union all select fc_calc('25 / (( 0 + 0 + 0) /12 ) + 100') from dual