2010-11-16 15 views
8

En SQL * Plus de Oracle, los resultados de un SELECTO se muestran en forma tabular. ¿Hay alguna manera de mostrar una fila en una relación valor-clave (como MySQL's \G option)?Equivalente a G de MySQL en SQL * Plus de Oracle

La base de datos en la que estoy trabajando (el esquema no está definido por mí) tiene un grupo de columnas llamadas p. Ej. YN_ENABLED (YN = yes no) que son CHAR(1). Así que cuando hago una consulta consigo un resultado como

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

Así que no es realmente claro qué columnas tienen que valora (sin tener el esquema abierto en otra ventana).

+1

Este hilo OTN http://forums.oracle.com/forums/thread.jspa?threadID=923884 discute que . – codaddict

+0

Gracias! Probé Google, pero por desgracia "equivalente a \ G" no es muy Googleable .. Gracias por el enlace. –

Respuesta

10

No integrado en SQL PLus, pero Tom Kyte ha proporcionado un procedimiento llamado print_table que hace esto. Se podría ejecutar de esta manera:

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 lo implementó desde 2010? Me gustaría utilizarlo dentro de SQL Developer para exportar resultados más limpios ... – GournaySylvain

3

Sé que tu pregunta es acerca de SQL * Plus, pero que podría estar interesado en saber que de Oracle SQL Developer puede hacer esto. La función se puede usar haciendo clic con el botón derecho en los Resultados de la consulta y seleccionando "Vista de registro único ...".

1

He aquí un truco que puede hacer en un apuro si no quiere (o no puede) instalar un nuevo procedimiento en el servidor:

  1. Seleccione la fila (o filas) de interés en el Oracle SQL Developer ventana de resultados de la consulta.
  2. Utilice shift-control-c en Oracle SQL Developer para copiar las filas y los encabezados en el portapapeles.
  3. Pegue en su hoja de cálculo favorita (por ejemplo, MS Excel). Ahora tiene registros en filas.
  4. Copie las filas que acaba de pegar en la hoja de cálculo
  5. Utilice la función "Pegado especial - Transposición" de su programa de hoja de cálculo para pegar los valores en una nueva hoja de cálculo. Ahora sus registros deben estar en columnas.
1

Coming en tarde, pero considera esta

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 '.'); 

Encontrado here

Cuestiones relacionadas