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 as configurações de todos os projetos do SSMA, no menu Ferramentas , clique em Configurações Padrão do Projeto, selecione o tipo de projeto de migração para o qual as configurações devem ser exibidas ou alteradas na lista suspensa Versão de Destino de Migração , em seguida, clique em Geral na parte inferior do painel esquerdo e clique em Conversão.

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

Funções internas e pacotes fornecidos

Prazo Definição
Converter a função COUNT em COUNT_BIG Se suas COUNT funções provavelmente retornarem valores maiores que 2.147.483.647, o 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 Oracle SUBSTR 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 não houver suporte para o número de parâmetros, o SSMA converterá a SUBSTR chamada de função em uma chamada de função SSMA personalizada.

Se você selecionar Sim, o SSMA converterá SUBSTR chamadas de função 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 SUBSTR função 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 do esquema ssma_oracle.

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 a conversão.

Se você selecionar Usando a função TO_CHAR_DATE_LS (cuidados com NLS), o SSMA converterá a TO_CHAR(date, format) em TO_CHAR_DATE_LS usando a linguagem da sessão para a 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 TO_CHAR_DATE função
Modo Completo: Usando a função TO_CHAR_DATE_LS (cuidados com NLS)
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 ISNULL em chamadas de função CONCAT ISNULL instrução é usada em CONCAT chamadas de função para emular o comportamento do Oracle. As seguintes opções estão presentes para esta 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 ISNULL em chamadas de função REPLACE ISNULL instrução é usada em REPLACE chamadas de função para emular o comportamento do Oracle. As seguintes opções estão presentes para esta 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 a função de conversão nativa quando possível Se você selecionar Sim, o SSMA converterá TO_CHAR(date, format) na função de conversão nativa quando possível.

Se você selecionar Não, o SSMA converterá o TO_CHAR(date, format) em TO_CHAR_DATE ou TO_CHAR_DATE_LS (ele é definido por 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

Prazo Definição
Gerar mensagens sobre problemas Especifica se o SSMA gera mensagens informativas durante a conversão, exibe-as 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

Prazo Definição
Converter expressões ROWNUM como inteiros Quando o SSMA converte ROWNUM expressões, ele converte a expressão em uma TOP cláusula, seguida pela expressão. O exemplo a seguir mostra ROWNUM em uma instrução Oracle DELETE.

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

O exemplo a seguir mostra o Transact-SQL resultante:

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

O TOP requer que a TOP expressão de cláusulas seja avaliada como um inteiro. Se o número inteiro for negativo, a declaração resultará em um erro.

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

Se você selecionar Não, o SSMA marcará todas as expressões 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 Oracle são mapeados para esquemas do SQL Server. Duas opções estão disponíveis nesta configuração:

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

Esquema para esquema: Nesse modo, o esquema sch1 Oracle será mapeado por padrão para o esquema sch1 do SQL Server, no banco de dados padrão do SQL Server especificado na janela 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 em cláusulas ORDER BY NULL os valores são ordenados de forma diferente no SQL Server e no Oracle:

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

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

O Oracle tem NULLS FIRST e NULLS LAST cláusulas, o que permite que você altere a forma como o Oracle ordena NULLs.

O SSMA pode emular o comportamento do Oracle ORDER BY verificando valores NULL . Primeiro, ordena pelos valores NULL na ordem especificada e, posteriormente, por outros valores.

Se você selecionar Sim, o SSMA converterá a instrução 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 SELECT instrução com uma cláusula INTO não retornar nenhuma linha, a 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 gerará nenhuma exceção se a contagem de linhas for diferente de uma.

Se você selecionar Sim, o SSMA adicionará uma 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 SELECT instrução 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 criação de exceções não é compatível com o contexto de 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 Assistente de Correção 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 locais, em que 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 constante Se a expressão na SELECT lista estiver sem um alias, o SSMA poderá gerar alias constante (como expr1, expr2etc.) 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. Embora 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, talvez você queira nomear colunas de acordo com suas expressões de valor, semelhantes ao comportamento da 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 que ele cria 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
Traduzir códigos de erro Quando habilitado, o número de erro no lado do servidor SQL de destino será traduzido para o código de erro 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 a especificação de tipo completo para referências de tipo Quando habilitado, o SSMA respeitará a especificação de tipo completo (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 implicitamente derivados, por exemplo, quando %TYPE e %ROWTYPE atributos são usados. Nesses casos, o SSMA pode usar a especificação de tipo completo (incluindo precisão e escala) ao convertê-la 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: Sim
Modo Completo: Não
Usar ISNULL na concatenação de cadeia de caracteres Oracle e SQL Server retornam resultados diferentes quando concatenações de cadeia de caracteres incluem NULL valores. O Oracle trata o NULL valor como um conjunto de caracteres vazio. O SQL Server retorna NULL.

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

Se você selecionar Não, o SSMA substituirá os caracteres de concatenação, mas não verificará se há 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

Prazo Definição
Converter chaves estrangeiras com ação referencial SET NULL na coluna que não é NULL O Oracle permite a criação de restrições de chave estrangeira, em que uma SET NULL ação não pôde ser executada porque NULLs não são permitidas 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 você precisará fazer alterações manuais antes de carregar a restrição no SQL Server. Por exemplo, você pode escolher 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á um tipo definido pelo usuário do SQL Server 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 Sinônimos para os seguintes objetos Oracle podem ser migrados para o SQL Server:

Tabelas e tabelas de objetos

Visualizações e visualizações de objeto

Procedimentos e funções armazenados

Visões materializadas

Sinônimos para o seguinte Os objetos Oracle podem ser substituídos por referências diretas aos objetos:

Sequências

Pacotes

Objetos de esquema da 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 direto de acordo com as listas anteriores.

Se você selecionar Não, o SSMA criará referências de objeto direto 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 ou função armazenada autônoma).

Se você selecionar Embutido, as chamadas aninhadas de subprograma serão substituídas pelo corpo do subprograma.

Se você selecionar procedimentos armazenados, o subprograma aninhado será convertido em um procedimento armazenado do SQL Server e suas chamadas serão substituídas nesta 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

Prazo Definição
Converter registro como uma lista de variáveis separadas O SSMA pode converter registros 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 uma variável do tipo registro Especifica se um conjunto de resultados XML deve ser gerado quando você seleciona em uma variável de registro.

Se você selecionar Sim, a instrução SELECT retornará 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 de cláusula RETURNING

Prazo Definição
Converter a cláusula RETURNING no comando DELETE para OUTPUT A Oracle fornece uma RETURNING cláusula como uma maneira de obter imediatamente valores excluídos. O SQL Server fornece essa funcionalidade com a OUTPUT cláusula.

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 do que no Oracle.

Se você selecionar Não, o SSMA gerará uma SELECT instrução antes DELETE das instruções 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
Converter a cláusula RETURNING na instrução INSERT para OUTPUT A Oracle fornece uma RETURNING cláusula como uma maneira de obter imediatamente os valores inseridos. O SQL Server fornece essa funcionalidade com a OUTPUT cláusula.

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 do que no Oracle.

Se você selecionar Não, o SSMA emula 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 da instrução UPDATE para OUTPUT A Oracle fornece uma RETURNING cláusula como uma forma de obter imediatamente os valores atualizados. O SQL Server fornece essa funcionalidade com a OUTPUT cláusula.

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 do que no Oracle.

Se você selecionar Não, o SSMA gerará instruções SELECT após UPDATE instruções 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

Prazo 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 newid() função.

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

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

Adicione a coluna ROWID para tabelas com gatilhos e adicione 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 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

Prazo 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 são compatíveis com o 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 do 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 do SQL. Opções sem suporte não serão convertidas.

Se você selecionar Melhor Ajuste, o SSMA determinará o melhor método de conversão de 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 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 para obter o valor atual de uma sequência (como o 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 do Oracle CURRVAL.

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

Por fim, você também pode converter a sequência atribuída a uma coluna na tabela em valores de identidade do SQL Server. Você deve especificar o mapeamento entre as sequências para uma coluna de identidade na aba Tabela Oracle
Converta o CURRVAL fora dos gatilhos Visível somente quando o Gerador de Sequência de Conversão está configurado para Usar a identidade da coluna. Como as Sequências Oracle são objetos separados de 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 geraria 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 declarações

Prazo Definição
Conversão da instrução MERGE Se você selecionar Usando a instrução INSERT, UPDATE, DELETE, o SSMA converterá a MERGE declaração em INSERT, UPDATE, DELETE instruções.

Se você selecionar Usar a instrução MERGE, o SSMA converterá a MERGE instrução em MERGE instruçã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: Usando a instrução MERGE
Converter chamadas em subprogramas que usam argumentos padrão As funções do SQL Server não dão suporte à omissão de parâmetros na chamada de função. Além disso, funções e procedimentos do SQL Server não dão suporte a expressões como valores de parâmetro padrão.

Se você selecionar Sim e caso uma chamada de função omita parâmetros, o SSMA irá inserir a palavra-chave padrão na função e na posição correta da chamada. Em seguida, marcará a chamada como 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 em instrução WHILE Define como o SSMA tratará FORALL loops em elementos da coleção PL/SQL.

Se você selecionar Sim, o SSMA criará um WHILE loop em que os elementos de coleção são recuperados um a um.

Se você selecionar Não, o SSMA gerará um conjunto de linhas da coleção usando nodes() o método 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 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 é um wrapper para o procedimento. A função convertida chama o procedimento de implementação.

O SSMA pode converter as chamadas da 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 isso; por exemplo, você não pode substituir uma chamada de função na SELECT lista por uma chamada de procedimento. O SSMA tem algumas opções para abranger os casos comuns:

Se você selecionar Always, 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 migraçã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 motivos 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 de TABELA DE BLOQUEIO SSMA pode converter muitas LOCK TABLE instruções em sugestões de tabela. O SSMA não pode converter nenhuma instrução que contenha LOCK TABLE, PARTITION, SUBPARTITION, @dblink e NOWAIT cláusulas, e irá marcar essas instruções com mensagens de erro de conversão.

Se você selecionar Sim, o SSMA converterá as instruções compatíveis 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 os 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 declaraçõ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 de OUT tipo REF CURSORde um subprograma. 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 declarações de processamento de transação O SSMA pode converter instruções de processamento de transação Oracle:

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

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

Nota: O Oracle abre transações implicitamente. Para emular esse comportamento no SQL Server, você deve adicionar BEGIN TRANSACTION instruções manualmente onde quiser que suas transações comecem. 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

Consulte Também

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