Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / INSERT из SELECT'а / 13 сообщений из 13, страница 1 из 1
26.11.2020, 19:47
    #40022548
Sarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
INSERT из SELECT'а
Здравствуйте

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

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

Вот

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

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

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

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


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

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

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


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

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

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

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

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

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

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

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


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

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

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

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


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


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

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


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