powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / INSERT из SELECT'а
13 сообщений из 13, страница 1 из 1
INSERT из SELECT'а
    #40022548
Sarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте

Досталась небольшая процедура на PL/SQL которую необходимо дёргать из джавы. Для простоты дёрганья яя предлоил прекрасное решение: переписать поцедуру в функцю и возвращать рефкурсор. И всё мы переписали и были очень счастливы что оракл такой классный.

Пока не обнаружилось, что функция иногда делает INSERT. Оракл, сказал,что инсерт из селекта делать нелья.
Нельзя из селекта создавать и удалять таблицы. Апдейтить не пробовал, но уверен. что тоже нельзя. Если бы не удалёнка меня бы уже побили точно, потому что все эти операции функция наша делать скоро захочет((

Вот

Подскажите, пожалуйста, можно ли как-то сей запрет обойти? может возможно запустить из функции кусок SQL в новом стейтменте? Или вруг есть средства удалённого вызова ХП которые можно задействовать локально из PL/SQL?
...
Рейтинг: 0 / 0
INSERT из SELECT'а
    #40022549
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Перепишите обратно в процедуру, ref cursor джаве возвращайте через out-параметр.
...
Рейтинг: 0 / 0
INSERT из SELECT'а
    #40022551
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
INSERT из SELECT'а
    #40022554
Sarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо!
Интересный вариант. Проблема в том, что с джавой тоже не всё так просто. SELECT очень бы здорово облегчил жизнь.
...
Рейтинг: 0 / 0
INSERT из SELECT'а
    #40022556
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sarin
Спасибо!
Интересный вариант. Проблема в том, что с джавой тоже не всё так просто. SELECT очень бы здорово облегчил жизнь.

Что там такого сложного-то?
...
Рейтинг: 0 / 0
INSERT из SELECT'а
    #40022558
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но вообще запрет на DML в контексте SELECT носит концептуальный характер.
Выполняя seleсt Вы вправе ожидать, что не измените/не испортите/не удалите данные - это жеж просто select.
Обмануть можно автономной транзакцией, но это будет скорее из разряда самообманов и породит больше проблем чем решит.
...
Рейтинг: 0 / 0
INSERT из SELECT'а
    #40022560
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sarin
Здравствуйте

Досталась небольшая процедура на PL/SQL которую необходимо дёргать из джавы. Для простоты дёрганья яя предлоил прекрасное решение: переписать поцедуру в функцю и возвращать рефкурсор. И всё мы переписали и были очень счастливы что оракл такой классный.

Пока не обнаружилось, что функция иногда делает INSERT. Оракл, сказал,что инсерт из селекта делать нелья.


Функцию с INSERT нельзя вызывать из SQL предложения. Так что похоже функция вызывается через SELECT функция FROM DUAL; Вызывай нормально через PL/SQL: Calling PL/SQL from Java .

SY.
...
Рейтинг: 0 / 0
INSERT из SELECT'а
    #40022584
Sarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну да, я так и понял, что это что-то очень концептуальное.

Выов функции делется так:
Код: plsql
1.
SELECT * FROM table(my_fun())


написать вызов ХП из джавы не проблема. только до джавы этой добраться надо. а потом водрузить на сервер проведя чере ревью, и два цикла тестирования )) но такой вариант рассматривается

а вот автономные транакции - интересная наводка. Большое спасибо! если они помогут, то о побочных эффектах можно не волноваться. После того как функция отработает хоть трава не расти. база всё равно перезаливаться будет.
...
Рейтинг: 0 / 0
INSERT из SELECT'а
    #40022613
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sarin
Для простоты дёрганья яя предлоил прекрасное решение

Сам себя не похвалишь - весь день ходишь как оплёванный.

А главное, эту дикую конструкцию из костылей, поддерживающих сферического коня, больше никто и никогда не похвалит.

Sarin
Если бы не удалёнка меня бы уже побили точно

Подскажите этим людям, что им позарез нужно нанять хотя бы одного компетентного разработчика. Хотя бы на то, чтобы бить по рукам энтузиастов и показывать адекватные решения.

P.S. Или в качестве личной просьбы - выбросьте Оракл и возьмите что-нибудь, чего не жалко. Хоть MySQL, хоть Interbase, хоть любую другую замечательную СУБД для тех, чьи таланты лежат в далёких от БД областях.
...
Рейтинг: 0 / 0
INSERT из SELECT'а
    #40022619
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sarin
Здравствуйте

Подскажите, пожалуйста, можно ли как-то сей запрет обойти? может возможно запустить из функции кусок SQL в новом стейтменте? Или вруг есть средства удалённого вызова ХП которые можно задействовать локально из PL/SQL?


Тут есть варианты.
1) Переписать всё на Java
2) Вернуть, всё как было

ИМХО я бы выбрал 1-й вариант. :-)
...
Рейтинг: 0 / 0
INSERT из SELECT'а
    #40022673
Sarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
с автономными транзакциями заработало
Большое спасибо!

А найти компетентного специалиста, заменить оракл на что-то, переписать всё на джаве и завязать, наконец-то, с IT - это всё впланах есть, но во временные рамки проекта решить не получится :)
...
Рейтинг: 0 / 0
INSERT из SELECT'а
    #40022682
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sarin
с автономными транзакциями заработало
Большое спасибо!

А найти компетентного специалиста, заменить оракл на что-то, переписать всё на джаве и завязать, наконец-то, с IT - это всё впланах есть, но во временные рамки проекта решить не получится :)


Sarinнаписать вызов ХП из джавы не проблема. только до джавы этой добраться надо. а потом водрузить на сервер проведя чере ревью, и два цикла тестирования )) но такой вариант рассматривается


Шикарное у Вас review и тестирование...
...
Рейтинг: 0 / 0
INSERT из SELECT'а
    #40022707
Sarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тестирование нормальное, а ревью, в принципе, практика тупая.

не волнуйтесь за чистоту среды. данный костыль ни в один продукт не попадёт. мы только померим сколько врени костыль исполняется и выкинем сразу.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / INSERT из SELECT'а
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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