2015-03-29 3 views
-2

Привет У меня есть три кода в SQL, и вы знаете, вам советы о том, как переписать их в PL/sql.I не может найти ответ или программу преобразованияновообращенный SQL для PLSQL

спасибо за помощь

SELECT PATIENT.NAME , 
PATIENT.NAME_OF_DOCTOR, 
PATIENT.ROOM_NUMBER 
FROM PATIENT ; 
SELECT WING.NAME , 
WING.SISTER_ON_WING, 
WING.NURSES 
FROM WING 
oRDER BY WING.NAME, 
WINGSISTER_ON_WING, 
WING.NURSES; 
SELECT COUNT (*) , 
CASE radiation_theraphy 
WHEN '1' then 'Attendance' 
WHEN '0' then 'Absence' 
wHEN null then 'Null' 
END radiation_theraphy 
FROM patient 
GROUP BY radiation_theraphy; 
+1

PLSQL - это SQL. Эти запросы являются довольно базовыми без каких-либо различий между реализациями, поэтому они должны работать без изменений. Вы их пробовали? – Guffa

+0

да его работа, но им нужно от меня блок pl/sql не стандартный sql –

+0

Для того, чтобы поставить SQL в PL/SQL, вам нужна какая-то причина для этого ... вы возвращаете результат в курсор? Вы собираетесь использовать результаты для какого-то расчета? У вас вообще есть какие-то условия? Основной ответ на вопрос «как» это [рассматривается в документации] (http://docs.oracle.com/cd/E11882_01/appdev.112/e25519/selectinto_statement.htm#LNPLS01345), но копирование и вставка некоторых ответьте здесь, что говорит, что не поможет вам без контекста. – Ben

ответ

0

С предложением SELECT вы извлекаете данные из базы данных. Если вам нужно обработать его в коде PLSQL, вы должны поместить результат в переменную. Для этого вы можете использовать простое предложение SELECT ... INTO (которое работает только для выбора, всегда возвращающее одну строку) или курсор вместе с циклом по выбранным данным:

DECLARE 
    CURSOR c_patient IS 
    SELECT COUNT (*) , 
      CASE radiation_theraphy 
      WHEN '1' then 'Attendance' 
      WHEN '0' then 'Absence' 
      wHEN null then 'Null' 
      END radiation_theraphy 
     FROM patient 
     GROUP BY radiation_theraphy; 
BEGIN 
    for r in c_patient loop 
    -- do something. you access values by r.<selected_column_name>, 
    -- for example r.radiation_therapy 
    end loop; 
END;