Приветствую всех!Я хочу создать запрос pl / sql, объявив переменные для следующего, например:
:stay_id = (SELECT Stay_Id from MVStay where StayNumber = 'xxxx' AND StayState = 2);
-- get passage linked to the stay and is 'discharged'
:passage_id = (SELECT Passage_Id from MVStayWorkflow where Stay_Id = :stay_id and WorkflowAction = 31);
-- get current date
:now = to_char(sysdate, 'YYYYMMDD HH:MI:SS.FF')
-- get a new sequence number
:stay_workflow_id = (get it from the concerned table)
--insert ‘Admin discharged’ workflow step
if( passage_id is not NULL)
begin
Insert into MVStayWorkflow (StayWorkflow_Id, Stay_Id, Passage_Id, User_Id, RespUnit_Id, Resource_Id,
WorkflowAction, CurrentState, PreviousState, WorkflowTime, UserStamp, TimeStamp)
values (:stay_workflow_id, :stay_id, :passage_id, 1, 0, 0, 11, 7, 7, :now, 1, :now)
end
С уважением, Мухаммед
Привет Алекс ..
Я использовал ваш код, но столкнулсяошибка: Ошибка запуска в строке 3 в команде: объявлять l_stay_id MVStay.Stay_Id% TYPE;l_passage_id MVStayWorkflow.Passage_Id% TYPE;l_stay_workflow_id MVStayWorkflow.Stay_Workflow_Id% TYPE;l_now MVSTAY.ENDDATETIME% TYPE;begin
/ * получить закрытое пребывание, оставаясь stay_number = '030074559' * / выберите Stay_Id в l_stay_id из MVStay, где StayNumber = '030074559' и StayState = 2;
/* get passage linked to the stay and is 'discharged' */
select Passage_Id into l_passage_id
from MVStayWorkflow
where Stay_Id = l_stay_id
and WorkflowAction = 31;
/* get current date types in MVStayWorkflow? */
l_now := to_char(sysdate, 'YYYYMMDD HH:MI:SS.FF');
/* get a new sequence number */
l_stay_workflow_id := 500000
/* insert ‘Admin discharged’ workflow step */
if passage_id is not NULL then
insert into MVStayWorkflow (StayWorkflow_Id, Stay_Id, Passage_Id,
User_Id, RespUnit_Id, Resource_Id, WorkflowAction, CurrentState,
PreviousState, WorkflowTime, UserStamp, TimeStamp)
values (l_stay_workflow_id, l_stay_id, l_passage_id,
1, 0, 0, 11, 7, 7, l_now, 1, l_now);
end if;
end;Отчет об ошибке: ORA-06550: строка 27, столбец 5: PLS-00103: Обнаружен символ «IF» при ожидании одного из следующих действий:
- & = - +;</> at in - это остаток от мода не rem <> или! = или ~ => = <= <> и / или like2 like4 likec между ||член мультимножества submultiset Символ ";"был заменен на «IF» для продолжения.
- 00000 - "строка% s, столбец% s: \ n% s" * Причина: обычно ошибка компиляции PL / SQL.* Действие: