Compartir a través de


Configuración del proyecto (conversión) (OracleToSQL)

La página Conversión del cuadro de diálogo Configuración del proyecto contiene configuraciones que personalizan cómo SSMA convierte la sintaxis de Oracle en la sintaxis de SQL Server.

El panel Conversión está disponible en los cuadros de diálogo Configuración del proyecto y Configuración del proyecto predeterminada:

  • Para especificar configuraciones de todos los proyectos SSMA, en el menú Herramientas, seleccione Configuración del proyecto predeterminada, seleccione el tipo de proyecto de migración para el que se debe ver/cambiar la configuración en la lista desplegable Versión de destino de la migración y, a continuación, haga clic en General en la parte inferior del panel izquierdo, y seleccione Migración.

  • Para especificar la configuración del proyecto actual, en el menú Herramientas haga clic en Configuración del proyecto, luego en General en la parte inferior del panel izquierdo y, por último, en Conversión.

Funciones integradas y paquetes proporcionados

Término Definición
Convertir la función COUNT en COUNT_BIG Si es probable que las funciones COUNT devuelvan valores mayores que 2.147.483.647, que es 231-1, debe convertir las funciones en COUNT_BIG.

Si selecciona , SSMA convertirá todos los usos de COUNT en COUNT_BIG.

Si selecciona No, las funciones permanecerán como COUNT. SQL Server devolverá un error si la función devuelve un valor mayor que 231-1.

Al seleccionar un modo de conversión en el cuadro Modo, SSMA aplica la siguiente configuración:

Modo predeterminado/completo:
Modo optimista: No
Conversión de llamadas de función SUBSTR a llamadas de función SUBSTRING SSMA puede convertir llamadas de función de Oracle SUBSTR en llamadas de función de SQL Server substring, en función del número de parámetros. Si SSMA no puede convertir una llamada de función SUBSTR o no se admite el número de parámetros, SSMA convertirá la llamada de función SUBSTR en una llamada de función SSMA personalizada.

Si selecciona , SSMA convertirá las llamadas de función SUBSTR que usan tres parámetros en SQL Server substring. Otras funciones SUBSTR se convertirán para llamar a la función SSMA personalizada.

Si selecciona No, SSMA convertirá la llamada de función SUBSTR en una llamada de función SSMA personalizada.

Al seleccionar un modo de conversión en el cuadro Modo, SSMA aplica la siguiente configuración:

Modo predeterminado/optimista:
Modo completo: No
Convertir llamadas de función TO_CHAR(date, format) SSMA puede convertir Oracle TO_CHAR(date, format) en procedimientos del esquema ssma_oracle.

Si selecciona Usar la función TO_CHAR_DATE, SSMA convierte la función TO_CHAR(date, format) en TO_CHAR_DATE mediante el idioma inglés para la conversión.

Si selecciona Usar la función TO_CHAR_DATE_LS (cuidado de NLS), SSMA convierte la función TO_CHAR(date, format) en TO_CHAR_DATE_LS mediante el idioma de sesión para la conversión.

Al seleccionar un modo de conversión en el cuadro Modo, SSMA aplica la siguiente configuración:

Modo predeterminado o optimista: Uso de Tla función TO_CHAR_DATE
Modo completo: Uso de la función TO_CHAR_DATE_LS (cuidado de NLS)
Genere un error para DBMS_SQL. ANALIZAR Si selecciona Error, SSMA genera un error en la conversión DBMS_SQL.PARSE.

Si selecciona Advertencia, SSMA genera una advertencia en la conversión DBMS_SQL.PARSE.

Al seleccionar un modo de conversión en el cuadro Modo, SSMA aplica la siguiente configuración:
Modo predeterminado, optimista o completo: error
Uso de ISNULL en llamadas de función CONCAT La instrucción ISNULL se usa en llamadas de función CONCAT para emular el comportamiento de Oracle. Para esta configuración existen las siguientes opciones:



No

Al seleccionar un modo de conversión en el cuadro Modo, SSMA aplica la siguiente configuración:

Modo predeterminado/optimista: No
Modo completo: Sí
Uso de ISNULL en llamadas de función REPLACE La instrucción ISNULL se usa en llamadas de función REPLACE para emular el comportamiento de Oracle. Para esta configuración existen las siguientes opciones:



No

Al seleccionar un modo de conversión en el cuadro Modo, SSMA aplica la siguiente configuración:

Modo predeterminado/optimista: No
Modo completo: Sí
Uso de la función de conversión nativa siempre que sea posible Si selecciona , SSMA convierte el TO_CHAR(date, format) en función de conversión nativa siempre que sea posible.

Si selecciona No, SSMA convierte el TO_CHAR(date, format) en TO_CHAR_DATE o TO_CHAR_DATE_LS (se define mediante las opciones Convertir TO_CHAR(fecha, formato).

Al seleccionar un modo de conversión en el cuadro Modo, SSMA aplica la siguiente configuración:

Modo predeterminado/optimista:
Modo completo: No

Mensajes de conversión

Término Definición
Generación de mensajes sobre problemas Especifica si SSMA genera mensajes informativos durante la conversión, los muestra en el panel Salida y los agrega al código convertido.

Al seleccionar un modo de conversión en el cuadro Modo, SSMA aplica la siguiente configuración:

Modo predeterminado/optimista: No
Modo completo: No

Otras opciones

Término Definición
Convertir expresiones ROWNUM como enteros Cuando SSMA convierte expresiones ROWNUM, convierte la expresión en una cláusula TOP, seguida de la expresión. El siguiente ejemplo se muestra ROWNUM en una instrucción DELETE de Oracle:

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

El siguiente ejemplo muestra el resultado Transact-SQL:

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

TOP requiere que la expresión de cláusulas TOP se evalúe como un entero. Si el entero es negativo, la instrucción producirá un error.

Si selecciona , SSMA convierte la expresión como un entero.

Si selecciona No, SSMA marcará todas las expresiones no enteras como un error en el código convertido.

Al seleccionar un modo de conversión en el cuadro Modo, SSMA aplica la siguiente configuración:

Modo predeterminado/completo: No
Modo optimista: Sí
Asignación de esquema predeterminada Esta configuración especifica cómo se asignan los esquemas de Oracle a esquemas de SQL Server. Hay dos opciones disponibles en esta configuración:

Esquema a base de datos: en este modo, el esquema sch1 de Oracle se asignará de forma predeterminada al esquema dbo de SQL Server en la base de datos sch1 de SQL Server.

Esquema al esquema: en este modo, el esquema sch1 de Oracle se asignará de forma predeterminada al esquema sch1 de SQL Server en la base de datos de SQL Server predeterminada proporcionada en el cuadro de diálogo de conexión.

Al seleccionar un modo de conversión en el cuadro Modo, SSMA aplica la siguiente configuración:

Modo predeterminado, optimista o completo: esquema a base de datos
Emular el comportamiento null de Oracle en cláusulas ORDER BY Los valores NULL se ordenan de forma diferente en SQL Server y Oracle:

En SQL Server, los valores NULL son los valores más bajos de una lista ordenada. En una lista ascendente, los valores NULL aparecerán primero.

En Oracle, los valores NULL son los valores más altos de una lista ordenada. De forma predeterminada, los valores NULL aparecen por última vez en una lista de orden ascendente.

Oracle tiene cláusulas NULLS FIRST y NULLS LAST, lo que le permite cambiar el modo en que Oracle ordena NULL.

SSMA puede emular el comportamiento de Oracle ORDER BY comprobando los valores NULL. A continuación, primero ordena por valores NULL en el orden especificado y, a continuación, ordena por otros valores.

Si selecciona , SSMA convertirá la instrucción Oracle de una manera que emula el comportamiento de Oracle ORDER BY.

Si selecciona No, SSMA omitirá las reglas de Oracle y generará un mensaje de error cuando encuentre las cláusulas NULLS FIRST y NULLS LAST.

Al seleccionar un modo de conversión en el cuadro Modo, SSMA aplica la siguiente configuración:

Modo predeterminado/optimista: No
Modo completo: Sí
Emular excepciones de recuento de filas en SELECT Si una instrucción SELECT con una cláusula INTO no devuelve ninguna fila, Oracle genera una excepción NO_DATA_FOUND. Si la instrucción devuelve dos o más filas, se genera la excepción TOO_MANY_ROWS. La instrucción convertida en SQL Server no genera ninguna excepción si el recuento de filas es diferente de uno.

Si selecciona , SSMA agrega una llamada al procedimiento especial db_error_exact_one_row_check después de cada instrucción SELECT. Este procedimiento emula las excepciones NO_DATA_FOUND y TOO_MANY_ROWS. Este es el valor predeterminado y permite reproducir el comportamiento de Oracle lo más cerca posible. Siempre debe elegir si el código fuente tiene controladores de excepciones que procesan estos errores. Tenga en cuenta que si la instrucción SELECT se produce dentro de una función definida por el usuario, este módulo se convertirá en un procedimiento almacenado, ya que la ejecución de procedimientos almacenados y la generación de excepciones no es compatible con el contexto de función de SQL Server.

Si selecciona No, no se generará ninguna excepción. Esto puede ser útil cuando SSMA convierte una función definida por el usuario y quiere que siga siendo una función en SQL Server.

Al seleccionar un modo de conversión en el cuadro Modo, SSMA aplica la siguiente configuración:

Modo predeterminado, optimista o completo:
Habilitación de Fix Advisor Cuando se habilita, SSMA intentará aprender de las modificaciones que realice en el código T-SQL de destino y sugerirá posibles correcciones de código en otros lugares, donde se puede aplicar un patrón similar.

Al seleccionar un modo de conversión en el cuadro Modo, SSMA aplica la siguiente configuración:

Modo predeterminado, optimista o completo:
Generación de alias de columna de expresión constante Si falta una expresión en la lista SELECT, SSMA puede generar alias de constante (como expr1, expr2, etc.) o usar la propia expresión como alias. Dado que las expresiones pueden obtener una longitud de nombre de columna bastante larga y es limitada, es más seguro usar el nombre base constante para estos alias. Aunque es una opción más segura, a veces no es posible, ya que podría haber dependencias externas en el conjunto de datos resultante. En esos casos, puede que desee asignar nombres a las columnas según sus expresiones de valor, de forma similar al comportamiento de Oracle.

Al seleccionar un modo de conversión en el cuadro Modo, SSMA aplica la siguiente configuración:

Modo predeterminado/optimista:
Modo completo: No
Omitir propiedades ampliadas Cuando se habilita, SSMA no agregará propiedades extendidas a los objetos que crea en la base de datos de destino.

Al seleccionar un modo de conversión en el cuadro Modo, SSMA aplica la siguiente configuración:

Modo predeterminado, optimista o completo: No
Traducción de códigos de error Cuando se habilita, el número de error en el lado de SQL Server de destino se traducirá al código de error de Oracle si se encuentra la asignación.

Al seleccionar un modo de conversión en el cuadro Modo, SSMA aplica la siguiente configuración:

Modo predeterminado/completo:
Modo optimista: No
Usar la especificación de tipo completo para las referencias de tipo Cuando se habilita, SSMA respetará la especificación de tipo completo (incluida la escala y la precisión) para los parámetros rutinarios y los valores devueltos. Oracle no permite argumentos de tipo de datos para parámetros rutinarios, pero hay casos en los que se pueden derivar implícitamente, por ejemplo, cuando se usan atributos %TYPE y %ROWTYPE. En tales casos, SSMA puede usar la especificación de tipo completo (incluida la precisión y la escala) al convertirlo en SQL Server.

Al seleccionar un modo de conversión en el cuadro Modo, SSMA aplica la siguiente configuración:

Modo predeterminado/optimista:
Modo completo: No
Uso de ISNULL en la concatenación de cadenas Oracle y SQL Server devuelven resultados diferentes cuando las concatenaciones de cadenas incluyen valores NULL. Oracle trata el valor NULL como un juego de caracteres vacío. SQL Server devuelve NULL.

Si selecciona , SSMA reemplaza el carácter de concatenación de Oracle (||) por el carácter de concatenación de SQL Server (+). SSMA también comprueba las expresiones en ambos lados de la concatenación para los valores NULL.

Si selecciona No, SSMA reemplaza los caracteres de concatenación, pero no comprueba si hay valores NULL.

Al seleccionar un modo de conversión en el cuadro Modo, SSMA aplica la siguiente configuración:

Modo predeterminado, optimista o completo:

Conversión de objetos

Término Definición
Conversión de claves externas con la acción referencial SET NULL en la columna que es NOT NULL Oracle permite crear restricciones de clave externa, donde no se pudo realizar una acción SET NULL porque no se permiten NULL en la columna a la que se hace referencia. SQL Server no permite dicha configuración de clave externa.

Si selecciona , SSMA generará acciones referenciales como en Oracle, pero deberá realizar cambios manuales antes de cargar la restricción en SQL Server. Por ejemplo, puede elegir a NO ACTION en vez de a SET NULL.

Si selecciona No, la restricción se marcará como un error.

Al seleccionar un modo de conversión en el cuadro Modo, SSMA aplica la siguiente configuración:

Modo predeterminado, optimista o completo: No
Convertir subtipos SSMA puede convertir subtipos PL/SQL de dos maneras:

Si selecciona , SSMA creará un tipo definido por el usuario de SQL Server a partir de un subtipo y lo usará para cada variable de este subtipo.

Si selecciona No, SSMA reemplazará todas las declaraciones de origen del subtipo por el tipo subyacente y convertirá el resultado como de costumbre. En este caso, no se crean tipos adicionales en SQL Server.

Al seleccionar un modo de conversión en el cuadro Modo, SSMA aplica la siguiente configuración:

Modo predeterminado, optimista o completo: No
Conversión de sinónimos Los sinónimos de los siguientes objetos de Oracle se pueden migrar a SQL Server:

Tablas y tablas de objetos

Vistas y vistas de objetos

Procedimientos almacenados y funciones

Vistas materializadas

Los sinónimos de los siguientes objetos de Oracle pueden sustituirse por referencias directas a los objetos:

Secuencias

Paquetes

Objetos de esquema de clase Java

Tipos de objetos definidos por el usuario

No se pueden migrar otros sinónimos. SSMA generará mensajes de error para el sinónimo y todas las referencias que usan el sinónimo.

Si selecciona , SSMA creará sinónimos de SQL Server y referencias directas de objetos según las listas anteriores.

Si selecciona No, SSMA creará referencias de objeto directas para todos los sinónimos que se enumeran aquí.

Al seleccionar un modo de conversión en el cuadro Modo, SSMA aplica la siguiente configuración:

Modo predeterminado, optimista o completo:
Conversión de módulos locales Define el tipo de subprograma anidada de Oracle (declarada en la conversión independiente de procedimiento almacenado o función).

Si selecciona Inline, las llamadas a subprogramas anidadas se reemplazarán por su cuerpo.

Si selecciona Procedimientos almacenados, el subprograma anidado se convertirá en un procedimiento almacenado de SQL Server y sus llamadas se reemplazarán en esta llamada a procedimiento.

Al seleccionar un modo de conversión en el cuadro Modo, SSMA aplica la siguiente configuración:

Modo predeterminado, optimista o completo: insertado

Conversión de registros

Término Definición
Convertir el registro como una lista de variables independientes SSMA puede convertir registros de Oracle en variables independientes y en variables XML con una estructura específica.

Si selecciona , SSMA convierte el registro en una lista de variables independientes siempre que sea posible.

Si selecciona No, SSMA convierte el registro en variables XML con una estructura específica.

Al seleccionar un modo de conversión en el cuadro Modo, SSMA aplica la siguiente configuración:

Modo predeterminado, optimista o completo:
Use SELECT... FOR XML al convertir SELECT... INTO para la variable de registro Especifica si se va a generar un conjunto de resultados XML al seleccionar en una variable de registro.

Si selecciona , la instrucción SELECT devuelve XML.

Si selecciona No, la instrucción SELECT devuelve un conjunto de resultados.

Al seleccionar un modo de conversión en el cuadro Modo, SSMA aplica la siguiente configuración:

Modo predeterminado, optimista o completo: No

Conversión de cláusulas RETURNING

Término Definición
Convertir la cláusula RETURN en la instrucción DELETE en OUTPUT Oracle proporciona una cláusula RETURNING como una manera de obtener inmediatamente los valores eliminados. SQL Server proporciona esa funcionalidad con la cláusula OUTPUT.

Si selecciona , SSMA convertirá las cláusulas RETURNING en instrucciones DELETEen las cláusulas OUTPUT. Dado que los desencadenadores de una tabla pueden cambiar los valores, el valor devuelto podría ser diferente en SQL Server que en Oracle.

Si selecciona No, SSMA generará una SELECT instrucción antes de DELETE las instrucciones para recuperar los valores devueltos.

Al seleccionar un modo de conversión en el cuadro Modo, SSMA aplica la siguiente configuración:

Modo predeterminado, optimista o completo:
Conversión de la cláusula RETURN en la instrucción INSERT a OUTPUT Oracle proporciona una RETURNING cláusula como una manera de obtener inmediatamente los valores insertados. SQL Server proporciona esa funcionalidad con la cláusula OUTPUT.

Si selecciona Sí, SSMA convertirá una RETURNING cláusula en una INSERT instrucción en OUTPUT. Dado que los desencadenadores de una tabla pueden cambiar los valores, el valor devuelto podría ser diferente en SQL Server que en Oracle.

Si selecciona No, SSMA emula la funcionalidad de Oracle insertando y seleccionando valores de una tabla de referencia.

Al seleccionar un modo de conversión en el cuadro Modo, SSMA aplica la siguiente configuración:

Modo predeterminado, optimista o completo:
Convertir la cláusula RETURN en la instrucción UPDATE en OUTPUT Oracle proporciona una cláusula RETURNING como una manera de obtener inmediatamente los valores actualizados. SQL Server proporciona esa funcionalidad con la cláusula OUTPUT.

Si selecciona , SSMA convertirá las cláusulas RETURNING en instrucciones UPDATEen las cláusulas OUTPUT. Dado que los desencadenadores de una tabla pueden cambiar los valores, el valor devuelto podría ser diferente en SQL Server que en Oracle.

Si selecciona No, SSMA generará instrucciones SELECT después de las instrucciones UPDATE para recuperar los valores devueltos.

Al seleccionar un modo de conversión en el cuadro Modo, SSMA aplica la siguiente configuración:

Modo predeterminado, optimista o completo:

Generación de ROWID

Término Definición
Generar columna ROWID Cuando SSMA crea tablas en SQL Server, puede crear una columna ROWID. Cuando se migran los datos, cada fila obtiene un nuevo valor UNIQUEIDENTIFIER generado por la función newid().

Si selecciona , la columna ROWID se crea en todas las tablas y SQL Server genera GUID como valores de inserción. Elija siempre si planea usar el evaluador de SSMA.

Si selecciona No, las columnas ROWID no se agregan a las tablas.

Agregue la columna ROWID para las tablas con desencadenadores, para añadir ROWID a las tablas que contienen desencadenadores.

Al seleccionar un modo de conversión en el cuadro Modo, SSMA aplica la siguiente configuración:

Modo predeterminado o optimista: Agregar columna ROWID para tablas con desencadenadores

Modo completo: Sí
Generación de un índice único en la columna ROWID Especifica si SSMA genera una columna de índice única en la columna ROWID generada o no. Si la opción se establece en "YES", se genera un índice único y, si se establece en "NO", el índice único no se genera en la columna ROWID.

Al seleccionar un modo de conversión en el cuadro Modo, SSMA aplica la siguiente configuración:

Modo predeterminado, optimista o completo:

Conversión de secuencias e identidades

Término Definición
Conversión de identidad como Oracle proporciona varias opciones de configuración para las columnas de identidad. Algunas de estas opciones no son compatibles con la característica de identidad en SQL Server.

Un método para conservar estas opciones es convertir la identidad como una secuencia.

Si selecciona Secuencia, las columnas de identidad de Oracle ya no se convertirán en columnas de identidad de SQL. En su lugar, se creará una secuencia y se usará para generar valores predeterminados para la columna.

Si selecciona Identidad, las columnas de identidad de Oracle se convertirán en columnas de identidad de SQL. No se convertirán las opciones no admitidas.

Si selecciona Mejor ajuste, SSMA determinará el mejor método de conversión de ajuste (identidad o secuencia) en función de la configuración de la columna de identidad de Oracle.
Convertir generador de secuencia En Oracle, puede usar una secuencia para generar identificadores únicos.

SSMA puede convertir secuencias a lo siguiente.

Uso del generador de secuencias de SQL Server.

Uso del generador de secuencias SSMA.

Uso de la identidad de columna.

La opción predeterminada es usar el generador de secuencias de SQL Server. Sin embargo, SQL Server no admite la obtención del valor de secuencia actual (como el del método de secuencia CURRVAL de Oracle). Consulte el sitio de blog del equipo de SSMA para obtener instrucciones sobre cómo migrar el método de secuencia CURRVAL de Oracle.

SSMA también proporciona una opción para convertir la secuencia de Oracle en el emulador de secuencia de SSMA. Esta es la opción predeterminada al convertir a SQL Server antes de 2012.

Por último, también puede convertir la secuencia asignada a una columna de la tabla en valores de identidad de SQL Server. Debe especificar la asignación entre las secuencias a una columna de identidad en la pestaña Tabla de Oracle.
Convertir CURRVAL fuera de los desencadenadores Solo es visible cuando el generador de secuencia de conversión está establecido en Usar identidad de columna. Dado que las secuencias de Oracle son objetos independientes de las tablas, muchas tablas que usan Secuencias usan un desencadenador para generar e insertar un nuevo valor de secuencia. SSMA comenta estas instrucciones o las marca como errores cuando el comentario generaría errores.

Si selecciona , SSMA marcará todas las referencias a desencadenadores externos en la secuencia CURRVAL convertida con una advertencia.

Si selecciona No, SSMA marcará todas las referencias a desencadenadores externos en la secuencia CURRVAL convertida con un error.

Conversión de instrucciones

Término Definición
Conversión de la instrucción MERGE Si selecciona Usar INSERT, UPDATE, INSTRUCCIÓN DELETE, SSMA convierte la instrucción MERGE en instrucciones INSERT, UPDATE y DELETE.

Si selecciona Usar instrucción MERGE, SSMA convierte la instrucción MERGE en una instrucción MERGE en SQL Server.

Al seleccionar un modo de conversión en el cuadro Modo, SSMA aplica la siguiente configuración:

Modo predeterminado, optimista o completo: uso de la instrucción MERGE
Conversión de llamadas a subprogramas que usan argumentos predeterminados Las funciones de SQL Server no admiten la omisión de parámetros en la llamada de función. Además, las funciones y procedimientos de SQL Server no admiten expresiones como valores de parámetro predeterminados.

Si selecciona y una llamada de función omite los parámetros, SSMA insertará la palabra clave predeterminada en la función y llamará a en la posición correcta. A continuación, marcará la llamada con una advertencia.

Si selecciona No, SSMA marcará las llamadas de función como errores.

Al seleccionar un modo de conversión en el cuadro Modo, SSMA aplica la siguiente configuración:

Modo predeterminado, optimista o completo:
Conversión de la instrucción FORALL a la instrucción WHILE Define cómo SSMA tratará los bucles FORALL en elementos de colección PL/SQL.

Si selecciona , SSMA crea un bucle WHILE donde los elementos de colección se recuperan uno por uno.

Si selecciona No, SSMA genera un conjunto de filas de la colección mediante el método nodes() y lo usa como una sola tabla. Esto es más eficaz, pero hace que el código de salida sea menos legible.

Al seleccionar un modo de conversión en el cuadro Modo, SSMA aplica la siguiente configuración:

Modo predeterminado/optimista: No
Modo completo: Sí
Conversión de llamadas de función a llamadas de procedimiento Algunas funciones de Oracle se definen como transacciones autónomas o contienen instrucciones que no serían válidas en SQL Server. En estos casos, SSMA crea un procedimiento y una función que es un contenedor para el procedimiento. La función convertida llama al procedimiento de implementación.

SSMA puede convertir llamadas a la función contenedora en llamadas al procedimiento. Esto crea código más legible y puede mejorar el rendimiento. Sin embargo, el contexto no siempre lo permite; por ejemplo, no se puede reemplazar una llamada de función en la lista SELECT por una llamada a procedimiento. SSMA tiene algunas opciones para cubrir los casos comunes:

Si selecciona Siempre, SSMA intenta convertir las llamadas de función contenedora en llamadas de procedimiento. Si el contexto actual no permite esta conversión, se genera un mensaje de error. De este modo, no queda ninguna llamada a función en el código generado.

Si selecciona Cuando sea posible, SSMA realiza una migración a las llamadas a procedimiento solo si la función tiene parámetros de salida. Cuando el movimiento no es posible, se quita el atributo de salida del parámetro. En todos los demás casos, SSMA deja llamadas de función.

Si selecciona Nunca, SSMA dejará todas las llamadas de función como llamadas de función. A veces, esta opción puede ser inaceptable debido a motivos de rendimiento.

Al seleccionar un modo de conversión en el cuadro Modo, SSMA aplica la siguiente configuración:

Modo predeterminado, optimista o completo: siempre que sea posible
Convertir instrucciones LOCK TABLE SSMA puede convertir muchas instrucciones LOCK TABLE en sugerencias de tabla. SSMA no puede convertir ninguna instrucción LOCK TABLE que contenga cláusulas PARTITION, SUBPARTITION, @dblink, y NOWAIT y marcará dichas instrucciones con mensajes de error de conversión.

Si selecciona , SSMA convertirá las instrucciones admitidas LOCK TABLE en sugerencias de tabla.

Si selecciona No, SSMA marcará todas las instrucciones LOCK TABLE con mensajes de error de conversión.

En la tabla siguiente se muestra cómo SSMA convierte los modos de bloqueo de Oracle:

Modo de bloqueo de Oracle

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

Sugerencia de tabla SQL Server

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

Al seleccionar un modo de conversión en el cuadro Modo, SSMA aplica la siguiente configuración:

Modo predeterminado, optimista o completo:
Convertir instrucciones OPEN-FOR para parámetros REF CURSOR OUT En Oracle, la instrucción OPEN .. FOR se puede usar para devolver un conjunto de resultados al parámetro de un subprograma OUT de tipo REF CURSOR. En SQL Server, los procedimientos almacenados devuelven directamente los resultados de las instrucciones SELECT.

SSMA puede convertir muchas instrucciones OPEN .. FOR en instrucciones SELECT.

Si selecciona , SSMA convierte la instrucción OPEN .. FOR en una instrucción , SELECT que devuelve el conjunto de resultados al cliente.

Si selecciona No, SSMA generará un mensaje de error en el código convertido y en el panel Salida.

Al seleccionar un modo de conversión en el cuadro Modo, SSMA aplica la siguiente configuración:

Modo predeterminado, optimista o completo:
Convertir instrucciones de procesamiento de transacciones SSMA puede convertir instrucciones de procesamiento de transacciones de Oracle:

Si selecciona , SSMA convierte las instrucciones de procesamiento de transacciones de Oracle en instrucciones de SQL Server.

Si selecciona No, SSMA marca las instrucciones de procesamiento de transacciones como errores de conversión.

Nota: Oracle abre transacciones implícitamente. Para emular este comportamiento en SQL Server, debe agregar instrucciones BEGIN TRANSACTION manualmente donde desea que se inicien las transacciones. Como alternativa, puede ejecutar el comando SET IMPLICIT_TRANSACTIONS ON al principio de la sesión. SSMA se agrega automáticamente SET IMPLICIT_TRANSACTIONS ON al convertir subrutinas con transacciones autónomas.

Al seleccionar un modo de conversión en el cuadro Modo, SSMA aplica la siguiente configuración:

Modo predeterminado, optimista o completo:

Consulte también

Referencia de la interfaz de usuario (OracleToSQL)