sql >> Database teknologi >  >> RDS >> Oracle

Sådan henvises til en kolonne efter ID eller indeksnummer

Du skal bruge en eller anden form for dynamisk SQL. Her er et hurtigt eksempel:

Det bygger SQL-sætningen, der vil vælge de '/'-separerede kolonner fra den tabel, du ønsker. Så bruger den dynamisk SQL til at køre den SQL-sætning.

DECLARE
  p_table_name VARCHAR2(30) := 'DBA_OBJECTS';
  l_sql VARCHAR2(32000);

  TYPE varchar2tab IS TABLE OF VARCHAR2(32000);
  l_array varchar2tab;

BEGIN
  SELECT 'SELECT ' || listagg(column_name,' ||''/''||') within group ( order by column_id ) || ' FROM ' || owner || '.' || table_name || ' WHERE ROWNUM <= 100'
  INTO l_sql
  FROM dba_tab_columns
  where table_Name = 'DBA_OBJECTS'
  group by owner, table_Name;

  EXECUTE IMMEDIATE l_sql BULK COLLECT INTO l_array;

  FOR i in l_array.first .. l_array.last LOOP
    dbms_output.put_line(l_array(i));
  END LOOP;
END;


  1. Vælg tilfældig række pr. særskilt feltværdi?

  2. Sende en række strenge til en procedure og bruge den i WHERE-sætningen med IN

  3. Synkroniser alle brugerroller mellem to Wordpress-installationer, der deler de samme wp_users og wp_usermeta-tabeller.

  4. Hvornår forsøger MySQL at opdatere et indeks for en kolonne?