U moet NULL's expliciet casten naar de juiste typen in de bovenste SELECT
.
CREATE VIEW MY_VIEW AS
SELECT
TABLE_A.A1,
TABLE_A.A2,
CAST(null AS <type_of_TABLE_B_B2>) as B2
from TABLE_A
union all
SELECT
null,
TABLE_B.B1,
TABLE_B.B2
from TABLE_B;
Wat betreft de alternatieven als @evilive zegt dat je vaste waarden als lege tekenreeks kunt gebruiken (''
) voor VARCHAR's of nul voor NUMBER's, maar naar mijn mening is expliciete cast een betere oplossing omdat het duidelijk is en geen verrassingen zal veroorzaken