动态 PLSQL 中的错误绑定变量
Posted
技术标签:
【中文标题】动态 PLSQL 中的错误绑定变量【英文标题】:Error binding variable in dynamic PLSQL 【发布时间】:2012-04-24 00:34:26 【问题描述】:我的 sqlQuery 是这样的:
sqlQuery := 'SELECT sa.nombre_archivo, sha.registrosok, sha.registroserroneos,'||
' sha.registrosinconsistentes,'||
' (sha.registrosok+sha.registroserroneos+sha.registrosinconsistentes),'||
' sha.fechaprocesamiento'||
' FROM src_historialarchivo sha, src_archivo sa, src_usuario su'||
' WHERE sa.idarchivo = sha.idarchivo'||
' AND sa.nombre_archivo LIKE ''%:1%'''||
' AND sa.idusuario = su.idusuario'||
' AND isvalidrange(sha.fechaprocesamiento,:2,:3) = ''T'''||
' ORDER BY to_date(sha.fechaprocesamiento, ''DD/MM/YYYY'')';
但是绑定变量:1
似乎有问题,如何解决?
抛出的错误是java.sql.SQLException: ORA-01006
【问题讨论】:
【参考方案1】:试试这样:
sqlQuery := 'SELECT sa.nombre_archivo, sha.registrosok, sha.registroserroneos,'||
' sha.registrosinconsistentes,'||
' (sha.registrosok+sha.registroserroneos+sha.registrosinconsistentes),'||
' sha.fechaprocesamiento'||
' FROM src_historialarchivo sha, src_archivo sa, src_usuario su'||
' WHERE sa.idarchivo = sha.idarchivo'||
' AND sa.nombre_archivo LIKE :1'||
' AND sa.idusuario = su.idusuario'||
' AND isvalidrange(sha.fechaprocesamiento,:2,:3) = ''T'''||
' ORDER BY to_date(sha.fechaprocesamiento, ''DD/MM/YYYY'')';
execute immediate sqlQuery using '%abc%';
【讨论】:
感谢工作! ...为什么绑定变量在引号之间无法识别?以上是关于动态 PLSQL 中的错误绑定变量的主要内容,如果未能解决你的问题,请参考以下文章