Как отформатировать вывод плоского файла сценария оболочки unix, который создается из файла .sql в сценарии оболочки unix

0

Вопрос

У меня есть скрипт оболочки unix, который извлекает данные из базы данных с помощью файла .sql . В этом SQL мне нужно отформатировать вывод файла с помощью команд SET. Мне нужен вывод таким образом, чтобы вывод отображался с заголовком столбца без каких-либо интервалов или строк в заголовке.

Ожидаемый результат:

Header1,header 2
Mark,California
Steve,India

Вывод, который я вижу:(дополнительная строка перед заголовком и пунктирные линии после заголовка)

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

Сценарий оболочки:

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

Предполагая, что ваш вывод содержит 5 строк:


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

вы можете удалить ненужные строки после их создания с помощью sed (или найдите способ сделать это в sql, что, возможно, сложнее)

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

выход:

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

Возможно, это проще сделать после того, как будет сгенерирован вывод, но мне нужен способ сделать это в. Файл SQL только в виде сгенерированного плоского файла .csv должен быть в правильном формате.
Milagrin
0

Из того, что я понял по вашему вопросу, вы просто хотите, чтобы SQL-скрипт приводил к вашим именам столбцов, за которыми сразу следовали результаты таблицы, чтобы вы могли просто выбрать имена столбцов и UNION их в таблицу результатов, как это:

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

Напоминание о том, что UNION"выбранные элементы должны содержать одинаковое количество столбцов.

В случае, если ваша схема таблицы сложнее, чем что-то подобное, вам потребуется правильно ее детализировать, чтобы запрос работал должным образом.

2021-12-02 21:22:38

На других языках

Эта страница на других языках

Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................