Cómo dar formato a la salida de unix shell script del archivo plano que se genera a partir de .sql en el archivo de secuencia de comandos de shell de unix

0

Pregunta

Tengo un unix shell script que extrae los datos de la base de datos .archivo sql . En este SQL tengo que formatear el archivo de salida con un CONJUNTO de comandos. Necesito la salida de tal manera que la pantalla de salida es con el encabezado de la columna sin ningún espacio o líneas en la cabecera.

Resultado esperado:

Header1,header 2
Mark,California
Steve,India

La salida que yo veo:(línea extra antes de la cabecera y las líneas de puntos después de la cabecera)

Header1, header 2
-----------------
Mark,California
Steve, India

Secuencia de comandos de Shell:

ABC.sh
a=`sqlplus -silent $Database name @Ggg.sql`
mv xyz.csv xyz_$1.csv
dos2unix xyz_*.csv 2>  /dev/null
 (cat body.txt; uuencode xyz_$1.csv xyz_$1.csv) | mailx -s "subject" 
 [email protected]
(SQL file Gggg.sql is called and email is sent)

Ggg.sql 
`Set pagesize 5000`
`Set linesize 700`
`Set trimspool off`
`Set heading on`
`Set feedback off`
`Set term off`
`Set verify off``
Spool jjj.csv;
`Select * from table1 where column = '5'`;
`SPOOL OFF`;
EXIT`;
bash header shell sql
2021-11-23 14:54:54
2
0

Asumiendo que su salida contiene 5 líneas:


Header1, header 2
-----------------
Mark,California
Steve, India

usted puede eliminar las líneas no deseadas después de que se generan mediante sed (o encontrar la manera de hacerlo en sql que quizás es más difícil)

ABC.sh | sed '1d;3d'

salida:

Header1, header 2
Mark,California
Steve, India
2021-11-23 17:34:14

Tal vez es más fácil hacerlo después de la salida es generada, pero necesito una manera de hacerlo en el. Archivo de SQL sólo como el .csv de salida de archivos planos generados es necesario para estar en el formato correcto.
Milagrin
0

De lo que he entendido sobre tu pregunta, lo que desea es una secuencia de comandos SQL para el resultado en la columna nombres de seguir inmediatamente después de que por una tabla de resultados, por lo que sólo puede seleccionar los nombres de columna y UNION a la mesa de los resultados como este:

SELECT 'Header1', 'header 2'
UNION
SELECT Header1, Header2 FROM TableName

Recordatorio de que UNION'ed selecciones deben tener la misma cantidad de columnas.

En caso de que el esquema de la tabla es más complejo que algo simple como eso, necesitaría correctamente detalle de ella para que la consulta iba a funcionar como se esperaba.

2021-12-02 21:22:38

En otros idiomas

Esta página está en otros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Slovenský
..................................................................................................................