пр-ра с командой "insert into ..." вставляет не вс

Запросы, планы, оптимизация запросов, ...

Модераторы: kdv, CyberMax

Ответить
MaximAlist
Сообщения: 2
Зарегистрирован: 20 сен 2005, 13:55

пр-ра с командой "insert into ..." вставляет не вс

Сообщение MaximAlist » 20 сен 2005, 14:40

Здравствуйте!
Пишу на IB7.5, столкнулся с непонятным эффектом.
Упрощенно ситуация такая:
Есть таблицы "t1" и "t2" идентичные по структуре.
Есть пр-ра "p1" содержащая команду: "insert into t2 select * from t1"
Всё работает как и должно.
Далее -
1) Добавляем новое поле ("f10") в обе таблицы.
2) Заполняем значения поля "f10" в записях таблицы "t1" значениями, коммитим.
3) процедура "p1" начинает работать некорректно, т.е. во всех записях, которые она заносит в таблицу "t2", значение поля "f10"=null!
хотя значения всех остальных полей записываются правильно!

Интересно, что когда вместо запуска процедуры я вручную выполняю команду "insert into t2 select * from t1" , записываются все поля, включая "f10".
Может быть кто-нибудь подскажет с чем это связано и где ещё ждать таких сюрпризов??

З.Ы. Упомянутая пр-ра ничего "лишнего" не делает, других пр-р не вызывает. Триггеров нет.

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Сообщение Dimitry Sibiryakov » 20 сен 2005, 15:20

Процедуру надо перекомпилировать. При ее создании полей было меньше и с тех пор она работает только с ними.

MaximAlist
Сообщения: 2
Зарегистрирован: 20 сен 2005, 13:55

Сообщение MaximAlist » 20 сен 2005, 15:57

Dimitry Sibiryakov писал(а):Процедуру надо перекомпилировать. При ее создании полей было меньше и с тех пор она работает только с ними.
Спасибо, помогло.
Оказывается - не знал простых вещей :(

pastor
Сообщения: 12
Зарегистрирован: 17 мар 2005, 16:27

Re: пр-ра с командой "insert into ..." вставляет н

Сообщение pastor » 12 окт 2005, 10:07

MaximAlist писал(а): Есть пр-ра "p1" содержащая команду: "insert into t2 select * from t1"

Может быть кто-нибудь подскажет с чем это связано и где ещё ждать таких сюрпризов??
ждать сюрпризов во всех местах, где используется "*"
один из элементарных тестов на профпригодность разработчика БД

Ответить