Oracle
 sql >> Datenbank >  >> RDS >> Oracle

geben Sie eine einzelne Zeile in einer gespeicherten Prozedur auf Oracle zurück

Sie müssen ein bestimmtes Feld auswählen, das in das Ergebnis eingefügt werden soll, wenn Sie es so verwenden möchten.

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;

Andernfalls müssen Sie zuerst einen Objekttyp erstellen und mehrere Felder für den Objekttyp auswählen und diesen zurückgeben. Sie müssten OBJEKT ERSTELLEN oder RECORD ERSTELLEN.

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;

Oder...

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;

Alternativ können Sie einen Ref-Cursor zurückgeben.