O2SS0160: istruzione SELECT non convertita (errore)

Questo articolo descrive perché SQL Server Migration Assistant (SSMA) per Oracle non converte l'istruzione SELECT in due scenari con clausole di formato non valido ORDER BY .

Background

In alcuni casi SSMA non è in grado di convertire istruzioni complesse SELECT .

Possibili rimedi

Esistono due scenari, in cui SSMA non converte l'istruzione select e genera un messaggio di errore.

Scenario 1: SELECT DISTINCT l'istruzione viene usata con CONNECT BY PRIOR l'istruzione nella query gerarchica

Si consideri l'esempio seguente:

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

Quando si tenta di convertire il codice precedente in SSMA, viene generato il messaggio di errore seguente:

O2SS0160: istruzione SELECT non convertita

Per risolvere il problema precedente, è possibile usare la ORDER BY clausola nel codice sorgente di Oracle, come illustrato di seguito:

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

La query precedente deve essere convertita correttamente da SSMA.

Scenario 2: ORDER BY la clausola ordina il set di risultati in base alle due colonne/campi, ma è stata specificata una sola colonna/campo nella SELECT clausola

Si consideri l'esempio seguente:

SELECT Empno
FROM emp
ORDER BY 1, 2;

Quando si tenta di convertire il codice precedente in SSMA, viene generato il messaggio di errore seguente:

O2SS0160: istruzione SELECT non convertita

Per risolvere questo errore, ridurre il numero di campi/colonne nella ORDER BY clausola o aggiungere campi/colonne aggiuntivi nella SELECT clausola .

Di seguito viene aggiornata la query in cui è stato rimosso il riferimento alla ORDER BYseconda colonna da :

SELECT Deptno
FROM emp
ORDER BY 1;

La query precedente deve essere convertita correttamente da SSMA.

  • O2SS0268: la query gerarchica con outer join non può essere convertita
  • O2SS0285: la query gerarchica non è stata convertita