Arhn - архитектура программирования

Я получаю сообщение об ошибке 3802 при выполнении SQL-запроса в Teradata SQL.

Я запускаю следующий запрос.

create multiset volatile table table1 as (
select
a.variable1,
a.variable2, 
b.variable3, 
b.variable4, 
c.variable5, 
c.variable6, 
d.variable7,
d.variable8

from data1 as a
left join data2 as b
on a.ID1=b.ID1 and a.date1=b.date1
left join data3 as c
on a.ID1=c.ID1 and a.date1=c.date1
left join data4 as d
on a.ID1=d.ID1 and a.date1=d.date1
where a.variable1>100 and a.varaiable2 in ('A','B'))
with data primary index (id1,id2,id3,date1) on commit preserve rows ;

Я получаю сообщение об ошибке: PreparedStatementCallback; плохая грамматика SQL []; вложенным исключением является java.sql.SQLException: [База данных Teradata] [TeraJDBC 16.20.00.08] [Ошибка 3802] [SQLState 42S02] База данных 'd' не существует."]

Однако я могу выполнить запрос select * from data4, что означает, что data4 существует.

Будет здорово, если вы, ребята, поможете мне выяснить, что вызывает эту ошибку.

Спасибо заранее.

23.01.2020

  • Во-первых, ваш первичный индекс опирается на столбцы, которых нет в конечном наборе. 23.01.2020
  • Очевидно, это не настоящий запрос. Ошибка указывает на то, что что-то в запросе заставляет Teradata думать, что вы используете d в качестве ссылки на базу данных вместо псевдонима таблицы. Возможно, где-то в реальном запросе есть дополнительная точка, например d.col.z, которая будет интерпретироваться как база данных d table col column z? 23.01.2020

Ответы:


1

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

В этом случае вам необходимо:

A.ID1 AS ID1,
B.ID1 AS ID2,
C.ID1 AS ID3,
A.DATE1 AS DATE1,

Попробуй это:

CREATE MULTISET VOLATILE TABLE TABLE1 AS (
SELECT
A.ID1 AS ID1,
B.ID1 AS ID2,
C.ID1 AS ID3,
A.DATE1 AS DATE1,
A.VARIABLE1,
A.VARIABLE2, 
B.VARIABLE3, 
B.VARIABLE4, 
C.VARIABLE5, 
C.VARIABLE6, 
D.VARIABLE7,
D.VARIABLE8
FROM DATA1 AS A
LEFT JOIN DATA2 AS B
ON A.ID1=B.ID1 AND A.DATE1=B.DATE1
LEFT JOIN DATA3 AS C
ON A.ID1=C.ID1 AND A.DATE1=C.DATE1
LEFT JOIN DATA4 AS D
ON A.ID1=D.ID1 AND A.DATE1=D.DATE1
WHERE A.VARIABLE1>100 AND A.VARIABLE2 IN ('A','B')
)
WITH DATA
PRIMARY INDEX (ID1,ID2,ID3,DATE1)
ON COMMIT PRESERVE ROWS;
24.01.2020
Новые материалы

Коллекции публикаций по глубокому обучению
Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

Представляем: Pepita
Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

Советы по коду Laravel #2
1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

3 способа решить квадратное уравнение (3-й мой любимый) -
1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

Создание VR-миров с A-Frame
Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

Демистификация рекурсии
КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..