У меня есть конкретный запрос с объединениями и псевдонимами, и мне нужно получить имя столбца для запроса REST в Talend.
Я использую Talend Open Studio для интеграции данных 6.2, и у меня есть база данных Oracle 11g с учетной записью только для чтения. Я могу выполнить сценарии с Talend, например запрос:
select
u.name as "user",
f.name as "food",
e.rate
from
Users as u
join Eval as e on u.user_id = e.user_id
join Food as f on e.food_id = f.food_id
where
1 = 1
Должен дать следующий результат:
+------+--------+------+
| user | food | rate |
+------+--------+------+
| Baba | Donuts | 16.0 |
| Baba | Cheese | 20.0 |
| Keke | Pasta | 12.5 |
| Keke | Cheese | 15.0 |
+------+--------+------+
И я пытаюсь получить столбцы (в правильном порядке) следующим образом, используя сценарии или Talend:
+--------+
| Column |
+--------+
| user |
| food |
| rate |
+--------+
Есть ли способ запросить базу данных Oracle, чтобы получить столбцы или использовать Talend для их получения?
ОБНОВИТЬ
Благодаря Marmite Bomber, был идентифицирован дубликат здесь для подхода Oracle. Теперь нам нужен Talend подход к проблеме.
3 ответа
Вы можете попробовать это на tJavaRow, следуя вашему компоненту DBInput:
for (java.lang.reflect.Field field: row1.getClass().getDeclaredFields()) {
context.columnName = field.getName();
System.out.println("Field name is " + context.columnName );
}
Обнаружен в справочном центре Talend здесь: https://community.talend.com/t5/Design-and-Development/resolved-how-to-get-the-column-names-in-a -data - поток / TD -п / 99172
Вы можете расширить это и поместить список столбцов в ваш поток вывода:
//add this inside the loop, and 'columnNames' as an output row in tJavaRow schema
output_row.columnNames+=context.columnName+";";
С tNormalize после tJavaRow вы должны получить ожидаемый результат.
Вот ссылка на ветку сообщества оракулов, которая должна ответить на ваш вопрос
Я не могу написать комментарий, поэтому публикую это как ответ:
SELECT column_name
FROM all_tab_cols
WHERE table_name = 'table_name_here'
Похожие вопросы
Новые вопросы
sql
Язык структурированных запросов (SQL) - это язык запросов к базам данных. Вопросы должны включать примеры кода, структуру таблицы, примеры данных и тег для используемой реализации СУБД (например, MySQL, PostgreSQL, Oracle, MS SQL Server, IBM DB2 и т. Д.). Если ваш вопрос относится исключительно к конкретной СУБД (использует определенные расширения / функции), используйте вместо этого тег этой СУБД. Ответы на вопросы, помеченные SQL, должны использовать стандарт ISO / IEC SQL.