TRy something like this ... CREATE OR REPLACE PACKAGE My_Dynamic_Stuff IS v_result NUMBER; -- PROCEDURE eval_this (pi_string IN VARCHAR2); END My_Dynamic_Stuff; /
CREATE OR REPLACE PACKAGE BODY My_Dynamic_Stuff IS -- PROCEDURE eval_this (pi_string IN VARCHAR2) IS BEGIN RTRIM(pi_string,';') || '; end;'; END eval_this; -- END My_Dynamic_Stuff; / Here is a test ... SQL> get raj_test 1 declare 2 my_str varchar2(100); 3 begin 4 dbms_output.enable; 5 my_dynamic_stuff.eval_this('1 + 1 + 1 + 1'); 6 dbms_output.put_line ('"1 + 1 + 1 + 1" evaluates to : ' || to_char(my_dynamic_stuff.v_result)); 7 -- 8 my_dynamic_stuff.eval_this('1 + (2 - 3)/4 + 5 / 4 + (6 + 7) / ( 5 + 5 + 0)'); 9 dbms_output.put_line ('"1 + (2 - 3)/4 + 5 / 4 + (6 + 7) / ( 5 + 5 + 0)" evaluates to : ' || to_char(my_dynamic_stuff.v_result)); 10* end; SQL> @raj_test "1 + 1 + 1 + 1" evaluates to : 4 "1 + (2 - 3)/4 + 5 / 4 + (6 + 7) / ( 5 + 5 + 0)" evaluates to : 3.3 PL/SQL procedure successfully completed. SQL> HTH some Raj ______________________________________________________ Rajendra Jamadagni MIS, ESPN Inc. Rajendra dot Jamadagni at ESPN dot com Any opinion expressed here is personal and doesn't reflect that of ESPN Inc. QOTD: Any clod can have facts, but having an opinion is an art!
*******************************************************************************1 This e-mail message is confidential, intended only for the named recipient(s) above and may contain information that is privileged, attorney work product or exempt from disclosure under applicable law. If you have received this message in error, or are not the named recipient(s), please immediately notify ESPN at (860) 766-2000 and delete this e-mail message from your computer, Thank you. *******************************************************************************1