Я пытаюсь не только запрашивать различные таблицы в моей базе данных и экспортировать их в CSV, но также экспортировать данные из нескольких таблиц и объединить их в виде столбцов в этот CSV.Oracle: запрос запроса SQLPlus с заголовками
Я начинаю с предпосылкой возможности намотать содержимое таблицы в CSV-файл:
set colsep ','
set echo off
set feedback off
set linesize 1000
set sqlprompt ''
set headsep off
spool file.csv
select * from messages;
Теперь я хочу, чтобы захватить некоторые компоненты нескольких таблиц, не помог (с профсоюзом и минусом) :
select col1, col2, col3 from messages
union
select col1, col2 from messagedata
union
select col1 from extradata;
в попытке вышеупомянутый метод, я буду получать ORA -1789 query block has incorrect number of result columns
это означает, что я пытаюсь совпасть неверное число столбцов (которые я пытаюсь избежать, просто добавив столбцы в моем выходе).
И дано либо объединение или минус это будет ошибка на неправильном типе данных, но это существо, потому что он просто пытается добавить его к столбцам от моего первого запроса.
Моя цель есть создать запрос, который производит аналогичный вывод:
| col1(messages) | ... | col2(messagedata) | ... | col3(extradata) |
-----------------------------------------------------------------------
message ,... ,messagedata ,... ,extradata
message ,... ,messagedata ,... ,extradata
message ,... ,messagedata ,... ,extradata
So два вопроса:
ли это возможно для меня сцепить данные из нескольких таблиц в столбец выход, как указано выше? Как и в создании новых столбцов для вывода вместо добавления к существующим столбцам?
Как я могу дать заголовок для моих данных (пользовательских или уже определенных идентификатором в таблице) в верхней части столбца?
Вы хотите 'JOIN' эти таблицы, а не' UNION'. Теперь, как таблицы связаны друг с другом? – peterm
Вы не можете выводить в столбцы независимо. Столбец является частью строки.Даже если у вас нет каких-либо отношений между таблицами, вам нужно «ПРИСОЕДИНЯЙТЕ» их, используя номер строки, например. – peterm