При выполнении запроса после части Declare End выдается ошибка

Я запускаю запрос, но перед этим я выполняю процедуру из базы данных, которая изменяет доступ к сеансу для пользователя, выполняющего запрос.

Часть Begin End и выполнение вызова процедуры выполняются нормально, но когда он пытается выполнить запрос на выборку, он выдает ошибку ORA-06550 PLS 00103: Обнаружен символ WITH.

Как будто я не могу выполнить вызов процедуры, а затем по какой-то причине выполнить оператор выбора.

Пожалуйста, порекомендуйте.

Первоначальный вызов кода

Begin
 util.change_institutions(a_instition => 900);
End;

With Balance as ( Select * from cbalances where method=100),
User as ( select * from users where user_id = 10132)

Select * from Balance b
Full Join User u  on u.Serno=b.Serno;

Мне нужно, чтобы это выполнялось за один сеанс. Любые идеи, которые могут помочь мне выполнить это?


person user3122285    schedule 23.01.2014    source источник


Ответы (1)


Укажите '/' после блока PL/SQL;

Каждое выражение PL/SQL, только когда указано '/', фактически сбрасывается в механизм базы данных.

Begin
 util.change_institutions(a_instition => 900);
End;
/

With Balance as ( Select * from cbalances where method=100),
User as ( select * from users where user_id = 10132)
Select * from Balance b
Full Join User u  on u.Serno=b.Serno;
person Maheswaran Ravisankar    schedule 23.01.2014
comment
+1 Также стоит упомянуть, что вы, возможно, исправили еще одну проблему, удалив пустую строку. По умолчанию SQL*Plus не принимает пустые строки в операторах SQL. - person Jon Heller; 23.01.2014
comment
Большое спасибо за отзыв. Вопрос решается наличием / под Концом; линия. - person user3122285; 24.01.2014