O2SS0160: SELECT 문이 변환 되지 않음 (오류)

이 문서에서는 Oracle 용 ssma (SQL Server Migration Assistant)가 SELECT 잘못 된 형식의 절이 있는 두 가지 시나리오에서 문을 변환 하지 않는 이유를 설명 합니다 ORDER BY .

배경

SSMA가 복잡 한 문을 변환할 수 없는 경우가 있습니다 SELECT .

가능한 해결 방법

두 가지 시나리오에서 SSMA는 select 문을 변환 하지 않고 오류 메시지를 생성 합니다.

시나리오 1: SELECT DISTINCT 문이 CONNECT BY PRIOR 계층 구조 쿼리에서 문과 함께 사용 됨

아래 예제를 참조 하세요.

SELECT DISTINCT
    empno,
    MGR,
    ename
FROM
    emp
START WITH MGR = 7902
CONNECT BY PRIOR MGR = empno;

SSMA에서 위의 코드를 변환 하려고 하면 다음과 같은 오류 메시지가 생성 됩니다.

O2SS0160: SELECT 문이 변환 되지 않았습니다.

위의 문제를 해결 하기 위해 ORDER BY 아래와 같이 Oracle의 소스 코드에서 절을 사용할 수 있습니다.

SELECT DISTINCT
    empno,
    MGR,
    ename
FROM
    emp
START WITH MGR = 7902
CONNECT BY PRIOR MGR = empno
ORDER BY empno;

위의 쿼리는 SSMA에서 성공적으로 변환 해야 합니다.

시나리오 2: ORDER BY 절은 두 개의 열/필드를 기준으로 결과 집합을 정렬 하지만 절에서 열/필드를 하나만 지정 했습니다. SELECT

아래 예제를 참조 하세요.

SELECT Empno
FROM emp
ORDER BY 1, 2;

SSMA에서 위의 코드를 변환 하려고 하면 다음과 같은 오류 메시지가 생성 됩니다.

O2SS0160: SELECT 문이 변환 되지 않았습니다.

이 오류를 해결 하려면 절에서 필드/열 수를 줄이거나 ORDER BY 절에서 필드/열을 추가 SELECT 합니다.

다음은에서 두 번째 열 참조를 제거 하는 업데이트 된 쿼리입니다 ORDER BY .

SELECT Deptno
FROM emp
ORDER BY 1;

위의 쿼리는 SSMA에서 성공적으로 변환 해야 합니다.

  • O2SS0268: outer join을 사용 하는 계층적 쿼리를 변환할 수 없습니다.
  • O2SS0285: 계층적 쿼리가 변환 되지 않았습니다.