Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Apakah ada cara untuk memilih beberapa baris dengan menggunakan parameter?

Anda tidak dapat mengembalikan hasil yang ditetapkan di Oracle dengan hanya menggunakan Query. Anda perlu menggunakan kursor Ref untuk hal yang sama. Anda dapat mencoba kode di bawah ini -

CREATE OR REPLACE PROCEDURE p_find_all_routes (
   p_start   IN VARCHAR2 DEFAULT '%',
   p_end     IN VARCHAR2 DEFAULT '%',
   p_via     IN VARCHAR2 DEFAULT '%',
   multiroutes OUT SYS_REFCURSOR)
AS
BEGIN
   -- =======================================================================
   -- Author:       Coilin P. Boylan Jeritslev (CTBJ)
   -- Description:   Find all possible routes between two different points
   -- "p_start" and "p_end" via the choosen point "p_via" in a graph-tabel.
   -- =======================================================================
OPEN multiroutes FOR
   WITH multiroutes (p_from, p_to, full_route, total_distance)
        AS (SELECT p_from,
                   p_to,
                   p_from || '->' || p_to full_route,
                   distance total_distance
              FROM graph
             WHERE p_from LIKE p_start
            UNION ALL
            SELECT M.p_from,
                   n.p_to,
                   M.full_route || '->' || n.p_to full_route,
                   M.total_distance + n.distance total_distance
              FROM multiroutes M JOIN graph n ON M.p_to = n.p_from
             WHERE n.p_to <> ALL (M.full_route))
     SELECT *
       FROM multiroutes
      WHERE     p_to LIKE p_end
            AND (   full_route LIKE ('%->' || p_via || '%')
                 OR full_route LIKE ('%' || p_via || '->%'))
   ORDER BY p_from, p_to, total_distance ASC;
END;
/

Anda kemudian dapat memanggil prosedur ini nanti dengan mendeklarasikan variabel kursor Ref.

DECLARE
    Result SYS_REFCURSOR;
BEGIN
    p_find_all_routes('A','E','%', Result);
END; 




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Memicu kesalahan clob memperbarui

  2. Kueri Rekursif Oracle - Tanggal

  3. Menginstal JDBC untuk Jboss EAP 6.3

  4. kesalahan:ORA-65096:nama pengguna atau peran umum yang tidak valid di Oracle

  5. Cara menangkap kesalahan ke forall plsql