2010-02-22 2 views
0

Я хотел бы написать процедуру с помощью курсора, которая заставит пациента сначала бесплатного врача (у кого сейчас нет визита, но я не знаю, что было бы прощеSQL-курсор в процедуре

  • объявить час как «IN» в порядке, а затем найти свободный врач в это время
  • или найти свободный врач с этого времени до окончания медицинского центра, зная, что за один визит за последние 15 минут).

Любые подсказки, как это сделать?

Ниже представлена ​​моя структура таблицы. И если вы считаете, что мой пример не подходит для процедуры с функцией, вы можете дать мне пример другого (потому что он должен ЛЮБОЙ процедурой с функцией, связанной с моим Медицинским центром).

У меня есть четыре таблицы

  • пациента (интермедиат Id_patient, символ (11) имя, символ (20) фамилия, символ (30) адрес)
  • Доктор (INT Id_doctor, полукокс (11) имя, символ (20) фамилия)
  • посещения (#Id_patient, #Id_doctor, Id_visit, голец (20) болезнь, время time_of_visit)
  • Work_hour (#Id_doctor, INT Id_Workhour, символ (11) name_of_day, время from_hour , время до_часа)
+1

Какова структура вашей таблицы? –

+0

Подсказка: сначала попробуйте сделать это без курсора, вам нужно будет предоставить дополнительную информацию. –

+0

Почему требуется использовать курсор? Не могли бы вы принять решения, которые не использовали курсор? –

ответ

0

Что-то вроде этого?

create or replace procedure sho_doc(p_hour in varchar2) 
is 
    cursor get_free_time_cur 
    is 
    select doctor_name 
    from doctor_table 
    where status = 'FREE' 
    and slot = p_hour_in; 
begin 
    for idx in get_free_time_cur 
    loop 
     //Do some thing here 
    end loop 
end; 

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

Смежные вопросы