sql >> Database >  >> RDS >> Oracle

retourneer enkele rij in opgeslagen procedure op oracle

Je moet een specifiek veld selecteren om in het resultaat te zetten als je het zo gaat gebruiken.

declare or replace procedure select_row 
(
    bookingid in integer,
    result out varchar2
) as 
begin
    select booking_name into result from booking where booking.id = bookingid;
end;

Anders moet u eerst een objecttype maken en meerdere velden in het objecttype selecteren en dat retourneren. U moet OBJECT MAKEN of RECORD MAKEN.

CREATE OBJECT BOOKING_OBJ AS (
     bookingid INTEGER
    ,booking_name VARCHAR2(128)
);

declare or replace procedure select_row 
(
    bookingid in integer,
    result out BOOKING_OBJ
) as 
begin
    select booking_obj(bookingid, booking_name) into result from booking where booking.id = bookingid;
end;

Of...

CREATE TYPE BOOKING_REC as record(
    bookingid integer,
    booking_name varchar2(100)
);

declare or replace procedure select_row 
(
    bookingid in integer,
    result out BOOKING_REC
) as 
begin
    select bookingid, booking_name into result from booking where booking.id = bookingid;
end;

U kunt ook een ref-cursor retourneren.




  1. Hoe vraag ik iets op dat met bepaalde tekens begint?

  2. mysql STR_TO_DATE werkt niet

  3. DAU/MAU opvragen in de loop van de tijd (dagelijks)

  4. Lees elke JSON in de lijst met sleutel-waardeparen (EAV-indeling) in SQL Server