문제

"Union"에 합류 한 두 가지 선택 진술이 있습니다. 그 진술을 실행하는 동안 나는 다음과 같습니다.

오류 보고서 : SQL 오류 : ORA -01790 : 표현식은 해당 표현식과 동일한 데이터 유형을 가져야합니다. 00000- "표현식은 해당 표현식과 동일한 데이터 유형을 가져야합니다.

이 문제를 진단하는 방법에 대한 조언을 줄 수 있습니까?

도움이 되었습니까?

해결책 7

질문에서 언급했듯이 문제를 해결하는 방법에 대한 제안을하고 싶습니다. 내가 한 일은 각 select 문에서 한 번에 하나의 열 씩 활성화되었으며 SQL Union의 마지막 열에서 불일치가 있음을 발견했습니다. 참여하고 도와 주셔서 감사합니다. 그러나 나는 유형의 불일치가 있다는 것을 알았습니다. 내가 몰랐던 것은 문제 해결 방법입니다.

다른 팁

SQL을 보지 않고는 데이터 유형이 다른 열이 있습니다.

찾은 내용은 다음과 같습니다.

ORA-01790 : 표현식은 해당 표현식과 동일한 데이터 유형을 가져야합니다

원인: 선택 목록 항목은 동일한 세트 표현식의 다른 쿼리에 다른 데이터 유형이있는 선택 목록 항목에 해당합니다.

동작: 해당 모든 선택 목록 항목이 동일한 데이터 유형을 가지고 있는지 확인하십시오. TO_NUMBER, TO_CHAR 및 TO_DATE 기능을 사용하여 명시 적 데이터 변환을 수행하십시오.

나는 당신의 쿼리를 보지 못했지만 당신의 노조에서 하나의 선택이 다른 열을 선택하지 않는다고 생각합니다.

오류는 다른 데이터 유형을 가진 Union-ing 열을 알려줍니다. 한 유형을 다른 유형 (예 : "to_char")으로 변환하는 Oracle 함수가 있으며, 데이터 유형을 공통 형식으로, 또는 하나 이상 다른 하나로 변환해야합니다. 실제 쿼리/유형을 게시하면 더 지정할 수 있습니다.

그럼에도 불구하고 포스터의 문제는 반 10 년 전에 해결되었지만, 선택한 속성 (열)의 순서가 하나의 조합 된 진술에서 다음 진술과 일치해야한다는 도움을 찾아이 게시물을 읽는 사람을 지적하고 싶었습니다. 단순히 이름과 데이터 유형이 일치하는 것만으로는 충분하지 않지만 근본 원인이라는 의미입니다. 그러나 Oracle에서 Union 진술이 처리되는 방식으로 인해 열 순서 만 불일치하여 ORA-01790 오류를 얻을 수 있습니다.

제 경우에는 두 개의 선택이 모두 노조와 함께 쿼리가있었습니다. 하나의 선택은 "generic_column_name"이라는 열이 Select의 25 번째 항목으로, 다른 Select는 동일한 데이터 유형의 "generic_column_name"이라는 동일한 열을 가졌습니다 (하드 코딩 및 강제 데이터 유형 변환을 사용하여 여러 가지 방법으로 테스트했습니다. ). 그러나 두 번째 선택은이 항목이 19 위에 있었으므로 거기에있는 모든 열이 오프셋되어 ORA-01790 오류가 발생했습니다.

노조의 해당 열에 동일한 데이터 유형이 있는지 확인해야합니다. 가장 쉬운 방법은 열을 하나씩 댓글을 달아서 열을 좁히고 그 중 하나에서 명시 적 유형 변환 함수를 사용하여 유형을 일치시키는 것입니다.

Select 문 (아마도 노조 또는 노조 모두)을 실행하려고 시도했으며 모든 쿼리에는 결과 열에 일치하는 데이터 유형이 포함되어 있지 않았습니다.

Techonthenet -ORA -01790

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top