我明白你的意思了 但我是写在存储过程里 不能不加引号 代码如下procedure getPwkPjtjxxList_Bydate_XZQ(CUR_OUT OUT cur_OUT)
is
v_Wdta number(5):=0;
v_Hb_Wdta number(4):=5;
begin
open CUR_OUT for
'select case when '||v_Wdta||' !=0 then '||(v_Hb_Wdta/v_Wdta)||' else 0 end as wdta from wq_sdwas_d where stcd=''309A5821''';end;在这里就不知道该如何处理了! 着急啊
is
v_Wdta number(5):=0;
v_Hb_Wdta number(4):=5;
begin
open CUR_OUT for
'select case when '||v_Wdta||' !=0 then '||(v_Hb_Wdta/v_Wdta)||' else 0 end as wdta from wq_sdwas_d where stcd=''309A5821''';end;在这里就不知道该如何处理了! 着急啊
解决方案 »
- 求解释 sql中字符串连接的问题
- solaris下自动创建oracle数据库
- sqlplus
- 如何批量建立远程实体视图?
- plsql7中如何导出sequence,function,packages,procedures,Synonyms
- 急~~在线求教一个行转列的方法!!!!
- 如何安装Oracle Developer 10g???
- 数据库倒入问题!!!!!!!!!!!!!!!!
- oracle 的存储过程错误处理怎么做?刚学多多关照
- 如果我有一个date字段,如何当我插入一条记录的时候这个字段自动生成系统默认日期?
- 执行SQL语句出错(报ORA-00922:缺少或无效选项)
- 建Oracle数据库的问题,一个库名对应多个表空间和数据文件,100分是少了点,望各位不吝赐教
那是因为v_Wdta 不是整数型, 所以v_Wdta 永远不会等于 整型的0.解决方法:
1. 利用exception handler处理, 发生除数为0的exception,就写另一个sql.
2. when '||v_Wdta||' !=0 改为 when '||v_Wdta||' !=0.00 , 这个方法不一定成功,试试~
Exec('select case when '+ '5' +' !=0 then (' + '3'+' /' + '5' + ') else 0 end as wdta from herd ')