Musisz jawnie rzutować NULL na odpowiednie typy w górnym 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;
Jeśli chodzi o alternatywy, takie jak @evilive mówi, że możesz używać stałych wartości jako pustych ciągów (''
) dla VARCHARs lub zero dla NUMBERS ale moim zdaniem wyraźne rzutowanie jest lepszym rozwiązaniem bo jest oczywiste i nie spowoduje niespodzianek