Re: 3/4 to .75 (correction)
From: Marc <E.Mail_at_address.com>
Date: Fri, 25 Feb 2000 08:06:14 +0100
Message-ID: <8959qq$7d9$1_at_vkhdsu24.hda.hydro.com>
BEGIN
l_crs := dbms_sql.open_cursor;
END;
/
Date: Fri, 25 Feb 2000 08:06:14 +0100
Message-ID: <8959qq$7d9$1_at_vkhdsu24.hda.hydro.com>
Following function has been tested:
create or replace FUNCTION parse_expression(p_expression IN VARCHAR2) RETURN NUMBER IS
l_crs PLS_INTEGER; l_dummy PLS_INTEGER; l_number NUMBER;
BEGIN
l_crs := dbms_sql.open_cursor;
BEGIN
dbms_sql.parse(l_crs, 'BEGIN :value := ' || p_expression || ';
END;',dbms_sql.V7);
dbms_sql.bind_variable(l_crs, 'value', l_number);
l_dummy := dbms_sql.execute(l_crs);
dbms_sql.variable_value(l_crs, 'value', l_number);
dbms_sql.close_cursor(l_crs);
EXCEPTION
WHEN OTHERS THEN -- e.g. division by zero, value error, not a number,...
- don't forget to close the cursor
dbms_sql.close_cursor(l_crs);
- and return the error message to the calling application RAISE; END;
END;
/
Marc wrote in message <8958ef$5gd$1_at_vkhdsu24.hda.hydro.com>... Received on Fri Feb 25 2000 - 08:06:14 CET