this piece of code is the second PreparedStatement in a bean function.
All code before it seems to work perfectly. no amount of tinkering
with this one will avoid an SQLException "parser: parse error at end
of input" on the executeQuery();
The code executes fine in psql.
db is 7.3.2. java is sun hotspot 1.41.
Any ideas why the code fails parsing?
<code>
String strSQL;
String strSQL_SalesAndReturns;
PreparedStatement pstmtSR = null;
ResultSet results = null;
String strStockid=null;
String strGroup=null;
String strDesc=null;
String strType=null;
int iSales=0;
int iReturns=0;
String strSQL_SalesAndReturns =
"SELECT stock, " +
" p.description, " +
" p.stockgroup, " +
" s.saleqty, " +
" r.returned " +
" FROM " +
" (SELECT stockid as stock, " +
" sum(saleqty) as saleqty " +
" FROM dailysales s " +
" WHERE s.saledate = '2003-08-22' " +
" AND s.custid = ' 5' " +
" GROUP BY s.stockid ) AS s " +
" FULL OUTER JOIN " +
" (SELECT stock, " +
" ordercurrent as returned " +
" FROM orderlines ol " +
" WHERE ol.theorder = 'A 5 12003-08-15' " +
" AND ol.TYPE='R') as r " +
" USING (stock) " +
" INNER JOIN stockitems p ON (p.id=r.stock) " +
" WHERE p.status='N' " +
" ORDER BY ";
strSQL = strSQL_SalesAndReturns;
pstmtSR = livedb.prepareStatement(strSQL);
// global character switch for grouping
switch(cSelectOrder) {
case cDESCRIPTION_SEQ : strSQL = strSQL +
"p.description;";
break;
case cGROUP_SEQ : strSQL = strSQL +
"p.stockgroup,p.description;";
break;
case cCODE_SEQ : strSQL = strSQL + "stock;";
break;
default : strSQL = strSQL +
"p.description;";
break;
}
results = pstmtSR.executeQuery();
while( results.next() ) {
strStockid = results.getString(1);
strDesc = results.getString(2);
strGroup = results.getString(3);
iSales = results.getInt(4);
iReturns = results.getInt(5);
... code to process resultset.
</code>