1

我的 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'')';

但是 binding-variable 似乎有问题:1,如何解决?抛出的错误是java.sql.SQLException: ORA-01006

4

1 回答 1

2

试试这样:

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%';
于 2012-04-24T05:59:35.527 回答