2010-02-22 52 views
0

我想用光標編寫一個程序,它會給第一位免費的醫生帶來耐心(他現在沒有任何訪問,但是我不知道什麼會更容易)程序中的SQL遊標

  • 在過程聲明小時像「IN」,然後在這個時候
  • 找到一個免費的醫生,或者找到這個及時到醫療中心的密切免費醫生知道一個訪問最後15分鐘)。

任何提示如何做到這一點?

下面是我的表格結構。如果你認爲我的例子不適用於使用函數的過程,那麼你可以給我一個不同的例子(因爲它必須由任何有關我的醫療中心功能的過程)。

我有四個表

  • 患者(INT Id_patient,CHAR(11)名稱,CHAR(20)姓,CHAR(30),地址)
  • 醫生(INT Id_doctor,CHAR(11 )名稱,CHAR(20)姓)
  • 訪問(#Id_patient,#Id_doctor,Id_visit,CHAR(20)疾病,時間time_of_visit)
  • Work_hour(#Id_doctor,INT Id_Workhour,CHAR(11)name_of_day,時間from_hour ,time to_hour)
+1

你的表結構是什麼? – 2010-02-22 20:14:46

+0

提示將嘗試在沒有光標的情況下進行,但您需要提供更多信息。 – 2010-02-22 20:19:19

+0

爲什麼需要使用遊標?你會接受不使用遊標的解決方案嗎? – 2010-02-22 20:19:44

回答

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。我不知道桌子的結構。所以,只是假設事情。