简体   繁体   English

Informix java.sql.SQLException:在查询的任何表中找不到列(…)(或SLV未定义)

[英]Informix java.sql.SQLException: Column (…) not found in any table in the query (or SLV is undefined)

The query below is working without any problems in my java based sql Editor: 下面的查询在基于Java的sql编辑器中正常运行:

      begin work;
create SEQUENCE if not exists zahlpaketcounter start 1;
select zahlpaketcounter.nextval as counter,*
 from (
SELECT 
firma_nr
,zahlpaket.nummer
,zahlpaket.bezeichnung
,personenkonto.kontonummer
,personenkonto.bezeichnung
,zahlbewegung.op_nr
,zahlbewegung.zahlbetrag_druck
,fibu_beleg.archiv_nr
FROM integris.zahlbewegung
join zahlpaket on zahlbewegung.zahlpaket_id=zahlpaket.zahlpaket_id
join integris.personenkonto on zahlbewegung.personenkonto_id=personenkonto.personenkonto_id
join integris.opbewegung on  zahlbewegung.opbewegung_id=opbewegung.opbewegung_id
join integris.fibu_beleg on opbewegung.fibu_beleg_id=fibu_beleg.fibu_beleg_id
join integris.firma on zahlpaket.firma_id = firma.firma_id
where 1=1
and zahlbewegung.zahlbetrag_druck >=0
order by nummer,personenkonto.kontonummer,zahlbewegung.op_nr
);
drop sequence zahlpaketcounter;
commit work;

when I use in it java: 当我在Java中使用它时:

        sql=getTextResource(this,"sql/getZahlläufe.sql");
        fibustmt.execute(sql);

the execute method fails with: execute方法失败,并且:

 java.sql.SQLException: Column (zahlpaketcounter) not found in any table in the query (or SLV is undefined).

Why? 为什么? Any Ideas? 有任何想法吗?

Seems not possible to use multiple statements with execute(). 似乎无法将多个语句与execute()一起使用。 You should use addBatch() and executeBatch() but not with a SELECT. 您应该使用addBatch()和executeBatch(),但不能与SELECT一起使用。 It works with 3 execute(). 它与3 execute()一起使用。

String sqlQ="create SEQUENCE if not exists zahlpaketcounter start 1";
PreparedStatement pstmt = cnx.prepareStatement();
pstmt.execute();
sqlQ="SELECT ...";
pstmt = cnx.prepareStatement();
pstmt.execute();
sqlQ="drop SEQUENCE if exists zahlpaketcounter";
pstmt = cnx.prepareStatement();
pstmt.execute();

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM