2014-06-18 8 views

risposta

10

Prova questa (quella conosciuta colonna):

CREATE TABLE mytab(mycol VARCHAR2(30 CHAR));

SELECT table_name FROM user_tab_columns WHERE column_name='MYCOL';

Nota MYCOL è in superiore caso in column_name='MYCOL';

Cheers!

+1

Sono disponibili anche altre visualizzazioni: USER_TAB_COLS, ALL_TAB_COLS, ALL_TAB_COLUMNS. A seconda dei tuoi privilegi di accesso, sono disponibili anche: DBA_TAB_COLS, DBA_TAB_COLUMNS – Roobie

12

Sulla base della soluzione di @ Roobie, il codice seguente cerca tutti gli schemi a cui si ha accesso, nel caso in cui la tabella non sia nel proprio schema. Aggiunta anche la corrispondenza senza distinzione tra maiuscole e minuscole.

SELECT owner, table_name 
    FROM all_tab_columns 
    WHERE UPPER(column_name) = UPPER('MYCOL'); 
+0

Hey Josh, bel montaggio. Penso che tu non abbia bisogno di UPPER sul lato sinistro (UPPER (column_name)). Saluti! – Roobie

+2

@Roobie, il 99,8% delle volte, ma c'è sempre la possibilità di fare il pipistrello codice pazzo per i venditori (pensando a un'applicazione progettata per SQL Server che il fornitore ha realizzato una versione Oracle). Puoi creare colonne maiuscole e minuscole in Oracle, anche se non dovresti. Esempio: 'CREATE TABLE stupid_table (" MixedCaseColumn "INTEGER PRIMARY KEY);'. Mettere "SUPERIORE" su entrambi i lati copre il sedere per quasi il 100% dei casi. Per una bella risata, vedi questo violino che ho appena messo insieme: http://sqlfiddle.com/#!4/2840e/1/0 –

+0

Oh. Ho capito il tuo punto. Saluti – Roobie

-4
select * from all_updatable_columns where column_name like 'reqd col name'; 
Problemi correlati