使用Oracle的存储过程计算字符串算术表达式
3个回答
推荐于2017-11-25
展开全部
CREATE OR REPLACE FUNCTION Compute( p_In_str varchar)
RETURN NUMBER
IS
v_RESULT NUMBER;
v_sql varchar(100);
BEGIN
-- 拼动态 SQL.
v_Sql := 'SELECT ' || p_In_str || ' FROM dual';
-- 执行动态 SQL, 并将结谨码尘果存储到变量中.
EXECUTE IMMEDIATE ( v_Sql ) INTO v_RESULT ;
-- 返回.
RETURN v_RESULT;
END Compute;
/
SQL> SELECT
2 Compute('2+2') A,
3 Compute('2-2') B,
4 Compute('2*2') C,
5 Compute('2/2') D
6 FROM
7 dual;
A B C D
---------- ---------- ---------- ----------
4 0 4 1
SQL> SELECT
2 Compute('2.5 + 2.5') 模闹A,
3 Compute('2.5 - 2') B,
4 Compute('2.5 * 2.5') C,
5 Compute('2.5/2') D
6 FROM
祥禅7 dual;
A B C D
---------- ---------- ---------- ----------
5 .5 6.25 1.25
是要上面这种效果么?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询