powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Ошибка в процедуре с подзапросами
4 сообщений из 4, страница 1 из 1
Ошибка в процедуре с подзапросами
    #38840629
Teik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пытался написать процедуру которая при невыполнение условия выдавала бы текстовое сообщение.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
create or replace procedure ogr1 (p3_Kod_id in number)
as begin
      
    if (null = (Select Name_m,Value
                 From Znath, Paramet,Model_kom, Name_Kom
                 where  (Param_IDP=Param_ID) and
                (Kod_IDM=Kod_IDP)and
                (Model_Id= Model_IDZ) and
                (Kod_Id=1001) and
                 (Model_Id=p3_Kod_id) and
                (Kod_Id=Kod_IDM) and
               (Value = (
                Select Value
                From Model_kom, Paramet, Znath
                where   (Model_ID=(Select Model_Ids
                                   From Sbor
                                   where(KOD_IDS=1004))) and
               (Model_ID=Model_IDZ) and
               (Zn_ID=
                   (
                    Select Zn_ID
                    From Znath, Paramet
                    Where
                         (Param_Id=Param_IdP) and
                         (Param_name = 'Сокет') and
                          (Model_IDZ=(Select Model_Ids
                                      From Sbor
                                      where(KOD_IDS=1004))))
                    )   and
              (Param_ID=Param_IDP))
       ) ) )    
    then
    raise_application_error(-20000, 'Жизнь-боль');
   end if;
end;


Но оракл ругается:
Compilation failed,line 4 (14:38:52)
PLS-00405: subquery not allowed in this contextCompilation failed,line 4 (14:38:52)
PL/SQL: Statement ignored
...
Рейтинг: 0 / 0
Ошибка в процедуре с подзапросами
    #38840654
mansion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ох уж эти старомодные соединения таблиц... сделай все по человечески через joinы, задай каждой таблице имя и используй эти имена овнерами для полей. непонятно откуда что вытягиваешь
...
Рейтинг: 0 / 0
Ошибка в процедуре с подзапросами
    #38840901
Casufi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mansionох уж эти старомодные соединения таблиц.
Откуда Ораклу знать сколько строк вытянет твой запрос ?
Сначала запросом выбери данные в переменные используя конструкцию into, потом переменные проверяй.
Вообще в тексте об ошибке информации более чем достаточно.
...
Рейтинг: 0 / 0
Ошибка в процедуре с подзапросами
    #38840913
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Teik,
Форматирование жесть.
Судя по логике, человек явно с Майкрсофта переходит.
Ну во первых ты ошибся форумом.
во вторых проверка на наличие строчек в оракле, много, но мне такая нравиться, хотя кому то может показаться и громоздкой.
Код: plsql
1.
2.
3.
4.
5.
6.
declare
	v_id		table.id%type;
Begin
	select id into v_id from table where condition>0;
	exception when no_data_found then v_id:=null;
End;


Но тем самым я и ошибку обрабатываю и ид получаю
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Ошибка в процедуре с подзапросами
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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