Oracle TVF (ejemplo)

Actualizado: 5 de diciembre de 2005

En algunos escenarios de empresas, resulta útil integrar datos de otros sistemas de administración de bases de datos con los datos almacenados en Microsoft SQL Server. En este ejemplo se muestra cómo invocar la interfaz de código administrado con Oracle con el fin de exponer los resultados de cualquier consulta de Oracle como una función con valores de tabla en SQL Server. Este enfoque facilita la combinación de datos tanto de Oracle como de SQL Server en una instrucción SELECT relativamente sencilla que se ejecuta en SQL Server.

Este ejemplo contiene la función con valores de tabla GetDataFromOracle. Esta función usa el proveedor de Oracle administrado para ejecutar consultas de Oracle arbitrarias en una base de datos de Oracle y proporcionar los resultados en forma de tabla.

Directorio de instalación: unidad:\Archivos de programa\Microsoft SQL Server\90\Samples\Engine\Programmability\CLR\OracleTVF\

Escenario

Jane es programadora en Adventure Works Cycles. Tiene que integrar los datos de una base de datos de Oracle con los datos almacenados en una base de datos de .

Lenguajes

Transact-SQL, Visual C# y Visual Basic.

Características

El ejemplo Oracle TVF usa las siguientes características de Microsoft SQL Server.

Área de aplicación Características

Global

Common Language Runtime, proveedor administrado de Oracle, Transact-SQL

Requisitos previos

Antes de ejecutar este ejemplo, asegúrese de que esté instalado el siguiente software:

  • Microsoft SQL Server 2005 o bien Microsoft SQL Server 2005 Express Edition (SQL Server Express). Puede obtener SQL Server Express de forma gratuita desde el sitio Web de Documentación y ejemplos de SQL Server 2005 Express Edition.
  • Los ejemplos de SQL Server 2005 Database Engine (Motor de base de datos de SQL Server 2005). Estos ejemplos están incluidos en SQL Server 2005. Puede descargar la última versión de los ejemplos en el sitio Web para programadores de SQL Server.
  • .NET Framework SDK 2.0 o Microsoft Visual Studio 2005. Puede obtener el SDK de .NET Framework de forma gratuita. Para obtener más información, vea Instalar .NET Framework SDK.
  • Un servidor en el que se ejecute Oracle 10g. Si tiene instalada una versión anterior de Oracle, deberá modificar la tabla y las columnas a las que se tiene acceso para que coincidan con la tabla del servidor antiguo. Puede que este ejemplo no funcione en hardware basado en x64 que utilice versiones de Oracle anteriores a 10g. Si desea utilizar este ejemplo en Windows Vista, póngase en contacto con el representante de servicio al cliente de Oracle y obtenga información acerca de la disponibilidad de Oracle 10g en dicha versión de Windows.

Generar el ejemplo

Si todavía no ha creado el archivo de clave de nombre seguro UnsafeSampleKey.snk, siga este procedimiento para generarlo.

Para generar un archivo de clave de nombre seguro

  1. Abra un símbolo del sistema de Microsoft Visual Studio 2005. Haga clic en Inicio, seleccione Todos los programas, Microsoft Visual Studio 2005, Visual Studio Tools y, a continuación, haga clic en Visual Studio 2005 Command Prompt.

    O bien

    Abra un símbolo del sistema de Microsoft .NET Framework. Haga clic en Inicio, seleccione Todos los programas, Microsoft .NET Framework SDK v2.0 y, a continuación, haga clic en SDK Command Prompt.

  2. En el símbolo del sistema, use el comando de cambio de directorio (CD) para cambiar la carpeta actual de la ventana del símbolo del sistema a la carpeta Samples.

    [!NOTA] Para determinar la carpeta donde se encuentran los ejemplos, haga clic en Inicio, seleccione Todos los programas, Microsoft SQL Server 2005, Documentation and Tutorials y, a continuación, haga clic en Samples Directory. Si se usó la ubicación de instalación predeterminada, los ejemplos se encuentran en <system_drive>:\Archivos de programa\Microsoft SQL Server\90\Samples.

  3. En el símbolo del sistema, ejecute el comando siguiente para generar el archivo de clave:

    sn -k UnsafeSampleKey.snk

    ms345278.note(es-es,SQL.90).gifImportante:
    Para obtener más información acerca del par de claves de nombre seguro, vea el apartado sobre informes de seguridad de nombres seguros y seguridad en el centro de desarrollo de Microsoft .NET de MSDN.

Para generar el ejemplo Oracle TVF

  1. Compile el ejemplo con Visual Studio 2005 y la solución de Visual Studio proporcionada, o mediante Microsoft MSBuild, que se incluye en el SDK 2.0 de .NET Framework. Ejecute comandos similares al siguiente en un símbolo del sistema de .NET Framework:

    msbuild /nologo /verbosity:quiet /property:Configuration=Debug CS\OracleTVF.sln

  2. Asegúrese de que la base de datos AdventureWorks esté instalada.

  3. Si no instaló los ejemplos de motor de SQL Server en la ubicación predeterminada, modifique la ruta en la parte CREATE ASSEMBLY de la secuencia de comandos en Scripts\InstallCS.sql para hacer referencia a la ubicación donde se instalaron los ejemplos.

  4. Si no es administrador para la instancia de SQL Server que está usando, debe hacer que un administrador le otorgue permisos CreateAssembly para completar la instalación.

  5. Abra el archivo scripts\installCS.sql o scripts\installVB.sql, dependiendo de si ha compilado el proyecto de Visual C# o el proyecto de Visual Basic en Microsoft SQL Server Management Studio. Ejecute la secuencia de comandos que contiene el archivo o ejecute un comando similar al siguiente en una ventana del símbolo del sistema:

    sqlcmd -E -I -i Scripts\InstallCS.sql

Ejecutar el ejemplo

Para ejecutar el ejemplo Oracle TVF

  1. Abra el archivo Scripts\Test.sql en Microsoft Management Studio o en un editor de texto como el Bloc de notas. Modifique la secuencia de comandos reemplazando <nombreDeServidor>, <nombreDeUsuario> y <contraseña> por el nombre del servidor de Oracle que use y las credenciales que utilice en él. Este ejemplo está diseñado para ejecutarse con la base de datos de ejemplo distribuida por Oracle y asociada de forma predeterminada con el usuario Scott, aunque es posible que el administrador de base de datos exija credenciales distintas. Ejecute la secuencia de comandos en Management Studio, o bien guárdela en el Bloc de notas. A continuación, ejecute un comando similar al siguiente en una ventana del símbolo del sistema:

    sqlcmd -E -I -i Scripts\Test.sql

Quitar el ejemplo

Para quitar el ejemplo Oracle TVF

  1. Abra el archivo scripts\cleanup.sql en Management Studio. Ejecute la secuencia de comandos que contiene el archivo o ejecute el comando siguiente en una ventana del símbolo del sistema:

    sqlcmd -E -I -i Scripts\cleanup.sql

Comentarios

Para que este ejemplo funcione correctamente, es necesario habilitar Common Language Runtime para SQL Server 2005 o SQL Server Express.

Los ejemplos se proporcionan exclusivamente con fines formativos. No se han diseñado para utilizarse en un entorno de producción y no se han probado en ningún entorno de este tipo. Microsoft no ofrece soporte técnico para estos ejemplos. Las aplicaciones y los ensamblados de ejemplo no se deben conectar ni usar con la base de datos de SQL Server de producción ni con el servidor de informes sin el permiso del administrador del sistema.