sql >> Databáze >  >> RDS >> Oracle

Získání indexu prvku v kolekci PL/SQL

Nejsem si jistý, jestli to opravdu pomáhá, nebo jestli si myslíte, že je to elegantnější:

create type t_test as table of varchar2(1);
/

DECLARE
--TYPE t_test IS TABLE OF VARCHAR2(1);
  v_test t_test;

  function get_index(q in t_test, c in varchar2) return number is
    ind number;
  begin
    select min(rn) into ind from (
      select column_value cv, rownum rn
       from table(q) 
    )
    where cv = c;

    return ind;
  end get_index;

BEGIN
  v_test := NEW t_test('A', 'B', 'A');

  dbms_output.put_line( 'A: ' || get_index( v_test, 'A' ) );
  dbms_output.put_line( 'B: ' || get_index( v_test, 'B' ) );
  dbms_output.put_line( 'C: ' || get_index( v_test, 'C' ) );
END;
/

show errors

drop type t_test;


  1. Vypsat granty a oprávnění pro materializovaný pohled v PostgreSQL

  2. CHYBA! Soubor PID správce MySQL nebo serveru nebyl nalezen! QNAP

  3. Propojte metabázi s MySQL pro průzkum dat

  4. Automatizace nasazení databáze MySQL