Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / возвращаются не все записи / 10 сообщений из 10, страница 1 из 1
04.09.2006, 16:13
    #33962771
ivan2006
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
возвращаются не все записи
Помогите, пожалуйста!
Подключении к Ораклу 9. Почему-то выбираются не все строки, должно быть 39, а есть всего 10. Я заметил, что rs.getFetchSize() тоже возвращает 10. Не знаю, если ли связь или нет, но работать нормально не хочет.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Statement s = connection.createStatement();
	 try  {
		ResultSet rs = s.executeQuery(sql);
		System.out.println(rs.getFetchSize());
		ResultSetMetaData md = rs.getMetaData();
		 try  {
		 while  (rs.next()) { ++count; }
		System.out.println(count);
		}  catch  (SQLException e) {
			rs.close();
			s.close();
		}
         }  finally  {
		s.close();						
		connection.close();
	}
// а запрос такой:
// select 10 priority, sysdate start_date, 1 attempts, '23434' phone, 1.50 debt,
//  1  type from dual connect by rownum <  40 
В чем может быть проблема?
...
Рейтинг: 0 / 0
04.09.2006, 16:29
    #33962839
zurtax
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
возвращаются не все записи
select 10 priority, sysdate start_date
^^^^^ - это не может быть причиной?
...
Рейтинг: 0 / 0
04.09.2006, 16:38
    #33962872
ivan2006
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
возвращаются не все записи
похоже, что дело в запросе - он в sqlplus выдает почему-то 1 строку
...
Рейтинг: 0 / 0
04.09.2006, 16:52
    #33962919
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
возвращаются не все записи
http://asktom.oracle.com/pls/ask/f?p=4950:8:::::F4950_P8_DISPLAYID:12718072439781#36446039313575
select rownum from dual
connect by rownum < 10

would *NOT* work with "earlier releases". this is how i've read the above "this
is why THIS generator doesn't work in the ...".
Какая версия Oracle?
...
Рейтинг: 0 / 0
04.09.2006, 16:53
    #33962924
Timm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
возвращаются не все записи
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
 import  java.sql.*;

 class  test3
{
     public   static   void  main(String[] args)  throws  Exception
    {
         Class .forName("oracle.jdbc.driver.OracleDriver");
        Connection connection = DriverManager
                .getConnection("jdbc:oracle:thin:@localhost:1521:test", "tim", "t");
        Statement s = connection.createStatement();
         try 
        {
             int  count =  0 ;
            ResultSet rs = s.executeQuery(
                    "select 10 priority, sysdate start_date, 1 attempts, '23434' phone," 
                    + " 1.50 debt, 1 type from dual connect by rownum < 40");
            System.out.println(rs.getFetchSize());
             try 
            {
                 while  (rs.next()) { ++count; }
                System.out.println(count);
            }
             catch  (SQLException e)
            {
                rs.close();
                s.close();
            }
        }
         finally 
        {
            s.close();
            connection.close();
        }
    }
}
Код: plaintext
1.
 10 
 39 
Ora 10.2.0.1, драйвер тоже оттуда.
connect by level < 40 то же самое?
...
Рейтинг: 0 / 0
04.09.2006, 18:02
    #33963230
ivan2006
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
возвращаются не все записи
у меня 9.2.0.1. Друг на 10 пробовал, у него работает. А у меня в sql navigator работает - 39 строк, в sqlplus - 1 строка, в java-программе - 10 строк. :-(
...
Рейтинг: 0 / 0
04.09.2006, 18:10
    #33963265
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
возвращаются не все записи
Попробуй так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
SQL> select rownum from dual connect by rownum <  6 ;

    ROWNUM
----------
          1 

SQL> select * from (select rownum from dual connect by rownum <  6 );

    ROWNUM
----------
          1 
          2 
          3 
          4 
          5 
...
Рейтинг: 0 / 0
04.09.2006, 18:16
    #33963292
ivan2006
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
возвращаются не все записи
О, да! так работает везде одинаково. Спасибо всем!
Хотя все равно не понятно: почему?
...
Рейтинг: 0 / 0
04.09.2006, 18:26
    #33963320
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
возвращаются не все записи
ivan2006 wrote:

> О, да! так работает везде одинаково. Спасибо всем!
> Хотя все равно не понятно: почему?

ИМХО это не совсем честный способ получения требуемого количества записей. Он не
документирован и никто не собирается поддерживать одинаковую работу этой фичи в
разных версиях Oracle.

Как еще можно получить подобные записи, почитай
здесь , вопрос 11.
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
04.09.2006, 18:56
    #33963438
он же
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
возвращаются не все записи
Зачем использовать кривой способ ("connect by rownum < :X") для такого тупого запроса, если можно использовать легальный "where rownum < :X"
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / возвращаются не все записи / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]