sourcecode

Oracle 오류 ORA-01790을 해결하는 방법은 무엇입니까?

codebag 2023. 9. 20. 20:18
반응형

Oracle 오류 ORA-01790을 해결하는 방법은 무엇입니까?

저는 "연합"에 의해 결합된 두 개의 선택된 진술이 있습니다.그 진술을 실행하는 동안 나는 다음과 같은 말을 들었습니다.

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

혹시 이 문제를 어떻게 진단해야 하는지 조언을 해주실 수 있나요?

SQL을 보지 않고서는 UNION 중인 열이 서로 다른 데이터 유형을 가지고 있다고 추측할 수 있습니다.

발견된 내용은 다음과 같습니다.

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

원인: SELECT 목록 항목은 동일한 집합 식의 다른 쿼리에서 데이터 유형이 다른 SELECT 목록 항목에 해당합니다.

Action: 해당하는 SELECT 목록 항목의 데이터 유형이 모두 동일한지 확인합니다.TO_NUMBER, TO_CHAR 및 TO_DATE 함수를 사용하여 명시적인 데이터 변환을 수행합니다.

문의하신 내용을 보지는 못했지만, 조합에서 한 선택 항목이 다른 선택 항목과 동일한 열을 선택하지 않는 것 같습니다.

분명히 포스터에 대한 문제는 반년 전에 해결되었지만, 그럼에도 불구하고 저는 선택된 속성(열)의 순서가 하나의 연합된 문장에서 다음 문장으로 일치해야 한다는 도움을 찾기 위해 이 게시물을 읽는 모든 사람에게 지적하고 싶었습니다.어떤 의미에서는 이름과 데이터 유형이 일치하는 것만으로는 충분하지 않습니다.그러나 Oracle에서 Union 문을 처리하는 방식으로 인해 열의 순서만 일치하지 않아 ORA-01790 오류가 발생할 수 있습니다.

저 같은 경우에는 UNION ALL로 두 가지 선택 사항에 대해 문의를 했습니다.한 선택 항목은 선택 항목의 25번째 항목으로 "generic_column_name"이라는 열이 있었고, 다른 선택 항목은 동일한 데이터 유형의 "generic_column_name"이라는 동일한 열이 있었습니다(하드 코딩 및 강제 데이터 유형 변환을 통해 여러 가지 방법을 테스트했습니다).그러나 두번째 선택은 이 항목이 19위에 있어 그 이후의 모든 열이 오프셋되어 ORA-01790 오류가 발생했습니다.

질문에서 언급했듯이 문제를 해결하는 방법에 대한 제안을 받고 싶습니다.각 select 문에서 한 번에 하나의 열을 활성화한 결과 SQL UNION의 맨 마지막 열에서 불일치가 발생했습니다.참여해주시고 도와주셔서 정말 감사합니다만, 제가 유형 불일치가 있다는 것을 알고 있었습니다. 제가 몰랐던 것은 문제를 해결하는 방법입니다.

이 오류는 다른 데이터 유형으로 열을 결합하고 있음을 알려줍니다.한 유형을 다른 유형으로 변환하는 오라클 함수가 있습니다(예: "to_char"). 데이터 유형을 공통 형식으로 변환하거나 적어도 하나를 다른 유형으로 변환해야 합니다.실제 쿼리/타입을 게시하면 좀 더 구체적으로 확인할 수 있습니다.

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

SELECT 문(아마도 UNION 또는 UNION ALL)을 실행하려고 했는데 모든 쿼리에 결과 열에 일치하는 데이터 유형이 포함되지 않았습니다.

테크 온더넷 - ORA-01790

오늘도 똑같은 문제가 있었습니다.에 있습니다.union으로 열 대로,

언급URL : https://stackoverflow.com/questions/1863112/how-to-resolve-oracle-error-ora-01790

반응형