U2 Universe SQL SSIS проблема с возвратом данных для определенных столбцов

Я новичок в U2 Universe, поэтому я изучал его и изучал документацию, выполняя поиск по стеку, но все еще не могу понять, почему оператор select all возвращает только один столбец - @ID. Я пытался сделать эти операторы выбора, используя u2netdk в SSIS.

ВЫБРАТЬ * ОТ СЧЕТА

Я провел еще какое-то исследование и обнаружил, что некоторые записи, в которых смутно описываются столбцы, должны быть введены в @. Я не был уверен, что это значит - это файл @ или часть словаря файлов?

Кроме того, мне удалось извлечь словарь файла, в котором перечислены все доступные столбцы, но когда я попытался запросить некоторые столбцы в службах SSIS с помощью диспетчера соединений ADO.NET, возникла ошибка, в результате которой столбец не может быть найден. Тем не менее, когда я набираю ту же инструкцию в TCL, он возвращает строки с данными. Почему это происходит?

Спасибо, JT

2 ответа

Решение

Настоящий TL;DR здесь состоит в том, чтобы добавить элемент словаря типа "PH" с именем "@" и поместить туда нужные столбцы. Если вы хотите использовать "SELECT *", вам также нужна запись "@SELECT". Имейте в виду, что многозначные и однозначные поля могут не очень хорошо играть здесь, потому что их следует рассматривать как отдельные таблицы. Ознакомьтесь с главой 6 документа UniVerse "Администрирование SQL для администраторов баз данных", который называется "Файлы UniVerse и SQL", чтобы понять это.

Структуры данных стиля выбора, такие как UniVerse, являются исходным NOSQL, поскольку они существовали в то время, когда ANSI SQL еще не был стандартом, а цена места для хранения метаданных была очень высокой.

Выполнение SQL из UniVerse сложно, потому что типизация данных в SQL определяется явно, тогда как данные и словарь в Universe являются отдельными структурами и хранятся, а иногда даже используются независимо друг от друга. Вы МОЖЕТЕ использовать словарь как своего рода ключ, когда читаете или пишете, чтобы выяснить, с каким типом данных вы работаете, но вам нечего сказать. Кроме того, язык запросов позволяет вам в любое время изменить используемый вами словарь, а данные, которые не соответствуют структуре словаря, просто отображаются неожиданным образом, а не фантастически. Это может быть невероятно свободным или привести к безумию, но это другая тема.

Чтобы UniVerse хорошо играл с SQL, вы должны определить словарь таким образом, чтобы он привязывался к базовой структуре данных. Когда вы читаете запись или запись из Universe, вы, по сути, считываете полный набор данных с 1 или более таблицами, вложенными до 3 уровней. В вашем случае я бы взял все поля типа "D" и "I", к которым вы хотите получить доступ, и поместил их в PH-запись "@" словаря. В "@" не имеет значения, многозначны они или нет. Это сделает поля доступными для ссылки из SQL, хотя у вас все еще могут быть проблемы с данными в зависимости от вашего словаря.

Если вы хотите сделать "SELECT * FROM foo;" Вы должны иметь оператор "@SELECT", который является подмножеством записи "@", содержащей только однозначные поля. Вы захотите сделать записи PH каждой многозначной ассоциации, содержащей связанные поля, которые вы хотите получить, и затем присоединитесь, чтобы получить один унифицированный запрос. Имейте в виду, что даже при всем этом SQL будет отвечать по-другому на приглашение TCL, чем через ODBC.

Вот быстрый пример. NAME и EMAIL имеют одно значение, а DATE и AMOUNT являются многозначными.

@
PH
NAME EMAIL DATE AMOUNT

@SELECT
PH
NAME EMAIL

ORDERS
PH
DATE AMOUNT

Удачи!

Похоже, вам нужно обновить словарную запись @SELECT для таблиц / файлов, которые вы хотите запросить. Вам нужно будет заполнить эту запись для каждого файла / таблицы DICT (атрибут 1, разделенный пробелом) всеми полями, которые вы хотите сделать доступными для ODBC/u2netdk.

Когда вы готовите базу данных Universe для запросов ODBC / u2netdk, нужно немного настроить. Пожалуйста, посмотрите на мой другой ответ для моих рекомендаций для чтения и обработки при настройке базы данных для этого

/questions/36742007/peremeschenie-dannyih-universe-v-sql-server-2014-s-pomoschyu-instrumentariya-u2/36742024#36742024

Другие вопросы по тегам