sql >> Database >  >> RDS >> Oracle

Oracle-query om kolomnamen op te halen

Het Oracle-equivalent voor information_schema.COLUMNS is USER_TAB_COLS voor tabellen die eigendom zijn van de huidige gebruiker, ALL_TAB_COLS of DBA_TAB_COLS voor tabellen die eigendom zijn van alle gebruikers.

Tabelruimte is niet gelijk aan een schema, en u hoeft ook niet de naam van de tabelruimte op te geven.

Het opgeven van het schema/de gebruikersnaam zou handig zijn als u ALL_TAB_COLS wilt opvragen of DBA_TAB_COLS voor kolommen OF tabellen die eigendom zijn van een specifieke gebruiker. in jouw geval zou ik me voorstellen dat de zoekopdracht er ongeveer zo uit zou zien:

String sqlStr= "
SELECT column_name
  FROM all_tab_cols
 WHERE table_name = 'USERS'
   AND owner = '" +_db+ "'
   AND column_name NOT IN ( 'PASSWORD', 'VERSION', 'ID' )"

Houd er rekening mee dat u met deze aanpak het risico loopt SQL-injectie te krijgen.

BEWERKEN: De tabel- en kolomnamen in hoofdletters aangezien deze in Oracle meestal hoofdletters zijn; ze zijn alleen kleine letters of hoofdletters als ze zijn gemaakt met dubbele aanhalingstekens eromheen.



  1. Hoe MySQL 8 op Ubuntu 20.04 LTS te installeren

  2. Hoe te controleren of SQL-database beschadigd is - Oplossing om MDF-bestand te repareren

  3. Waarschuwing:mysqli_connect():(HY000/2002):Geen dergelijk bestand of map

  4. SQL, hoe een tabelstructuur bij te werken