Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Oracle > Вернуть в Delphi-процедуру значение полей после IN |
Автор: Matrex 25.10.2011, 11:28 |
Доброго времени суток коллеги! Подскажите можно ли вернуть в Delphi-процедуру значение полей после выполнения конструкции INSERT INTO для Oracle (необходимо получить значение идентификатора который будет сгенерирован триггером на стороне сервера при добавлении записи). Для работы с Oracle использую DOA. |
Автор: LSD 25.10.2011, 11:34 |
Из триггера ничего вернуть нельзя. Тут или на клиенте получать значение сиквенса, или написать функцию которая будет делать INSERT и возвращать значение. |
Автор: Matrex 25.10.2011, 11:42 |
Сейчас я так и делаю. Это просто вопрос оптимизации. Хотелось часть работы переложить на сервер что бы меньше "гонять" данные по сетке... Думал, что может сервак на INSERT INTO отвечает типа "все ок. я добавил следующие данные ... ... ... ...". А получается что нет... |
Автор: LSD 25.10.2011, 13:57 |
Автор: Zloxa 25.10.2011, 15:37 |
чтобы использовать returning, вовсе не обязательно insert в функцию заворачивать. Он и без функции прекрасно работает ![]() |
Автор: LSD 25.10.2011, 16:28 | ||
Если верить документации: ![]() там требуется указание INTO. Что там надо указать если это не PL/SQL и как это получить в программе? |
Автор: DimW 25.10.2011, 17:01 | ||||
анонимный блок:
ЗЫ. "без функции" - это не значит без PL/SQL. |
Автор: LSD 25.10.2011, 17:33 |
1. 2. Каждый раз компилировать анонимный PL/SQL блок, это явно плохая оптимизация. |
Автор: Zloxa 25.10.2011, 20:44 | ||
Бинд же!
|
Автор: Zloxa 25.10.2011, 21:05 | ||||||
Откуда, кстати, дровишки что прям таки "каждый раз"?
|
Автор: LSD 26.10.2011, 12:12 |
Этот ваш SQL Plus не показатель ![]() Я так и не смог из Java выполнить SELECT INTO, и у меня есть сильная уверенность, что без использования OCI это не провернуть. |
Автор: Zloxa 26.10.2011, 13:23 |
select into, в отличии от returning это чисто pl/slq-ная фишка. Озвученный ТС DOA использует OCI Не, мы конечно держим в уме, что в этой вашей Жаве все намного хуже чем в Делфи, но неужели же настолько ![]() |
Автор: LSD 26.10.2011, 14:27 | ||
returning тоже не работает, ошибку не выбрасывает, но возвращает фигню.
Но при это упускаете из виду, что драйвер пишет Oracle. |
Автор: Zloxa 26.10.2011, 14:34 | ||
Да, я тоже попробовал. Действительно ситуация весьма и весьма уныла. Но анонмный pl/sql блок как воркэраунд - вполне себе канает. Если уж на то пошло, то и Жава уже давно Оракл, неужели только лишь от этого печали должно бы стать меньше? |
Автор: LSD 26.10.2011, 15:00 | ||
Ты прав, все что пишет Оракл - УГ ![]() ![]() |
Автор: Zloxa 26.10.2011, 15:04 |
Эхххх, завиюую я тебе, LSD, по доброму. Ты таки еще молод духом, у тебя еще есть чем питать надежды..... |