sql >> Database >  >> RDS >> Oracle

Index van element in PL/SQL-verzameling ophalen

Ik weet niet zeker of dit echt helpt, of dat je denkt dat het eleganter is:

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. MYSQL sorteren met doctrine

  2. MySQL-foutcode:1030Kreeg fout -1 van opslagengine; Ik heb geprobeerd gegevens uit mijn database te verwijderen

  3. Op weg naar Postgres-XL 9.5

  4. Schrijf native sql-query met left join en paginering in slaapstand (springboot)