O2SS0160: istruzione SELECT non convertita (errore)

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

Sfondo

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

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: la clausola ordina il set di risultati in base alle due colonne/campi, ma è stata specificata una ORDER BY 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 clausola o ORDER BY aggiungere altri campi/colonne nella SELECT clausola .

Di seguito è stata aggiornata la query in cui è stato rimosso il riferimento alla seconda colonna da ORDER BY :

SELECT Deptno
FROM emp
ORDER BY 1;

La query precedente deve essere convertita correttamente da SSMA.

  • O2SS0268: impossibile convertire una query gerarchica con outer join
  • O2SS0285: la query gerarchica non è stata convertita