#java #android #oracle #jdbc
#java #Android #Oracle #jdbc
Вопрос:
Я создаю веб-портал через Android, и запрос, который я выполняю через драйверы JDBC, возвращает 0, где данные не должны быть равны нулю.
Это запрос:
ResultSet set = statement.executeQuery("select it.itcod, it.itnam, it.packn, it.tradp, "
"sum(nvl(itd.slbox,0) - nvl(itd.srbox,0) - nvl(itd.brbox,0) - nvl(itd.gsbox,0)) as sbox, "
"sum(nvl(itd.slbbx,0) - nvl(itd.srbbx,0) - nvl(itd.brbbx,0) - nvl(itd.gsbbx,0)) as sbbx, "
"SUM(NVL(itd.PRBOX,0) - NVL(itd.RPBOX,0) - NVL(itd.TRBOX,0)) as pbox, "
"SUM(NVL(itd.PRBBX,0) - NVL(itd.RPBBX,0) - NVL(itd.TRBBX,0)) as pbbx "
"from items it "
"LEFT join item_daily itd "
"on (it.cocod = itd.cocod "
"and it.itcod = itd.itcod "
"and ITD.ddate between " fdate " and " tdate ")"
"WHERE IT.COCOD = " COCOD
"AND IT.DCODE = " DCODE
"AND NVL(IT.FREZE,'N')!='Y' "
"group by it.cocod, it.itcod, it.itnam, it.packn, "
" it.tradp, it.pkqty, it.dcode, it.freze, "
" it.ishow, it.sltax, it.dcont, it.mcode, "
" it.nwcod "
"order by itnam ");
Я пытался использовать resultset metadata, но это тоже не работает.
Комментарии:
1. можете ли вы запустить его через sql plus / sql developer и посмотреть, дает ли вам желаемый результат?
2. я запустил его через инструмент keep, и это дает мне желаемый результат, поэтому я точно знаю, что данных там нет @pahariayogi
3. Имейте в виду, что если fdate, tdate, COCOD или DCODE получены из пользовательского ввода, то запрос подвержен атаке SQL-инъекцией. Рассмотрите возможность использования
PreparedStatement
.
Ответ №1:
вы должны быть осторожны с этой строкой
fdate " and " tdate
потому что вы должны использовать вот так:
" .. to_date('" fdate "','***your_date_format') and to_date('" fdate "','***your_date_format')"
Комментарии:
1. я запускал этот запрос через инструмент сохранения, и данные возвращаются нормально.. я тоже пробовал это, но это приводит к другим исключениям
2. вы пробовали мое решение?
3. Я сделал, все еще возвращая ноль, эта ошибка действительно поставила в тупик мое приложение, хотелось бы любых других решений
4. в чем именно заключается ваш запрос? можете ли вы написать это, запустив в редакторе? без параметров?