现在我将公式存在一个表中:name1+name2-name3,我在存储过程中取出这个公式用varchar保存,并且取到name1-name3这三个东西对应的数据具体值value1、value2、value3,我怎么把值带到公式中得到运算后的结果,请各位大侠指教,谢谢
解决方案 »
- oracle在linux下安装
- 联合主键和逻辑主键的优劣,多表同样一个主键是好还是坏?
- php调用oracle返回记录集
- 同一张表查询每个相同STATION_CODE最大STATION_NUM的记录集
- 请教AIX上Oracle9i内存泄漏问题,急!
- 用sql*plus登录错误:监听进程不能解析在连接描述符中给出的service_name
- 我修改了计算机名称后,oracle8.1.6数据库登录不进去了
- 特简单的菜鸟问题:这个MS SQL触发器转到oracle该怎么写呢
- 请问如何取出date型数据的所有部分
- oracle
- Oracle如何利用SQL实现报表的同比环比功能?
- Oracle 数据库优化
--建表
create table t(id int,name1 varchar2(20),name2 varchar2(20),name3 varchar2(20),cal varchar2(60));
insert into t values(1,20,30,40,'name1+name2-name3');
--测试
declare
v_sql varchar2(1000);
v_val varchar2(60);
v_result number;
v_id int :=1;
begin
select 'select cal from t where id='||v_id into v_sql from dual;
execute immediate v_sql into v_val;
v_val:='select '||v_val||' from t where id='||v_id;
execute immediate v_val into v_result;
dbms_output.put_line('v_result:'||v_result);
end;
/
--结果
/*
v_result:10
*/
例如
declare
formula varchar2(100) := ':name1+:name2-:name3';
sqltxt varchar2(100);
result int;
begin
sqltxt := 'select ' || formula || ' from dual';
execute immediate sqltxt into result using 1,2,3;
dbms_output.put_line(result);
end;