I'm learning SQL Oracle and tried to create a view, but I keep getting this error. I know is because of that NULL, but still don't know how to fix it. Any advice is helpful. Thanks.
CREATE VIEW Produse_HP (model, categorie, viteza, ram, hd, ecran, culoare, tip, pret)
AS
SELECT * FROM
(SELECT model, categorie, viteza, ram, hd, NULL, NULL, NULL, pret
FROM Produs NATURAL JOIN PC
WHERE fabricant = 'HP' UNION
SELECT model, categorie, viteza, ram, hd, ecran, NULL, NULL, pret
FROM Produs NATURAL JOIN Laptop
WHERE fabricant = 'HP' UNION
SELECT model, categorie, NULL, NULL, NULL, NULL, culoare, tip, pret
FROM Produs NATURAL JOIN Imprimanta
WHERE fabricant = 'HP');
It suppose to show those collumns with SELECT [model, categorie, viteza, ram, hd, ecran, culoare, tip, pret]. I need it this way because I need it in a instead-of trigger, to insert values through this view.
2条答案
按热度按时间gt0wga4j1#
您需要空值的别名。至少在第一个查询中是这样,以便Oracle知道如何在结果中调用列:
5gfr0r5j2#
除了@Thorsten的答案之外,您还需要使用CAST()函数声明空值的数据类型,