2010-11-16 18 views
8

In SQL's SQL * Plus, i risultati di un SELECT sono visualizzati in modo tabulare. Esiste un modo per visualizzare una riga in modo key-value (come MySQL \G option)?Equivalente di G di MySQL in SQL * Plus Oracle

Il database su cui sto lavorando (lo schema non è definito da me) ha un gruppo di colonne denominato ad es. YN_ENABLED (YN = sì no) che sono CHAR(1). Così, quando faccio una query ottengo un risultato come

ID_MYTABLE Y Y Y 
------------ - - - 
3445   Y N Y 

Quindi non è davvero chiaro che le colonne hanno quali valori (senza avere lo schema aperto in un'altra finestra).

+1

Questo thread OTN http://forums.oracle.com/forums/thread.jspa?threadID=923884 discute che . – codaddict

+0

Grazie! Ho provato su Google, ma purtroppo "equivalente a \ G" non è troppo googabile .. Grazie per il link. –

risposta

10

Non integrato in SQL PLus, ma Tom Kyte ha fornito una procedura denominata print_table che esegue questa operazione. Si potrebbe correre in questo modo:

SQL> exec print_table ('select * from mytable where id_mytable=123'); 

And see results like: 

ID_MYTABLE  : 123 
YN_ENABLED  : Y 
YN_SOMETHING : N 
... 
+0

Oracle l'ha implementato dal 2010? Mi piacerebbe usarlo all'interno di SQL Developer per esportare risultati più puliti ... – GournaySylvain

3

so che la tua domanda riguarda SQL * Plus, ma si potrebbe essere interessati a sapere che di Oracle SQL Developer può fare questo. La funzione può essere utilizzata facendo clic con il pulsante destro del mouse su Risultati della query e selezionando "Visualizza record singolo ...".

1

Ecco un trucco che può fare in un pizzico se non si vuole (o non può) installare una nuova procedura sul server:

  1. selezionare la riga (o le righe) di interesse in Oracle SQL Developer finestra dei risultati della query.
  2. Utilizzare shift-control-c in Oracle SQL Developer per copiare le intestazioni e le intestazioni negli Appunti.
  3. Incollare nel foglio di calcolo preferito (ad esempio, MS Excel). Ora hai record in righe.
  4. Copia le righe appena incollate nel foglio di calcolo
  5. Utilizza la funzione "Incolla speciale - Trasponi" del tuo foglio di calcolo per incollare i valori in un nuovo foglio di lavoro. Ora i tuoi record dovrebbero essere in colonne.
1

Venendo in ritardo, ma ho trovato questo

SQL> select * from xmltable('ROWSET/ROW/*' passing xmltype(cursor(select * from emp where rownum = 1 
)) columns name varchar2(30) path 'node-name(.)', value varchar2(30) path '.'); 

Trovato here

Problemi correlati