sql >> Databasteknik >  >> RDS >> Oracle

Oracle-fråga för att hämta kolumnnamn

Oracle-motsvarigheten för information_schema.COLUMNS är USER_TAB_COLS för tabeller som ägs av den aktuella användaren, ALL_TAB_COLS eller DBA_TAB_COLS för tabeller som ägs av alla användare.

Tablespace är inte likvärdigt med ett schema, du måste inte heller ange tabellutrymmets namn.

Att tillhandahålla schemat/användarnamnet skulle vara användbart om du vill fråga ALL_TAB_COLS eller DBA_TAB_COLS för kolumner AV tabeller som ägs av en specifik användare. i ditt fall skulle jag föreställa mig att frågan skulle se ut ungefär så här:

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

Observera att med detta tillvägagångssätt riskerar du SQL-injektion.

EDIT: Tabell- och kolumnnamnen har versaler eftersom dessa vanligtvis är versaler i Oracle; de är bara gemener eller blandade versaler om de skapas med dubbla citattecken runt dem.



  1. Hur håller data inte sorteras?

  2. Relationell algebra

  3. Vad är en platt fildatabas? Hur skiljer det sig från en relationsdatabas?

  4. Hur man löser behörighetsproblem vid återställning av PostgreSQL-databas