powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Запрос на вставку записи с ключевым словом returning
13 сообщений из 13, страница 1 из 1
Запрос на вставку записи с ключевым словом returning
    #33507703
I am Razor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа, често говоря заипалсо прообовать выполнить insert в БД с возвращением ключа(генерящегося триггером)
Пишу так:
Код: plaintext
1.
2.
3.
4.
PreparedStatement Ins = Conn.prepareStatement("insert into table(..,..)  values(..,..) returning KeyField into ?",Statement.RETURN_GENERATED_KEYS);
Ins.execute();
 int  ID=Ins.getResultSet().getInt( 1 );
Ins.close();
Говорит, что не все переменные привязаны, или что "неподдерживаемая функция"
...
Рейтинг: 0 / 0
Запрос на вставку записи с ключевым словом returning
    #33507745
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какая база?
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Запрос на вставку записи с ключевым словом returning
    #33507755
Фотография Penkov Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в sql нифига не секу, но сдается мне, надо begin ... end добавить, по
крайней мере у нас именно так запросы сделаны

-----------------------------------
The Bat + My Gate

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Запрос на вставку записи с ключевым словом returning
    #33507787
I am Razor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БД - Oracle
begin ... end; вставил - та же фигня: "не поддерживаемая функция"
В чём дело-то?????
...
Рейтинг: 0 / 0
Запрос на вставку записи с ключевым словом returning
    #33507794
I am Razor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может надо CallableStatement использовать??, сдаётся мне, что он begin'ы должен понимать...
...
Рейтинг: 0 / 0
Запрос на вставку записи с ключевым словом returning
    #33507817
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
/topic/255165#2285871

Откомментарь там второй, рабочий запрос.
...
Рейтинг: 0 / 0
Запрос на вставку записи с ключевым словом returning
    #33507884
I am Razor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Благодарю, я разобрался в чём дело: забыл поставить ";" после знака "?" :)
мдаа, видимо, пятница сёдня...
...
Рейтинг: 0 / 0
Запрос на вставку записи с ключевым словом returning
    #33567813
Pane
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
I_am_Razor, какая у вас версия JDK?
Можете ли выложить работающий код разрешения вашей проблемы... пожалуйста!
...
Рейтинг: 0 / 0
Запрос на вставку записи с ключевым словом returning
    #33568843
I am Razor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да запросто!
Код: plaintext
1.
2.
3.
4.
5.
6.
//sb - это StringBuffer, в котором ВЫ можете собрать свой зарос с returning
CallableStatement ST = Conn.prepareCall("begin\n"+sb.toString()+"\nend;");
ST.registerOutParameter( 1 ,Types.NUMERIC);
ST.execute();
ST.close();
ST= null ;
Вот и ФСЁ! Главное, чтоб в конце была ";", т.к. если база данных - Oracle, то надоть чтоб он понял, что если есть begin и end, то это уже не запрос, а блок PL!
...
Рейтинг: 0 / 0
Запрос на вставку записи с ключевым словом returning
    #33568997
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
I am RazorCallableStatement ST = Conn.prepareCall("begin\n"+sb.toString()+"\nend;");
Если не ошибаюсь, в этом коде упущен один принципиальный момент.

Код: plaintext
 + sb.toString() + ";" + "\nend;")
...
Рейтинг: 0 / 0
Запрос на вставку записи с ключевым словом returning
    #33569477
Pane
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
I_am_Razor, вы же говорили, что у вас получилось это сделать с использованием PreparedStatement. Не могли ли вы выложить код с использованием именно этого компонента?
Спасибо!
...
Рейтинг: 0 / 0
Запрос на вставку записи с ключевым словом returning
    #33569589
I am Razor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, вот с PreparedStatement ничего не получилось. Используйте класс CallableStatement.
...
Рейтинг: 0 / 0
Запрос на вставку записи с ключевым словом returning
    #33569613
I am Razor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer I am RazorCallableStatement ST = Conn.prepareCall("begin\n"+sb.toString()+"\nend;");
Если не ошибаюсь, в этом коде упущен один принципиальный момент.

Код: plaintext
 + sb.toString() + ";" + "\nend;")

Вообще-то нет: строка sb может содержать запрос с ретурнинг, где после знака вопросика стоит ";"(по крайней мере у меня так сделано), но можно точку с запятой поставить явно с prepareCall(тогда её нужно убрать из запроса :))
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Запрос на вставку записи с ключевым словом returning
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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