Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Oracle > INSERT странно работает


Автор: darkvivi 10.10.2013, 22:15
 Всем доброго времени суток! Столкнулся с очень странной проблемой: команда Insert добавляет строку не в самый конец таблицы, а в середину... 
 С чем это может быть связано? 

Автор: Zloxa 10.10.2013, 22:24
Цитата(darkvivi @  10.10.2013,  23:15 Найти цитируемый пост)
 С чем это может быть связано?

с тем, что у таблицы нет конца и середины

Автор: darkvivi 10.10.2013, 22:25
 Я проверил в SQL Developer, всё работает, а вот с таблицей нет..

Автор: Zloxa 10.10.2013, 22:28
Цитата(darkvivi @  10.10.2013,  23:25 Найти цитируемый пост)
Я проверил 

Ты не правильно проверил.
Строки в таблице хранятся не упорядочено.

Автор: darkvivi 10.10.2013, 22:29
 Ого) ясно) для упорядоченности я использую PL_ID... или даже так нельзя упорядочить строки? + ещё иногда появляются две одинаковые строки при добавлении одной.. smile 

Автор: Zloxa 10.10.2013, 22:32
Упорядочить строки можно при выводе, используя кляузуhttp://docs.oracle.com/cd/E11882_01/server.112/e41084/statements_10002.htm#i2168299

Автор: darkvivi 10.10.2013, 22:34
 А, пожалуйста, можно примерчик кода, чтобы разобраться...)
 Я делаю так: сначала INSERT, потом - обновляем таблицу SELECTом из вновь обновлённой базы...учитывая этот самый инсерт, использую PL_ID для того, чтобы была упорядоченность..

Автор: Zloxa 10.10.2013, 22:50
по ссылке есть много примерчиков

Автор: darkvivi 10.10.2013, 22:58
Код

SELECT PL_ID, PL_CODE, PL_NAME, PL_SOMETHING from PL_TABLE order by PL_ID

Типа такого?

Пишет, что "SQL command not properly ended"

Почему он сортирует так:
1
10
11
2
3
4
5?

Автор: Zloxa 10.10.2013, 23:06
Цитата(darkvivi @  10.10.2013,  23:58 Найти цитируемый пост)
Почему он сортирует так:

Потому что у тебя pl_id строка. А строка '2' больше строки '11'

Автор: darkvivi 10.10.2013, 23:09
То есть, числами отсортировать не получится? :( 

Автор: Zloxa 10.10.2013, 23:11
получится, но как это делать тебе еще знать рано. Тебе для начало надо определиться pl_id у тебя должен иметь строковой или же числовой тип

Автор: darkvivi 10.10.2013, 23:29
 То есть - varchar или number? 
 Конечно, выбираю number...ааа, понятно, если number, то сортирует числами, а если varchar, то строчками...
 Хорошо, что хоть что-то проясняется  smile 
 Итак, я поменял varchar на number, теперь сортируется по числам smile  
 
Огромнейшее спасибо!!!)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)