oracle里如何动态执行字符串,如'2*8*0.2'
解决方案 »
- 求解释 sql中字符串连接的问题
- spool自动转码问题
- distinct和order by
- PL/SQL查询的问题
- 有关化工产品质量管理数据库设计
- 在视图里可不可以用sum(),group by......? 再现,急,高分请教
- 请教高手数据导入导出问题
- 那儿有Oracle 9i for winnt/2k下载?
- 忘记了exp时的密码,怎么imp回去?
- 求助:高并发的java接口项目执行存储过程导致ActiveMq堵塞,数据源不可用数量超高,以及最终Weblogic的server状态被更改为Failed
- 初学oracle forms6i------如何调试FORM,如何生成exe
- oracle9i 如何导出导入库结构、表结构?能否通过SQL语句实现?
L_N NUMBER;
BEGIN
EXECUTE IMMEDIATE 'select ' || '2*8*0.2' || ' FROM dual'
INTO L_N;
DBMS_OUTPUT.PUT_LINE(L_N);
END;
/输出: 3.2
2 formula varchar2(100);
3 mysql varchar2(100);
4 res varchar2(100);
5 begin
6 formula := '1+2*3/4';
7 mysql := 'select ' || formula || ' from dual';
8 execute immediate mysql into res;
9 dbms_output.put_line(res);
10 end ;
11 /
2.5PL/SQL 过程已成功完成。
/--LZ可以告诉你使用的环境,如是在Oracle开发中可以使用上面已提供的方法;
/--如在界面程序中使用,则可使用number临时变量(两两相乘,如是3个变量的话,先使前两数相乘得积后,与第3数再乘)来处理。SQL> select to_number('2')*to_number('8')*to_number('0.2') from dual;TO_NUMBER('2')*TO_NUMBER('8')*
------------------------------
3.2SQL>/--楼主也可以编一个小函数:输入:v1 varchar2(8),v2varchar2(8),输出为两字符串之积,类型为number(12,2)。
/--使用此函数可以递归调用若干个字符串。