я не знаю, как отобразить курсор данных оракула - PullRequest
0 голосов
/ 24 декабря 2018

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

SET SERVEROUTPUT ON;
DECLARE  CURSOR CurEscal IS
SELECT 
    ESCALE.NUMVOL, ( to_number ( to_char ( ESCALE.DATEED, 'MI' ) ) - to_number ( to_char ( ESCALE.DATEEA, 'MI' ) ) ) AS "duree par min", AEROPORT.NOMAER
FROM
    ESCALE
    JOIN AEROPORT ON ESCALE.REFAER = AEROPORT.REFAER 
WHERE
    NUMVOL IN ( SELECT ESCALE.NUMVOL FROM ESCALE GROUP BY ESCALE.NUMVOL HAVING Count( ESCALE.NUMESC ) >= 1 );
BEGIN
    --Open the CurEscal CURSOR
    IF NOT (CurEscal%ISOPEN) THEN
        OPEN CurEscal;
    END IF;

    --FETCH
    FOR i IN CurEscal LOOP
      DBMS_OUTPUT.PUT_LINE('I don't know how I need your help');
    END LOOP;

    --Close the CurEscal CURSOR
    IF CurEscal%ISOPEN THEN
        CLOSE CurEscal;
    END IF;    
END;
/

может кто-то помочь !!

1 Ответ

0 голосов
/ 24 декабря 2018

Это будет

dbms_output.put_line(i.numvol ||', '|| i."duree par min" ||', '|| i.NOMAER);

Хотя, если вы используете цикл FOR курсора, все несколько проще, так как вам не нужно объявлять / открывать / извлекать / закрывать курсор, например

BEGIN
   FOR i
      IN (SELECT escale.numvol,
                 (  TO_NUMBER (TO_CHAR (escale.dateed, 'MI'))
                  - TO_NUMBER (TO_CHAR (escale.dateea, 'MI')))
                    AS duree_par_min,
                 aeroport.nomaer
            FROM escale JOIN aeroport ON escale.refaer = aeroport.refaer
           WHERE numvol IN (  SELECT escale.numvol
                                FROM escale
                            GROUP BY escale.numvol
                              HAVING COUNT (escale.numesc) >= 1))
   LOOP
      DBMS_OUTPUT.put_line (
         i.numvol || ', ' || i.duree_par_min || ', ' || i.nomaer);
   END LOOP;
END;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...