我在一个存储过程写如下的语句:if ls_dblink is not null then
ls_sql := 'insert into t_dsdzmx' || ls_dblink ||
'(dspc, dzlsh, sbpc, sblsh, fsrq, dzrq, tbsdm, sbbm, dwmc, tzny, ssrq,xzdm,
zmdm, je, hdfs, jffs, jfzt, jflx, zbz)||
values
(:1, :2, :3, :4, :5, :6, :7, :8, :9, :10, :11, :12, :13, :14, :15, :16, :17, :18, :19)';
execute immediate ls_sql
using (ln_dspc, ln_dzlsh, rec_data.dz_sbpc, rec_data.ys_sblsh, ld_sysdate, ld_jysj,
rec_data.dz_tbsdm, rec_data.dz_sbbm, rec_data.dj_dwmc, rec_data.dz_tzny,
rec_data.dz_ssrq, rec_data.dz_xzdm, rec_data.dz_zmdm, rec_data.dz_je, rec_data.ys_hdfs,
rec_data.ys_jffs, rec_data.ys_jfzt, rec_data.ys_jflx, '2');
end if; 然后编译时报错:Error: PLS-00320: 此表达式的类型声明不完整或格式不正确
Line: 505
Text: using (ln_dspc, ln_dzlsh, rec_data.dz_sbpc, rec_data.ys_sblsh, ld_sysdate, ld_jysj, rec_data.dz_tbsdm, rec_data.dz_sbbm, rec_data.dj_dwmc, rec_data.dz_tzny, rec_data.dz_ssrq, rec_data.dz_xzdm, rec_data.dz_zmdm, rec_data.dz_je, rec_data.ys_hdfs, rec_data.ys_jffs, rec_data.ys_jfzt, rec_data.ys_jflx, '2');Error: PL/SQL: Statement ignored
Line: 504
Text: execute immediate ls_sql请帮忙看看这是为什么呢?应该怎么修改?
ls_sql := 'insert into t_dsdzmx' || ls_dblink ||
'(dspc, dzlsh, sbpc, sblsh, fsrq, dzrq, tbsdm, sbbm, dwmc, tzny, ssrq,xzdm,
zmdm, je, hdfs, jffs, jfzt, jflx, zbz)||
values
(:1, :2, :3, :4, :5, :6, :7, :8, :9, :10, :11, :12, :13, :14, :15, :16, :17, :18, :19)';
execute immediate ls_sql
using (ln_dspc, ln_dzlsh, rec_data.dz_sbpc, rec_data.ys_sblsh, ld_sysdate, ld_jysj,
rec_data.dz_tbsdm, rec_data.dz_sbbm, rec_data.dj_dwmc, rec_data.dz_tzny,
rec_data.dz_ssrq, rec_data.dz_xzdm, rec_data.dz_zmdm, rec_data.dz_je, rec_data.ys_hdfs,
rec_data.ys_jffs, rec_data.ys_jfzt, rec_data.ys_jflx, '2');
end if; 然后编译时报错:Error: PLS-00320: 此表达式的类型声明不完整或格式不正确
Line: 505
Text: using (ln_dspc, ln_dzlsh, rec_data.dz_sbpc, rec_data.ys_sblsh, ld_sysdate, ld_jysj, rec_data.dz_tbsdm, rec_data.dz_sbbm, rec_data.dj_dwmc, rec_data.dz_tzny, rec_data.dz_ssrq, rec_data.dz_xzdm, rec_data.dz_zmdm, rec_data.dz_je, rec_data.ys_hdfs, rec_data.ys_jffs, rec_data.ys_jfzt, rec_data.ys_jflx, '2');Error: PL/SQL: Statement ignored
Line: 504
Text: execute immediate ls_sql请帮忙看看这是为什么呢?应该怎么修改?
解决方案 »
- orcale ORA-04098: 触发器 'SCOTT.TEST_PK'
- 救我。怎么在两条记录中取一条最新的?
- 求oracle10g for unixware
- lsnrctl start 无法启动监听,请帮忙看下,多谢各路大神了~
- 将Oracle的某些表导出到mysql中
- 求一条sql语句
- 第一次写从ORACLE数据库取数据的SQL语句,问题多多,大家帮忙指点!!在线等!!
- 问题,请帮忙看一下
- 急~!时间函数问题~!100分再线等
- pro*c滚动游标的使用问题,请高手回答,谢谢!
- oracle 10g 下database control里,维护页面下的 备份和恢复的使用
- 请问能否捕获sqlloader执行成功与否的返回值?如果能该如何捕获,请赐教,谢谢!~
Action: Check the spelling of all identifiers in the declaration. If necessary, move the declaration so that it makes no forward references.
using后面的变量都已经声明的了,而且其余的cur_data是一个游标来的,rec_data是游标的当前记录值来的,在using后面不可以使用的么???
还有‘2’要先声明一个字符串再赋值才可以的么?谢谢~
rec_data.dz_tbsdm, rec_data.dz_sbbm, rec_data.dj_dwmc, rec_data.dz_tzny,
rec_data.dz_ssrq, rec_data.dz_xzdm, rec_data.dz_zmdm, rec_data.dz_je, rec_data.ys_hdfs,
rec_data.ys_jffs, rec_data.ys_jfzt, rec_data.ys_jflx, '2');
把USING中的括号去掉试试。