[急]200分求函数中公式计算

njuzgj 2006-07-21 11:56:03
情形是这样的,
传入一个字符串 str:=q/100*5
用replace函数替换后为str2:=500/100*5,其为字符型的,我想要的结果是计算后的结果25
我用select to_number(str2) from dual是不对的,因为str2为字符型

哪位高手能给我指点一下啊,多谢!
...全文
213 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
njuzgj 2006-07-24
  • 打赏
  • 举报
回复
问题已经解决,谢谢天下有雪,和benny0526
rogerfhl 2006-07-22
  • 打赏
  • 举报
回复
mark
njuzgj 2006-07-21
  • 打赏
  • 举报
回复
/100*5不是固定的,这个公式是从表中取出来的,但每个公式里都有个q,里面的运算符有+ - * /以及()
简单的说就象JavaScript里的eval()函数所能实现的功能
多壮志 2006-07-21
  • 打赏
  • 举报
回复
问题描述不够,不过应该是easy类型。
太有钱了,真是羡慕啊。 easy ,帮顶,接分。
vc555 2006-07-21
  • 打赏
  • 举报
回复
如果/100*5是固定的,就不用把这部分定义成字符型的。
cenlmmx 2006-07-21
  • 打赏
  • 举报
回复
select to_number(q)/100*5 from dual 不行吗?
benny0526 2006-07-21
  • 打赏
  • 举报
回复
试验过了,是25没错
benny0526 2006-07-21
  • 打赏
  • 举报
回复
select to_number(substr(str2,1,instr(str2,'/',1)-1))/to_number(substr(str2,instr(str2,'/',1)+1,instr(str2,'*',1)-instr(str2,'/',1)-1))*to_number(substr(str2,instr(str2,'*',1)+1)) from dual;
guanshiyu123 2006-07-21
  • 打赏
  • 举报
回复
支持...天下有雪......
guanshiyu123 2006-07-21
  • 打赏
  • 举报
回复
我感觉楼主.如果试先把str2的值算出来....这时是一个值.....再select to_number(str2) from daul 这不就可以了吗....
snowy_howe 2006-07-21
  • 打赏
  • 举报
回复
我想LZ的意思是,公式是不固定的,有多个公式,用多个参数也不能完全解决问题。
我的通常做法是
存储的是一个SELECT语句,要得到结果,只要用EXECUTE IMMEDIATE就好了。
比如你的例子,不要传入q/100*5,而是传入“select q/100*5 from dual”
这时候再进行替换,替换后变成“select 500/100*5 from dual”
执行这个SQL语句,是可以得到结果的。
明白了吗?
qiekong 2006-07-21
  • 打赏
  • 举报
回复
既然是不固定的为什么不用多个参数传入那

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧