Compartilhar via


Configurações do projeto (conversão) (OracleToSQL)

A página Conversão da caixa de diálogo Configurações do Projeto contém configurações que personalizam como o SSMA converte a sintaxe Oracle em sintaxe do SQL Server.

O painel Conversão está disponível nas caixas de diálogo Configurações do Projeto e Configurações Padrão do Projeto:

  • Para especificar configurações para todos os projetos SSMA, no menu Ferramentas, clique em Configurações Padrão do Projeto, selecione o tipo de projeto de migração cujas configurações precisam ser exibidas ou alteradas na lista suspensa Versão de Destino da Migração, depois clique em Geral na parte inferior do painel esquerdo e clique em Conversão.

  • Para especificar configurações para o projeto atual no menu Ferramentas, clique em Configurações do projeto, em seguida clique em Geral na parte inferior do painel esquerdo e, em seguida, clique em Conversão.

Funções internas e pacotes fornecidos

Termo Definição
Converter a função COUNT em COUNT_BIG Se é provável que suas COUNT funções retornem valores maiores que 2.147.483.647, que é 231-1, você deve converter as funções em COUNT_BIG.

Se você selecionar Sim, o SSMA converterá todos os usos de COUNT para COUNT_BIG.

Se você selecionar Não, as funções permanecerão como COUNT. O SQL Server retornará um erro se a função retornar um valor maior que 231-1.

Quando você seleciona um modo de conversão na caixa Modo, o SSMA aplica a seguinte configuração:

Modo Padrão/Completo: sim
Modo Otimista: não
Converter chamadas de função SUBSTR em chamadas de função SUBSTRING O SSMA pode converter chamadas de função SUBSTR Oracle em chamadas de função do SQL Server substring, dependendo do número de parâmetros. Se o SSMA não puder converter uma SUBSTR chamada de função ou o número de parâmetros não for suportado, o SSMA converterá a chamada de função SUBSTR em uma chamada de função SSMA personalizada.

Se você selecionar Sim, o SSMA converterá as chamadas de função SUBSTR que usam três parâmetros no SQL Server substring. Outras SUBSTR funções serão convertidas para chamar a função SSMA personalizada.

Se você selecionar Não, o SSMA converterá a chamada de função SUBSTR em uma chamada de função SSMA personalizada.

Quando você seleciona um modo de conversão na caixa Modo, o SSMA aplica a seguinte configuração:

Modo padrão/otimista: sim
Modo Completo: não
Converter chamadas de função TO_CHAR (data, formato) O SSMA pode converter o Oracle TO_CHAR(date, format) em procedimentos a partir do ssma_oracle esquema.

Se você selecionar Usando a função TO_CHAR_DATE, o SSMA converterá a função TO_CHAR(date, format) em TO_CHAR_DATE usando o idioma inglês para conversão.

Se você selecionar Usando a função TO_CHAR_DATE_LS (NLS care), o SSMA converterá a função TO_CHAR(date, format) em TO_CHAR_DATE_LS usando o idioma da sessão para conversão

Quando você seleciona um modo de conversão na caixa Modo, o SSMA aplica a seguinte configuração:

Modo Padrão/Otimista: usando a função TO_CHAR_DATE
Modo completo: usando a função TO_CHAR_DATE_LS (NLS care)
Gerar erro para DBMS_SQL.PARSE Se você selecionar Erro, o SSMA gerará um erro na conversão DBMS_SQL.PARSE.

Se você selecionar Aviso, o SSMA gerará um aviso na conversão DBMS_SQL.PARSE.

Quando você seleciona um modo de conversão na caixa Modo, o SSMA aplica a seguinte configuração:
Modo Padrão/Otimista/Completo: erro
Usar chamadas de função ISNULL em CONCAT A instrução ISNULL é usada em chamadas de função CONCAT para emular o comportamento do Oracle. As opções a seguir estão presentes para essa configuração:

SIM

Não

Quando você seleciona um modo de conversão na caixa Modo, o SSMA aplica a seguinte configuração:

Modo Padrão/Otimista: não
Modo completo: sim
Usar chamadas de função ISNULL em REPLACE A instrução ISNULL é usada em chamadas de função REPLACE para emular o comportamento do Oracle. As opções a seguir estão presentes para essa configuração:

SIM

Não

Quando você seleciona um modo de conversão na caixa Modo, o SSMA aplica a seguinte configuração:

Modo Padrão/Otimista: não
Modo completo: sim
Use a função de conversão nativa quando possível Se você selecionar Sim, o SSMA converterá a TO_CHAR(date, format) função de conversão nativa quando possível.

Se você selecionar Não, o SSMA converterá as opções TO_CHAR(date, format) em TO_CHAR_DATE ou TO_CHAR_DATE_LS (É definido pelas opções Converter TO_CHAR (data, formato)).

Quando você seleciona um modo de conversão na caixa Modo, o SSMA aplica a seguinte configuração:

Modo padrão/otimista: sim
Modo Completo: não

Mensagens de conversão

Termo Definição
Gerar mensagens sobre problemas Especifica se o SSMA gera mensagens informativas durante a conversão, as exibe no painel Saída e as adiciona ao código convertido.

Quando você seleciona um modo de conversão na caixa Modo, o SSMA aplica a seguinte configuração:

Modo Padrão/Otimista: não
Modo Completo: não

Opções diversas

Termo Definição
Transmissão de expressões ROWNUM como números inteiros Quando o SSMA converte expressões ROWNUM, ele converte a expressão em uma cláusula TOP, seguida pela expressão. O exemplo a seguir mostra ROWNUM em uma instrução DELETE do Oracle:

DELETE FROM Table1
WHERE ROWNUM < expression and Field1 >= 2

O exemplo a seguir mostra Transact-SQL resultante:

DELETE TOP (expression-1)
FROM Table1
WHERE Field1>=2

O TOP requer que a expressão das cláusulas TOP seja avaliada como um número inteiro. Se o número inteiro for negativo, a instrução produzirá um erro.

Se você selecionar Sim, o SSMA converterá a expressão como um número inteiro.

Se você selecionar Não, o SSMA marcará todas as expressões de números não inteiros como um erro no código convertido.

Quando você seleciona um modo de conversão na caixa Modo, o SSMA aplica a seguinte configuração:

Modo Padrão/Completo: não
Modo Otimista: sim
Mapeamento de esquema padrão Essa configuração especifica como os esquemas do Oracle são mapeados para esquemas do SQL Server. Duas opções estão disponíveis nessa configuração:

Esquema para banco de dados: nesse modo de esquema do Oracle sch1 será mapeado por padrão para o dbo esquema do SQL Server no banco de dados do SQL Server sch1.

Esquema para esquema: nesse modo de esquema do Oracle sch1 será mapeado por padrão para o sch1 esquema do SQL Server no banco de dados padrão do SQL Server fornecido na caixa de diálogo de conexão.

Quando você seleciona um modo de conversão na caixa Modo, o SSMA aplica a seguinte configuração:

Modo Padrão/Otimista/Completo: esquema para banco de dados
Emular o comportamento nulo do Oracle nas cláusulas ORDER BY NULL valores são ordenados de forma diferente no SQL Server e Oracle:

No SQL Server, os valores NULL são os valores mais baixos em uma lista ordenada. Em uma lista crescente, os valores NULL aparecerão primeiro.

No Oracle, os valores NULL são os valores mais altos em uma lista ordenada. Por padrão, os valores NULL aparecem por último em uma lista de ordem ascendente.

O Oracle tem cláusulas NULLS FIRST e NULLS LAST, que permitem alterar a forma como o Oracle ordena NULLs.

O SSMA pode emular o comportamento do Oracle ORDER BY verificando valores NULL. Em seguida, primeiro ordena por valores NULL na ordem especificada e, em seguida, ordena por outros valores.

Se você selecionar Sim, o SSMA converterá a instrução do Oracle de uma maneira que emule o comportamento do Oracle ORDER BY.

Se você selecionar Não, o SSMA ignorará as regras do Oracle e gerará uma mensagem de erro quando encontrar as cláusulas NULLS FIRST e NULLS LAST.

Quando você seleciona um modo de conversão na caixa Modo, o SSMA aplica a seguinte configuração:

Modo Padrão/Otimista: não
Modo completo: sim
Emular exceções de contagem de linhas em SELECT Se uma instrução SELECT com uma cláusula INTO não retornar nenhuma linha, o Oracle gerará uma NO_DATA_FOUND exceção. Se a instrução retornar duas ou mais linhas, a TOO_MANY_ROWS exceção será gerada. A instrução convertida no SQL Server não gera nenhuma exceção se a contagem de linhas for diferente de um.

Se você selecionar Sim, o SSMA adicionará chamada ao procedimento especial db_error_exact_one_row_check após cada SELECT instrução. Este procedimento emula as exceções NO_DATA_FOUND e TOO_MANY_ROWS. Esse é o padrão e permite reproduzir o comportamento do Oracle o mais próximo possível. Você sempre deve escolher Sim se o código-fonte tiver manipuladores de exceção que processam esses erros. Observe que, se a instrução SELECT ocorrer dentro de uma função definida pelo usuário, esse módulo será convertido em um procedimento armazenado, pois a execução de procedimentos armazenados e a geração de exceções não são compatíveis com o contexto da função do SQL Server.

Se você selecionar Não, nenhuma exceção será gerada. Isso pode ser útil quando o SSMA converte uma função definida pelo usuário e você deseja que ela permaneça uma função no SQL Server

Quando você seleciona um modo de conversão na caixa Modo, o SSMA aplica a seguinte configuração:

Modo Padrão/Otimista/Completo: sim
Habilitar o Fix Advisor Quando habilitado, o SSMA tentará aprender com as modificações feitas no código T-SQL de destino e sugerirá possíveis correções de código em outros lugares, onde um padrão semelhante pode ser aplicado.

Quando você seleciona um modo de conversão na caixa Modo, o SSMA aplica a seguinte configuração:

Modo Padrão/Otimista/Completo: sim
Gerar aliases de coluna de expressão de constante Se a expressão na lista SELECT não tiver um alias, o SSMA poderá gerar alias de constantes (como expr1, expr2 etc.) ou usar a própria expressão como um alias. Como as expressões podem ficar muito longas e o comprimento do nome da coluna é limitado, é mais seguro usar o nome base constante para esses aliases. Mesmo que seja uma opção mais segura, às vezes não é possível, porque pode haver dependências externas no conjunto de dados resultante. Nesses casos, convém nomear colunas de acordo com suas expressões de valor, semelhante ao comportamento do Oracle.

Quando você seleciona um modo de conversão na caixa Modo, o SSMA aplica a seguinte configuração:

Modo padrão/otimista: sim
Modo Completo: não
Omitir propriedades estendidas Quando habilitado, o SSMA não adicionará propriedades estendidas aos objetos criados no banco de dados de destino.

Quando você seleciona um modo de conversão na caixa Modo, o SSMA aplica a seguinte configuração:

Modo Padrão/Otimista/Completo: não
Tradução dos códigos de erro Quando habilitado, o número do erro no lado do SQL Server de destino será traduzido para o código de erro do Oracle se o mapeamento for encontrado.

Quando você seleciona um modo de conversão na caixa Modo, o SSMA aplica a seguinte configuração:

Modo Padrão/Completo: sim
Modo Otimista: não
Usar especificação de tipo completo para referências de tipo Quando habilitado, o SSMA respeitará a especificação de tipo completa (incluindo escala e precisão) para parâmetros de rotina e valores de retorno. O Oracle não permite argumentos de tipo de dados para parâmetros de rotina, mas há casos em que eles podem ser derivados implicitamente, por exemplo, quando os atributos %TYPE e %ROWTYPE são usados. Nesses casos, o SSMA pode usar a especificação de tipo completo (incluindo precisão e escala) ao convertê-la em SQL Server.

Quando você seleciona um modo de conversão na caixa Modo, o SSMA aplica a seguinte configuração:

Modo padrão/otimista: sim
Modo Completo: não
Usar ISNULL na concatenação de cadeia de caracteres O Oracle e o SQL Server retornam resultados diferentes quando as concatenações de cadeia de caracteres incluem NULL valores. O Oracle trata o valor NULL como um conjunto de caracteres vazio. O SQL Server retorna NULL.

Se você selecionar Sim, o SSMA substituirá o caractere de concatenação do Oracle (||) pelo caractere de concatenação do SQL Server (+). O SSMA também verifica as expressões em ambos os lados da concatenação para NULL valores.

Se você selecionar Não, o SSMA substituirá os caracteres de concatenação, mas não verificará NULL valores.

Quando você seleciona um modo de conversão na caixa Modo, o SSMA aplica a seguinte configuração:

Modo Padrão/Otimista/Completo: sim

Conversão de objetos

Termo Definição
Converter chaves estrangeiras com a ação referencial SET NULL na coluna que é NOT NULL O Oracle permite a criação de restrições de chave estrangeira, onde uma SET NULL ação não pôde ser executada porque NULLs não são permitidos na coluna referenciada. O SQL Server não permite essa configuração de chave estrangeira.

Se você selecionar Sim, o SSMA gerará ações referenciais como no Oracle, mas será necessário fazer alterações manuais antes de carregar a restrição no SQL Server. Por exemplo, você pode optar por NO ACTION em vez de SET NULL.

Se você selecionar Não, a restrição será marcada como um erro.

Quando você seleciona um modo de conversão na caixa Modo, o SSMA aplica a seguinte configuração:

Modo Padrão/Otimista/Completo: não
Converter subtipos O SSMA pode converter subtipos PL/SQL de duas maneiras:

Se você selecionar Sim, o SSMA criará o tipo definido pelo usuário do SQL Server a partir de um subtipo e o usará para cada variável desse subtipo.

Se você selecionar Não, o SSMA substituirá todas as declarações de origem do subtipo pelo tipo subjacente e converterá o resultado como de costume. Nesse caso, nenhum tipo adicional é criado no SQL Server

Quando você seleciona um modo de conversão na caixa Modo, o SSMA aplica a seguinte configuração:

Modo Padrão/Otimista/Completo: não
Converter sinônimos Os sinônimos dos seguintes objetos do Oracle podem ser migrados para o SQL Server:

Tabelas e tabelas de objeto

Exibições e exibições objeto

Funções e procedimentos armazenados

Exibições materializadas

Os sinônimos dos seguintes objetos do Oracle podem ser substituídos por referências diretas aos objetos:

Sequências

Pacotes

Objetos de esquema de classe Java

Tipos de objeto definidos pelo usuário

Outros sinônimos não podem ser migrados. O SSMA gerará mensagens de erro para o sinônimo e todas as referências que usam o sinônimo.

Se você selecionar Sim, o SSMA criará sinônimos do SQL Server e referências de objeto diretas de acordo com as listas anteriores.

Se você selecionar Não, o SSMA criará referências diretas de objeto para todos os sinônimos listados aqui.

Quando você seleciona um modo de conversão na caixa Modo, o SSMA aplica a seguinte configuração:

Modo Padrão/Otimista/Completo: sim
Conversão de módulos locais Define o tipo de conversão do subprograma aninhado do Oracle (declarado em procedimento armazenado autônomo ou função).

Se você selecionar Inline, as chamadas de subprograma aninhado serão substituídas por seu corpo.

Se você selecionar Procedimentos armazenados, o subprograma aninhado será convertido em um procedimento armazenado do SQL Server e suas chamadas serão substituídas nessa chamada de procedimento.

Quando você seleciona um modo de conversão na caixa Modo, o SSMA aplica a seguinte configuração:

Modo Padrão/Otimista/Completo: Inline

Conversão de registros

Termo Definição
Converter registro como uma lista de variáveis separadas O SSMA pode converter registros do Oracle em variáveis separadas e em variáveis XML com estrutura específica.

Se você selecionar Sim, o SSMA converterá o registro em uma lista de variáveis separadas quando possível.

Se você selecionar Não, o SSMA converterá o registro em variáveis XML com estrutura específica.

Quando você seleciona um modo de conversão na caixa Modo, o SSMA aplica a seguinte configuração:

Modo Padrão/Otimista/Completo: sim
Use SELECT... FOR XML ao converter SELECT... INTO para variável de registro Especifica se um conjunto de resultados XML deve ser gerado quando você seleciona uma variável de registro.

Se você selecionar Sim, a instrução SELECT retornará o XML.

Se você selecionar Não, a instrução SELECT retornará um conjunto de resultados.

Quando você seleciona um modo de conversão na caixa Modo, o SSMA aplica a seguinte configuração:

Modo Padrão/Otimista/Completo: não

Conversão da cláusula RETURNING

Termo Definição
Converter a cláusula RETURNING na instrução DELETE em OUTPUT O Oracle fornece uma cláusula RETURNING como uma maneira de obter imediatamente valores excluídos. O SQL Server fornece essa funcionalidade com a cláusula OUTPUT.

Se você selecionar Sim, o SSMA converterá cláusulas RETURNING em instruções DELETE para cláusulas OUTPUT. Como os gatilhos em uma tabela podem alterar valores, o valor retornado pode ser diferente no SQL Server de como era no Oracle.

Se você selecionar Não, o SSMA gerará uma instrução SELECT antes das instruções DELETE para recuperar os valores retornados.

Quando você seleciona um modo de conversão na caixa Modo, o SSMA aplica a seguinte configuração:

Modo Padrão/Otimista/Completo: sim
Converter a cláusula RETURN na instrução INSERT em OUTPUT O Oracle fornece uma cláusula RETURNING como uma forma de obter imediatamente os valores inseridos. O SQL Server fornece essa funcionalidade com a cláusula OUTPUT.

Se você selecionar Sim, o SSMA converterá uma cláusula RETURNING em uma instrução INSERT para OUTPUT. Como os gatilhos em uma tabela podem alterar valores, o valor retornado pode ser diferente no SQL Server de como era no Oracle.

Se você selecionar Não, o SSMA emulará a funcionalidade do Oracle inserindo e selecionando valores de uma tabela de referência.

Quando você seleciona um modo de conversão na caixa Modo, o SSMA aplica a seguinte configuração:

Modo Padrão/Otimista/Completo: sim
Converter a cláusula RETURNING na instrução UPDATE para OUTPUT O Oracle fornece uma cláusula RETURNING como uma forma de obter imediatamente valores atualizados. O SQL Server fornece essa funcionalidade com a cláusula OUTPUT.

Se você selecionar Sim, o SSMA converterá cláusulas RETURNING em instruções UPDATE para cláusulas OUTPUT. Como os gatilhos em uma tabela podem alterar valores, o valor retornado pode ser diferente no SQL Server de como era no Oracle.

Se você selecionar Não, o SSMA gerará instruções SELECT após as instruções UPDATE para recuperar valores retornados.

Quando você seleciona um modo de conversão na caixa Modo, o SSMA aplica a seguinte configuração:

Modo Padrão/Otimista/Completo: sim

Geração de ROWID

Termo Definição
Gerar coluna ROWID Quando o SSMA cria tabelas no SQL Server, ele pode criar uma coluna ROWID. Quando os dados são migrados, cada linha obtém um novo UNIQUEIDENTIFIER valor gerado pela função newid().

Se você selecionar Sim, a coluna ROWID será criada em todas as tabelas e o SQL Server gerará GUIDs como seus valores de inserção. Sempre escolha Sim se estiver planejando usar o Testador SSMA.

Se você selecionar Não, as colunas ROWID não serão adicionadas às tabelas.

Adicionar coluna ROWID para tabelas com gatilhos adicionar ROWID para as tabelas que contêm gatilhos.

Quando você seleciona um modo de conversão na caixa Modo, o SSMA aplica a seguinte configuração:

Modo Padrão/Otimista: adicionar coluna ROWID para tabelas com gatilhos

Modo completo: sim
Gerar índice exclusivo na coluna ROWID Especifica se o SSMA gera a coluna de índice exclusiva na ROWID coluna gerada ou não. Se a opção estiver definida como "SIM", o índice exclusivo será gerado e, se estiver definido como "NÃO", o índice exclusivo não será gerado na ROWID coluna.

Quando você seleciona um modo de conversão na caixa Modo, o SSMA aplica a seguinte configuração:

Modo Padrão/Otimista/Completo: sim

Conversão de Sequência e Identidade

Termo Definição
Converter identidade como O Oracle fornece várias opções de configuração para colunas de identidade. Algumas dessas opções não têm suporte no recurso de identidade no SQL Server.

Um método para preservar essas opções é converter a identidade como uma sequência.

Se você selecionar Sequência, as colunas de identidade do Oracle não serão mais convertidas em colunas de identidade SQL. Em vez disso, uma sequência será criada e usada para gerar valores padrão para a coluna.

Se você selecionar Identidade, as colunas de identidade do Oracle serão convertidas em colunas de identidade SQL. Opções não suportadas não serão convertidas.

Se você selecionar Melhor ajuste, o SSMA determinará o método de conversão de melhor ajuste (Identidade ou Sequência), dependendo da configuração da coluna de identidade do Oracle.
Converter gerador de sequência No Oracle, você pode usar uma sequência para gerar identificadores exclusivos.

O SSMA pode converter sequências para o seguinte.

Usando o gerador de sequência do SQL Server.

Usando o gerador de sequência do SSMA.

Usando a identidade da coluna.

A opção padrão é usar o gerador de sequência do SQL Server. No entanto, o SQL Server não oferece suporte à obtenção do valor de sequência atual (como o do método de sequência CURRVAL do Oracle). Consulte o site do blog da equipe do SSMA para obter diretrizes sobre como migrar o método de sequência CURRVAL do Oracle.

O SSMA também fornece uma opção para converter a sequência do Oracle para o emulador de sequência do SSMA. Essa é a opção padrão quando você converte para o SQL Server antes de 2012

Por fim, você também pode converter a sequência atribuída a uma coluna na tabela para valores de identidade do SQL Server. Você deve especificar o mapeamento entre as sequências para uma coluna de identidade na guia Tabela do Oracle
Converter gatilhos externos do CURRVAL Visível somente quando Converter o gerador de sequência estiver definido para Usando identidade de coluna. Como as Sequências do Oracle são objetos separados das tabelas, muitas tabelas que usam Sequências usam um gatilho para gerar e inserir um novo valor de sequência. O SSMA comenta essas instruções ou as marca como erros quando o comentário gera erros.

Se você selecionar Sim, o SSMA marcará todas as referências a gatilhos externos na sequência CURRVAL convertida com um aviso.

Se você selecionar Não, o SSMA marcará todas as referências a gatilhos externos na sequência CURRVAL convertida com um erro.

Conversão de instruções

Termo Definição
Conversão da instrução MERGE Se você selecionar Usando a instrução INSERT, UPDATE, DELETE, o SSMA converte a instrução MERGE nas instruções INSERT, UPDATE e DELETE.

Se você selecionar Usando a instrução MERGE, o SSMA converte a instrução MERGE na instrução MERGE no SQL Server.

Quando você seleciona um modo de conversão na caixa Modo, o SSMA aplica a seguinte configuração:

Modo padrão/otimista/completo: usando a instrução MERGE
Converter chamadas em subprogramas que usam argumentos padrão As funções do SQL Server não oferecem suporte à omissão de parâmetros na chamada de função. Além disso, as funções e os procedimentos do SQL Server não oferecem suporte a expressões como valores de parâmetro padrão.

Se você selecionar Sim e uma chamada de função omitir parâmetros, o SSMA inserirá a palavra-chave padrão na função e chamada na posição correta. Em seguida, ele marcará a chamada com um aviso.

Se você selecionar Não, o SSMA marcará as chamadas de função como erros.

Quando você seleciona um modo de conversão na caixa Modo, o SSMA aplica a seguinte configuração:

Modo Padrão/Otimista/Completo: sim
Converter instrução FORALL para a instrução WHILE Define como o SSMA tratará FORALL loops em elementos de coleção PL/SQL.

Se você selecionar Sim, o SSMA criará um WHILE loop onde os elementos da coleção serão recuperados um a um.

Se você selecionar Não, o SSMA gerará um conjunto de linhas da coleção usando o método nodes() e o usará como uma única tabela. Isso é mais eficiente, mas torna o código de saída menos legível.

Quando você seleciona um modo de conversão na caixa Modo, o SSMA aplica a seguinte configuração:

Modo Padrão/Otimista: não
Modo completo: sim
Converter chamadas de função em chamadas de procedimento Algumas funções do Oracle são definidas como transações autônomas ou contêm instruções que não seriam válidas no SQL Server. Nesses casos, o SSMA cria um procedimento e uma função que são um wrapper para o procedimento. A função convertida chama o procedimento de implementação.

O SSMA pode converter chamadas para a função wrapper em chamadas para o procedimento. Isso cria um código mais legível e pode melhorar o desempenho. No entanto, o contexto nem sempre permite; por exemplo, você não pode substituir uma chamada de função na lista SELECT por uma chamada de procedimento. A SSMA tem algumas opções para cobrir os casos comuns:

Se você selecionar Sempre, o SSMA tentará converter chamadas de função wrapper em chamadas de procedimento. Se o contexto atual não permitir essa conversão, uma mensagem de erro será produzida. Dessa forma, nenhuma chamada de função é deixada no código gerado.

Se você selecionar Quando possível, o SSMA fará uma movimentação para chamadas de procedimento somente se a função tiver parâmetros de saída. Quando a movimentação não é possível, o atributo de saída do parâmetro é removido. Em todos os outros casos, o SSMA deixa chamadas de função.

Se você selecionar Nunca, o SSMA deixará todas as chamadas de função como chamadas de função. Às vezes, essa escolha pode ser inaceitável por razões de desempenho.

Quando você seleciona um modo de conversão na caixa Modo, o SSMA aplica a seguinte configuração:

Modo Padrão/Otimista/Completo: quando possível
Converter instruções LOCK TABLE O SSMA pode converter muitas LOCK TABLE instruções em dicas de tabela. O SSMA não pode converter instruções LOCK TABLE que contenham as cláusulas PARTITION, SUBPARTITION, @dblink e NOWAIT e marcará essas instruções com mensagens de erro de conversão.

Se você selecionar Sim, o SSMA converterá instruções com suporte LOCK TABLE em dicas de tabela.

Se você selecionar Não, o SSMA marcará todas as LOCK TABLE instruções com mensagens de erro de conversão.

A tabela a seguir mostra como o SSMA converte modos de bloqueio do Oracle:

Modo de bloqueio do Oracle

ROW SHARE
ROW EXCLUSIVE
SHARE UPDATE = ROW SHARE
SHARE
SHARE
EXCLUSIVE

Dica de tabela do SQL Server

ROWLOCK, HOLDLOCK
ROWLOCK, XLOCK, HOLDLOCK
ROWLOCK, HOLDLOCK
TABLOCK, HOLDLOCK
TABLOCK, XLOCK, HOLDLOCK
TABLOCKX, HOLDLOCK

Quando você seleciona um modo de conversão na caixa Modo, o SSMA aplica a seguinte configuração:

Modo Padrão/Otimista/Completo: sim
Converter instruções OPEN-FOR para parâmetros REF CURSOR OUT No Oracle, a instrução OPEN .. FOR pode ser usada para retornar um conjunto de resultados para o parâmetro do tipo OUT do subprograma REF CURSOR. No SQL Server, os procedimentos armazenados retornam diretamente os resultados das SELECT instruções.

O SSMA pode converter muitas OPEN .. FOR instruções em SELECT instruções.

Se você selecionar Sim, o SSMA converterá a OPEN .. FOR instrução em uma SELECT instrução, que retornará o conjunto de resultados para o cliente.

Se você selecionar Não, o SSMA gerará uma mensagem de erro no código convertido e no painel Saída.

Quando você seleciona um modo de conversão na caixa Modo, o SSMA aplica a seguinte configuração:

Modo Padrão/Otimista/Completo: sim
Converter instruções de processamento de transações O SSMA pode converter instruções de processamento de transações do Oracle:

Se você selecionar Sim, o SSMA converterá instruções de processamento de transações do Oracle em instruções do SQL Server.

Se você selecionar Não, o SSMA marcará as instruções de processamento de transações como erros de conversão.

Nota: a Oracle abre transações implicitamente. Para emular esse comportamento no SQL Server, você deve adicionar BEGIN TRANSACTION instruções manualmente onde deseja que suas transações sejam iniciadas. Como alternativa, você pode executar o SET IMPLICIT_TRANSACTIONS ON comando no início da sessão. O SSMA adiciona SET IMPLICIT_TRANSACTIONS ON automaticamente ao converter subrotinas com transações autônomas.

Quando você seleciona um modo de conversão na caixa Modo, o SSMA aplica a seguinte configuração:

Modo Padrão/Otimista/Completo: sim

Confira também

Referência da interface do usuário (OracleToSQL)