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

Oracle-forespørgsel for at hente kolonnenavne

Oracle-ækvivalenten for information_schema.COLUMNS er USER_TAB_COLS for tabeller, der ejes af den aktuelle bruger, ALL_TAB_COLS eller DBA_TAB_COLS for borde, der ejes af alle brugere.

Tablespace svarer ikke til et skema, og du skal heller ikke angive tablespace-navnet.

Det ville være nyttigt at angive skemaet/brugernavnet, hvis du vil forespørge ALL_TAB_COLS eller DBA_TAB_COLS for kolonner AF tabeller, der ejes af en bestemt bruger. i dit tilfælde kunne jeg forestille mig, at forespørgslen ville se nogenlunde sådan ud:

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

Bemærk, at med denne tilgang risikerer du SQL-injektion.

EDIT: Tabel- og kolonnenavne med store bogstaver, da disse typisk er store bogstaver i Oracle; de er kun små eller blandede bogstaver, hvis de er oprettet med dobbelte anførselstegn omkring dem.



  1. Skal en MAMP returnere ::1 som IP på localhost?

  2. Værdi Fejl under import af data til postgres-tabellen ved hjælp af psycopg2

  3. Chen Notation

  4. Hvordan ved man, at den installerede Oracle Client er 32 bit eller 64 bit?