我现在遇到一个问题,请教大家: 有个表,专门存储用户定义的计算公式的,从表中取出计算公式后,想对该字符串解析,
如:公式 gs='(1+a1)*0.5/88+a2/78-a3-(a4*5+a5)+10';或者其他的类似的简单运算公式,想将a1,a2,a3,a4,a5这些不是常量的字符剥离出来,有什么比较简单通用的方法么?先谢谢大家!
如:公式 gs='(1+a1)*0.5/88+a2/78-a3-(a4*5+a5)+10';或者其他的类似的简单运算公式,想将a1,a2,a3,a4,a5这些不是常量的字符剥离出来,有什么比较简单通用的方法么?先谢谢大家!
解决方案 »
- 无法启动OracleDBconsole服务,错误997
- ORA-01092错误,救急!!
- rownum 之后 索引就全表扫描了 查询很慢
- oracle 使用plsql工具 对表结构添加新的列(not null)
- ORA-04031: unable to allocate 32 bytes of shared memory ("shared pool","insert into AppLog nolo...","sql area","kglhin: temp")
- 求oracle插入初始数据pl/sql语句优化
- ORACLE 9i的重大BUG
- 对于存储了很大量数据的数据库,如何进行备份策略?
- 请问怎样将这种情况在存储过程中插入进去?
- 如何从oracle数据库中的表生成一个XML文件??使用Java实现。
- 这个修改语句怎么写?
- 100分求救了,大家帮我看看数据链接的问题吧!
在PLSQL中,
用LENGTH计算出字符长度(也就是个数---一般情况,字符集不同有差异)----这个是我们的循环次数,
然后有个计数器NUM变量从一开始,然后用SUBSTR取每个字符,然后验证他是否是字母,若是另一个变量开始存值,一直到除了字母或者数字的情况这个变量的出的就是第一个变量。
不知道你名不明白....
v_count:=length(str)
for i in 1..v_count loop
v_str:=substr(str,i,1);
if ascii(v_str) >ascii('a') then
if ascii(v_str)<ascii('z') then
v_t:=v_str;
....
end if
end if......
大致伪代码如此,你们在看看又没有简单的方法
那用这样可以啊!
instr(gs, a_)判断有没有常量字符.update tbl set gs = replace(gs,'a_','代替字符') where gs like '%a_%'删除常量字符.