Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

formato de un select

Estas en el tema de formato de un select en el foro de Oracle en Foros del Web. Hola.Alguien sabe como púedo dar formato a una consulta que se esta ejecutando en sqlpluw y mostrandose en spool spool archivo.txt select * from tabla ...
  #1 (permalink)  
Antiguo 19/04/2006, 10:47
 
Fecha de Ingreso: octubre-2004
Ubicación: Santiago de Chile
Mensajes: 504
Antigüedad: 19 años, 6 meses
Puntos: 0
formato de un select

Hola.Alguien sabe como púedo dar formato a una consulta que se esta ejecutando en sqlpluw y mostrandose en spool

spool archivo.txt
select * from tabla
spool off;

me manda:


RUT MONTO CUENTA
-------------------------------------------------- ---------- ----------
TIPO
----------
77500200-K -1119 3811550
NCD



lo necesito:
rut monto tipo
1111 100000 abc


Atte
Mauricio

Pd. Ha, me olvidaba esto es Oracle
__________________
Dios es mas grande que tu problema :-)
  #2 (permalink)  
Antiguo 19/04/2006, 10:55
Avatar de PequeñoMauro  
Fecha de Ingreso: abril-2006
Ubicación: Lima - Perú
Mensajes: 600
Antigüedad: 18 años
Puntos: 3
Hay dos comandos, unos linesize
set linesize 200; --para que se amplie tu linea de lectura, ahora la situación es que tambien depende del tamaño de los campos que estas leyendo, si quieres que te salga hasta un tamaño establecido, puedes usar el substr, ejemplo:

select substr(rut,1,10) as rut, substr(monto,1,15) as monto...
from tabla

Si quieres que te salgan más lineas hacia abajo, usa el set pagesize

set pagesize 200;

Espero que te ayude
__________________
"Nada en mis manos traigo tan solo a tu cruz me aferro....."
  #3 (permalink)  
Antiguo 21/04/2006, 05:31
 
Fecha de Ingreso: agosto-2002
Mensajes: 230
Antigüedad: 21 años, 8 meses
Puntos: 1
yo utilizo esta parametrización para sacar los informes
Código:
SET NEWPAGE 0
SET SPACE 0
SET LINESIZE 10000
SET PAGESIZE 0
SET ECHO OFF
SET FEEDBACK OFF
SET HEADING OFF
SET UNDERLINE OFF
SET HEADSEP OFF
SET LONG 1000
SET LONGC 1000
SET TRIMSPOOL ON
SET TERMOUT OFF
SET RECSEP OFF
pero con esta parametrización quito también el encabezado de la consulta. el encabezado también lo hago yo con una consulta a la tabla ficticia dual

espero que te sirva

P.D: cuando quiero hacer un spool lo hago directamente llamando a un fichero que tendrá la cabecera y la consulta
  #4 (permalink)  
Antiguo 21/04/2006, 07:46
 
Fecha de Ingreso: octubre-2004
Ubicación: Santiago de Chile
Mensajes: 504
Antigüedad: 19 años, 6 meses
Puntos: 0
Gracias

Muchisimas gracias. no saben lo agradecido que estoy.
__________________
Dios es mas grande que tu problema :-)
  #5 (permalink)  
Antiguo 24/04/2006, 10:39
 
Fecha de Ingreso: octubre-2004
Ubicación: Santiago de Chile
Mensajes: 504
Antigüedad: 19 años, 6 meses
Puntos: 0
Al tratar de hacer un procedimiento almacenado en toad. al hacer :
CREATE OR REPLACE PROCEDURE imprimir IS
BEGIN
set newpage
SET SPACE 0
SET LINESIZE 10000
SET PAGESIZE 0
SET ECHO OFF
SET FEEDBACK OFF
SET HEADING OFF
SET UNDERLINE OFF
SET HEADSEP OFF
SET LONG 1000
SET LONGC 1000
SET TRIMSPOOL ON
SET TERMOUT OFF
SET RECSEP OFF
spool C:\impresion\archivo.txt
select * from premio_dupli
spool off;
commit;
ageEND imprimir;
/

me envia el sgte error:
PL/SQL: ORA-00922: falta la opción o no es válida

__________________
Dios es mas grande que tu problema :-)
  #6 (permalink)  
Antiguo 24/04/2006, 11:05
 
Fecha de Ingreso: octubre-2004
Ubicación: Santiago de Chile
Mensajes: 504
Antigüedad: 19 años, 6 meses
Puntos: 0
TOAD does not support all SQL*Plus commands. !!!!!!!!!!!

solo reconoce algunos... mi idea es hacer un proc. almacenado con estas opcioones. como hago para que las incluya sin tener que pasar por ese editor. el sqlplusw tiene editor??
Atte
Mauricio
__________________
Dios es mas grande que tu problema :-)
  #7 (permalink)  
Antiguo 25/04/2006, 01:26
 
Fecha de Ingreso: agosto-2002
Mensajes: 230
Antigüedad: 21 años, 8 meses
Puntos: 1
si no estoy equivocado, estas opciones no se pueden poner en un procedimiento ya que son propias del sqlplus como aplicación y no del sql (lenguaje). En sqlplusw puedes definir estas "opciones" de inicio, no me acuerdo exactamente donde. También puedes asociarle un editor de texto, el que tú quieras, busca uno que te guste y asóciaselo
  #8 (permalink)  
Antiguo 25/04/2006, 14:37
 
Fecha de Ingreso: octubre-2004
Ubicación: Santiago de Chile
Mensajes: 504
Antigüedad: 19 años, 6 meses
Puntos: 0
El problema de todo esto es que se trata de un proceso que se generará periodicamente por un operador. Y a este hay que pasarle algo asi como una url para su ejecucion por lo tanto decirle:
set...
....
spool c:archivo
execute procedure....;
__________________
Dios es mas grande que tu problema :-)
  #9 (permalink)  
Antiguo 25/04/2006, 15:01
Avatar de PequeñoMauro  
Fecha de Ingreso: abril-2006
Ubicación: Lima - Perú
Mensajes: 600
Antigüedad: 18 años
Puntos: 3
Todos estos comandos:
SET SPACE 0;
SET LINESIZE 10000;
SET PAGESIZE 0;
SET ECHO OFF;
SET FEEDBACK OFF;
SET HEADING OFF;
SET UNDERLINE OFF;
SET HEADSEP OFF;
SET LONG 1000;
SET TRIMSPOOL ON;
SET TERMOUT OFF;
SET RECSEP OFF;
spool C:\impresion\archivo.txt;
select * from escuela_cuota;
spool off;

Puedes ponerlos en un archivo de extensión .sql o en un txt, entras a sqlplus y ejecutar el archivo que te creara el txt que deseas.
Usas el comando start comandos.txt...especificando la ruta donde esta el archivo.
Espero que eso te ayude.....
__________________
"Nada en mis manos traigo tan solo a tu cruz me aferro....."
  #10 (permalink)  
Antiguo 26/04/2006, 01:41
 
Fecha de Ingreso: agosto-2002
Mensajes: 230
Antigüedad: 21 años, 8 meses
Puntos: 1
sólo una cosa, en los sets no hace falta el punto y coma, por lo menos en la versión 8i de Oracle

Un saludo
  #11 (permalink)  
Antiguo 26/04/2006, 07:59
Avatar de PequeñoMauro  
Fecha de Ingreso: abril-2006
Ubicación: Lima - Perú
Mensajes: 600
Antigüedad: 18 años
Puntos: 3
Cita:
sólo una cosa, en los sets no hace falta el punto y coma, por lo menos en la versión 8i de Oracle
Cierto, por la costumbre lo uso, pero tienes razón xaquin...
__________________
"Nada en mis manos traigo tan solo a tu cruz me aferro....."
  #12 (permalink)  
Antiguo 28/04/2006, 09:36
 
Fecha de Ingreso: octubre-2004
Ubicación: Santiago de Chile
Mensajes: 504
Antigüedad: 19 años, 6 meses
Puntos: 0
les hice caso. hice un archivo .txt donde estan las instrucciones set asi:

Código HTML:
SET NEWPAGE 0
SET SPACE tab
SET PAGESIZE 0
SET ECHO OFF
SET FEEDBACK OFF
SET HEADING ON
SET UNDERLINE OFF
SET HEADSEP OFF
SET LONG 1000
SET LONGC 1000
SET TRIMSPOOL ON
SET TERMOUT OFF
SET RECSEP OFF
spool C:\impresion\archivo3.txt;
select RUT,NOMBRE,CUENTA,FOLIO,EMISION,VENCIMIENTO
       ,MONTO,TIPO_DOC,USU_CLIE,NAT_JUR,FONO
       ,CELULAR,CORREO,FORMA_PAGO,CICLO_FACT
       ,FECHA_PROC,DIA_MENSAJERIA 
from cobranza_final;
spool off;

Pero solo me aparecen las dos primeras columnas. el rut y el nombre el resto no aparece!!!!!!!. ademas esto necesito exportalo a .xls habla algun formato especial? hay un set que este mal?
He mirado en sqlplus la opcion entorno del menu donde aparecen estas opciones y no doy con la respuesta...
Atte
Mauricio
__________________
Dios es mas grande que tu problema :-)
  #13 (permalink)  
Antiguo 28/04/2006, 09:43
Avatar de PequeñoMauro  
Fecha de Ingreso: abril-2006
Ubicación: Lima - Perú
Mensajes: 600
Antigüedad: 18 años
Puntos: 3
Cita:
Iniciado por maurimono
Pero solo me aparecen las dos primeras columnas. el rut y el nombre el resto no aparece!!!!!!!. ademas esto necesito exportalo a .xls habla algun formato especial?
Por que no usas el TOAD?, lo tienes instalado?, solo que debes siempre ejecutar la consulta, cuando te sale el resultado, le das click con el boton derecho a cualquier dato mostrado en el resultado y te da la opción de poder guardarlo en formato .xls.....

Solo como comentario.....
__________________
"Nada en mis manos traigo tan solo a tu cruz me aferro....."
  #14 (permalink)  
Antiguo 28/04/2006, 09:48
Avatar de PequeñoMauro  
Fecha de Ingreso: abril-2006
Ubicación: Lima - Perú
Mensajes: 600
Antigüedad: 18 años
Puntos: 3
Quitale la opción:
SET SPACE tab
Y prueba si te sale......
__________________
"Nada en mis manos traigo tan solo a tu cruz me aferro....."
  #15 (permalink)  
Antiguo 08/06/2012, 04:02
 
Fecha de Ingreso: junio-2012
Ubicación: Barcelona
Mensajes: 3
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: formato de un select

Create or replace Trigget t_factura
after update on RESERVA
for each row
Declare
v_precio_hab TIPUSHAB.PREU%TYPE;
v_precio_aloj TIPUSESTADA.PREU%TYPE;
Begin
if updating('OCUPADA') then

select PREU into v_precio_hab
from HABITACIO, TIPUSHAB
where :new.NUMHAB=HABITACIO.NUMHAB and habitacio.TIPUSHAB_CODTIPUS=tipushab.codtipus;

select PREU into v_precio_aloj
from TIPUSESTADA
where :new.CODESTADA=TIPUSESTADA.CODESTADA;

Insert into factura values
(
seq_numfra.nextval, :new.NUMHAB, :new.DATAARRIBADA, :new.DATAFACTURACIO, (:new.DATAFACTURACIO-:new.DATAARRIBADA) * (v_precio_hab+v_precio_aloj)
);

endif;
end;


Esto tambien me da el error ORA-00922: falta la opción o no es válida
Alguna solucion?
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:04.