oracle 报Ora-01008错误:oracle 并非所有变量都已绑定的原因.TO_number();动态执行select..into..语句时
2015-12-04 14:39
846 查看
1.sql_temp := 'UPDATE B38_back SET '||code||'=TO_NUMBER(nvl('||:NEW.BACAI||',0))+'||OnMonth || ' WHERE B0110= '''||:NEW.B0110||''' AND TO_CHAR(B38Z0,''YYYYMM'') = TO_CHAR(TO_DATE('''||:NEW.BACZ0||'''),''YYYY'')||''09''';
如果绿色处写到字符串里面,即不是变量,就会出现此错
例如如下:
sql_temp := 'UPDATE B38_back SET '||code||'=TO_NUMBER(nvl(:NEW.BACAI,0))+'||OnMonth || ' WHERE B0110= '''||:NEW.B0110||''' AND TO_CHAR(B38Z0,''YYYYMM'') = TO_CHAR(TO_DATE('''||:NEW.BACZ0||'''),''YYYY'')||''09''';
2.TO_number()要写到字符串中,加号也要写到字符串中,变量写外面
3.
sql_temp1:='SELECT nvl('||code1|| ',0) ' ||' from B38_back' || ' WHERE B0110= '''||:NEW.B0110||''' AND TO_CHAR (B38Z0,''YYYYMM'') = TO_CHAR(TO_DATE('''||:NEW.BACZ0||'''),''YYYY'')||''08''' ;
execute immediate sql_temp1 INTO OnMonth;
如绿色所示放入,不要再sql_temp1中写into语句
如果绿色处写到字符串里面,即不是变量,就会出现此错
例如如下:
sql_temp := 'UPDATE B38_back SET '||code||'=TO_NUMBER(nvl(:NEW.BACAI,0))+'||OnMonth || ' WHERE B0110= '''||:NEW.B0110||''' AND TO_CHAR(B38Z0,''YYYYMM'') = TO_CHAR(TO_DATE('''||:NEW.BACZ0||'''),''YYYY'')||''09''';
2.TO_number()要写到字符串中,加号也要写到字符串中,变量写外面
3.
sql_temp1:='SELECT nvl('||code1|| ',0) ' ||' from B38_back' || ' WHERE B0110= '''||:NEW.B0110||''' AND TO_CHAR (B38Z0,''YYYYMM'') = TO_CHAR(TO_DATE('''||:NEW.BACZ0||'''),''YYYY'')||''08''' ;
execute immediate sql_temp1 INTO OnMonth;
如绿色所示放入,不要再sql_temp1中写into语句
相关文章推荐
- AIX filesystemcache引发的Oracle事故
- Oracle的left join中on和where的区别
- oracle对象
- How to resolve ORA-19706 error when select from dblink
- Oracle存储过程例子游标异常
- 关于oracle时间格式to_date函数
- jsp + tomcat 连接Oracle数据实例
- oracle定时调用存储过程
- oracle的decode函数在mysql的实现
- Linux下oracle定时备份 ftp上传到指定机器
- oracle hints的用法总结
- oracle 触发器生成主键的
- Oracle Blob字段转换为String类型
- Oracle 自定义过程与函数
- [ORACLE]从两个简单的存储过程看绑定变量的重要
- CRS-4124: Oracle High Availability Services startup failed.
- [Oracle]设置Oracle随Linux系统开机启动
- Oracle OCM认证最低费用
- Oracle11gR2学习笔记汇总
- Oracle Listener 动态注册 与 静态注册