<p>두 개의 테이블(테이블 A와 테이블 B)이 있습니다. </p>
<p>두 테이블의 열 개수는 서로 다릅니다. 즉, 테이블 A에 더 많은 열이 있다고 가정합니다. </p>
<p>이 두 테이블을 병합하고 테이블 B에 없는 열에서 null 값을 얻으려면 어떻게 해야 합니까? </p>
여기에 와서 위의 답변을 따랐습니다. 그러나 데이터 유형의 순서 불일치로 인해 오류가 발생했습니다. 아래의 다른 답변에 대한 설명이 도움이 될 것입니다.
위 결과가 표의 열 순서와 동일합니까? Oracle은 열 순서에 매우 엄격하기 때문입니다. 다음 예시에서는 오류가 발생합니다.
으아악
ORA-01790: 표현식은 해당 표현식과 동일한 데이터 유형을 가져야 합니다
보시다시피 오류의 근본 원인은 *를 열 목록 지정자로 사용하여 암시된 열 순서 불일치에 있습니다. 이러한 유형의 오류는 열 목록을 명시적으로 입력하면 쉽게 피할 수 있습니다.
test1_1790에서 col_a, col_b, col_c를 선택하세요.
모두 노동조합
test2_1790에서 col_a, col_b, col_c를 선택하십시오.
이 오류가 발생하는 더 일반적인 상황은 SELECT 목록에서 두 개 이상의 열을 실수로 바꾸거나 이동하는 경우입니다.
으아악
또는 위 방법으로 문제가 해결되지 않으면 다음과 같이 열에 별칭을 생성하는 것이 좋습니다. (쿼리는 귀하의 것과 다르지만 여기서 요점은 열에 별칭을 추가하는 방법입니다.)
여기에 와서 위의 답변을 따랐습니다. 그러나 데이터 유형의 순서 불일치로 인해 오류가 발생했습니다. 아래의 다른 답변에 대한 설명이 도움이 될 것입니다.
위 결과가 표의 열 순서와 동일합니까? Oracle은 열 순서에 매우 엄격하기 때문입니다. 다음 예시에서는 오류가 발생합니다.
으아악ORA-01790: 표현식은 해당 표현식과 동일한 데이터 유형을 가져야 합니다
보시다시피 오류의 근본 원인은 *를 열 목록 지정자로 사용하여 암시된 열 순서 불일치에 있습니다. 이러한 유형의 오류는 열 목록을 명시적으로 입력하면 쉽게 피할 수 있습니다.
test1_1790에서 col_a, col_b, col_c를 선택하세요. 모두 노동조합 test2_1790에서 col_a, col_b, col_c를 선택하십시오. 이 오류가 발생하는 더 일반적인 상황은 SELECT 목록에서 두 개 이상의 열을 실수로 바꾸거나 이동하는 경우입니다.
으아악또는 위 방법으로 문제가 해결되지 않으면 다음과 같이 열에 별칭을 생성하는 것이 좋습니다. (쿼리는 귀하의 것과 다르지만 여기서 요점은 열에 별칭을 추가하는 방법입니다.)
으아악열이 적은 테이블의 경우 빈 열을 추가할 수 있습니다. 예:
으아악