Oracle
 sql >> Baza danych >  >> RDS >> Oracle

zwróć pojedynczy wiersz w procedurze składowanej na oracle

Musisz wybrać określone pole, które ma zostać wprowadzone do wyniku, jeśli zamierzasz go w ten sposób użyć.

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;

W przeciwnym razie musisz najpierw utworzyć typ obiektu, wybrać wiele pól w typie obiektu i zwrócić go. Musisz UTWORZYĆ OBIEKT lub UTWORZYĆ REKORD.

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;

Lub...

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;

Alternatywnie możesz zwrócić kursor referencyjny.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. podproces daje błąd. System nie może odnaleźć określonego pliku

  2. Jak zainstalować Oracle instantclient i pdo_oci na maszynie ubuntu?

  3. Odpowiednik funkcji R cbind() w Oracle?

  4. SQL:Przeanalizuj ciąg znaków oddzielonych przecinkami i użyj jako złączenia

  5. Wielokrotne powtarzanie tej samej zmiennej bind przy użyciu dynamicznej struktury OPEN...FOR w Oracle PL/SQL