В POSTGRES - я пытаюсь создать представление из 2 таблиц. Когда значение '0' закодировано для вставки в качестве значения для столбца EAST_LONGITUDE_NMBR типа данных NUMERIC [24,20] в нижней части оператора выбора UNION, генерируется сообщение ERROR.
ПредставлениеСтолбец EXTENTS EAST_LONGITUDE_NMBR происходит из таблицы и столбца CELL_EXTENT.EAST_LONGITUDE_NMBR с типом данных NUMERIC [24,20]
Ниже приведен код.
CREATE VIEW EXTENTS
(
ID,
EXTENT_TYPE,
NAME,
EAST_LONGITUDE_NMBR
)
AS
SELECT
"CELL_EXTENT"."CELL_ID_NMBR",
'CELL',
UPPER ("CELL_EXTENT"."CELL_NAME"),
"CELL_EXTENT"."EAST_LONGITUDE_NMBR"
FROM "EARTH"."CELL_EXTENT"
UNION
(SELECT
"AREA_INTEREST"."AREA_ID_NMBR",
'GEOPOLITICAL',
UPPER ("AREA_INTEREST"."AREA_NAME"),
0
FROM "EARTH"."AREA_INTEREST");
Вставленное значение '0'в нижнем UNION select вызывает следующую ошибку при создании представления EXTENTS.
ОШИБКА: типы UNION числовые [] и целое не могут быть сопоставлены
Я попробовал следующее и получил показанные ошибки:
0 ERROR: UNION types numeric[] and integer cannot be matched
0.0 ERROR: UNION types numeric[] and numeric cannot be matched
0.0::NUMERIC[] ERROR: cannot cast type numeric to numeric[]
0::NUMERIC[] ERROR: cannot cast type integer to numeric[]
Я проверил множество веб-сайтов собсуждение типов данных Postgres, в частности NUMERIC, NUMERIC [], INTEGER, DECIMAL
Разница между типом DECIMAL и NUMERIC в PSQL
https://github.com/npgsql/npgsql/issues/655
https://www.cybertec -postgresql.com / ru / mapping-oracle-datatypes-to-postgresql /
http://www.postgresqltutorial.com/postgresql-cast/
http://www.postgresqltutorial.com/postgresql-to_number/
Я мог бы продолжить, но вы получите картину. О типах данных много, но нет примеров для '0' в качестве фактического значения в коде Postgres для столбца типа данных NUMERIC [] в операторе UNION.
Мне кажется, это простое исправление,пара нажатий клавиш здесь или там, чтобы установить правильное значение, но это ускользает от меня. Я использую pgAdmin4.
Можете ли вы помочь? Спасибо, Маргарет