SQL字符串转换到数字并计算

[复制链接]
查看11 | 回复9 | 2012-10-9 18:09:19 | 显示全部楼层 |阅读模式
如何将'1*1*1*1*.5*.124067*3.3'转换到数字并计算结果呢
select '1*1*1*1*.5*.124067*3.3' from dual输出
1*1*1*1*.5*.124067*3.3
select 1*1*1*1*.5*.124067*3.3 from dual输出
0.20471055
我想要的结果是
select '1*1*1*1*.5*.124067*3.3' from dual输出
0.20471055
如何实现呢?

回复

使用道具 举报

千问 | 2012-10-9 18:09:19 | 显示全部楼层
动态SQL,或者
SQL> select dbms_aw.eval_number('1*1*1*1*.5*.124067*3.3') from dual
2/

DBMS_AW.EVAL_NUMBER('1*1*1*1*.
------------------------------

0.20471055
回复

使用道具 举报

千问 | 2012-10-9 18:09:19 | 显示全部楼层
dingjun123 发表于 2012-9-26 11:49
动态SQL,或者
SQL> select dbms_aw.eval_number('1*1*1*1*.5*.124067*3.3') from dual
2/

好像不能执行,我自己写了个简单的函数给实现了;create or replace function sumbystr(var in varchar2) return number is
Result number;
v string(2000);
begin
v := 'select '||var||' from dual';
execute immediate v into Result;
return(Result);
end sumbystr;复制代码
回复

使用道具 举报

千问 | 2012-10-9 18:09:19 | 显示全部楼层
select dbms_aw.eval_number('1*1*1*1*.5*.124067*3.3') from dual;
回复

使用道具 举报

千问 | 2012-10-9 18:09:19 | 显示全部楼层
ygmpkk 发表于 2012-9-26 11:57
好像不能执行,我自己写了个简单的函数给实现了;

怎么可能不能执行,我都是通过免子学到这一招的
回复

使用道具 举报

千问 | 2012-10-9 18:09:19 | 显示全部楼层
ygmpkk 发表于 2012-9-26 11:57
好像不能执行,我自己写了个简单的函数给实现了;

你这方法也不错,不过兔子给的方法我们很多人都用过,是可以执行没问题的
你看看是不是你没权限访问这个包还是你打错字母了?
回复

使用道具 举报

千问 | 2012-10-9 18:09:19 | 显示全部楼层
lastwinner 发表于 2012-9-28 02:50
你这方法也不错,不过兔子给的方法我们很多人都用过,是可以执行没问题的
你看看是不是你没权限访问这个 ...

怎么看有没有权限访问一个包?比如这个dbms_aw。请赐教!
回复

使用道具 举报

千问 | 2012-10-9 18:09:19 | 显示全部楼层
你啥版本啊
回复

使用道具 举报

千问 | 2012-10-9 18:09:19 | 显示全部楼层
hongjingwei 发表于 2012-9-28 10:20
怎么看有没有权限访问一个包?比如这个dbms_aw。请赐教!

试着访问一下,要是oracle说不存在或者没权限,那就是没权限啦
回复

使用道具 举报

千问 | 2012-10-9 18:09:19 | 显示全部楼层
有没有权限啊
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行