Поделиться через


Образец возвращающей табличное значение функции Oracle

Изменения: 5 декабря 2005 г.

В некоторых случаях возникает необходимость объединения данных других СУБД с данными, хранящимися в Microsoft SQL Server. В этом образце показывается, как вызывать в управляющем коде интерфейс Oracle с целью использования результатов запросов Oracle в виде возвращающей табличное значение функции SQL Server. Этот способ позволяет легко объединять данные Oracle и SQL Server с помощью достаточно простой инструкции SELECT, запускаемой в SQL Server.

Этот образец содержит возвращающую табличное значение функцию GetDataFromOracle. В данной функции используется управляемый поставщик Oracle, запускающий соответствующие запросы к базам данных Oracle и предоставляющий результаты в табличной форме.

Каталог установки: диск:\Program Files\Microsoft SQL Server\90\Samples\Engine\Programmability\CLR\OracleTVF\

Сценарий

Джейн — разработчик базы данных Adventure Works Cycles. Перед ней стоит задача объединения данных из базы данных Oracle с данными, хранящимися в базе данных SQL Server.

Языки

Transact-SQL, Visual C# и Visual Basic.

Возможности

Образец возвращающей табличное значение функции Oracle использует следующие возможности Microsoft SQL Server.

Часть образца Возможности

Все части

Среда CLR, управляемый поставщик Oracle, Transact-SQL

Предварительные условия

Прежде чем запустить этот образец, убедитесь, что установлено следующее программное обеспечение.

  • Microsoft SQL Server 2005 или Microsoft SQL Server 2005 Express Edition (SQL Server Express). SQL Server Express можно получить бесплатно на веб-узле «Документация и образцы SQL Server 2005 Express Edition».
  • Образцы компонента SQL Server 2005 Database Engine. Данные образцы входят в комплект SQL Server 2005. Последнюю версию образцов можно загрузить в центре разработчиков на SQL Server.
  • Пакет .NET Framework SDK 2.0 или среда Microsoft Visual Studio 2005. Пакет .NET Framework SDK можно получить бесплатно. Дополнительные сведения см. в разделе Установка пакета .NET Framework SDK.
  • Сервер, на котором запущен Oracle 10g. Если установлена более ранняя версия Oracle, то при доступе к данным необходимо преобразовывать таблицы и столбцы так, чтобы их формат совпадал с более ранним стандартом. Правильная работа данного образца не гарантируется при использовании оборудования на платформе x64, на которых установлен Oracle более ранней версии, чем 10g. В случае необходимости запуска данного образца под операционной системой Windows Vista необходимо связаться с сервисной службой Oracle для получения сведений о совместимости приложения Oracle версии 10g с ОС Windows Vista.

Построение образца

Если файл ключа для строгого имени UnsafeSampleKey.snk не был создан ранее, создайте его с помощью следующей процедуры.

Создание файла ключа для строгого имени

  1. Откройте командную строку среды Microsoft Visual Studio 2005. В меню Пуск последовательно укажите Все программы, Microsoft Visual Studio 2005, Средства Visual Studio и выберите пункт Командная строка Visual Studio 2005.

    — или —

    Откройте командную строку Microsoft .NET Framework. Нажмите кнопку Пуск, последовательно укажите Все программы, Microsoft .NET Framework SDK v2.0 и выберите пункт Командная строка пакета SDK.

  2. Для перехода из текущей папки в папку «Samples» в командной строке используйте команду смены каталога (CD).

    ms345278.note(ru-ru,SQL.90).gifПримечание.
    Чтобы определить каталог, в котором установлены образцы, нажмите кнопку Пуск, последовательно укажите Все программы, Microsoft SQL Server 2005, Документация и учебные материалы и выберите пункт Каталог образцов. Если использовался каталог установки по умолчанию, образцы будут расположены в каталоге «<system_drive>:\Program Files\Microsoft SQL Server\90\Samples».
  3. Для создания файла ключа выполните следующую команду в командной строке:

    sn -k UnsafeSampleKey.snk

    ms345278.note(ru-ru,SQL.90).gifВажно!
    Дополнительные сведения о паре ключей для строгого имени см. в разделе «Краткие сведения по безопасности: Надежные имена и безопасность в .NET Framework» в центре для разработчиков платформы Microsoft .NET в MSDN.

Создание образца возвращающей табличное значение функции Oracle

  1. Скомпилируйте образец в среде Visual Studio 2005 с помощью предоставляемого решения Visual Studio или программы Microsoft MSBuild, которая включена в пакет .NET Framework SDK 2.0. В командной строке .NET Framework выполните следующие команды:

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

  2. Убедитесь, что база данных AdventureWorks установлена.

  3. Если образцы ядра SQL Server не установлены в место по умолчанию, измените путь в разделе сценария CREATE ASSEMBLY в файле Scripts\InstallCS.sql, чтобы указать местоположение, где были установлены образцы.

  4. Если текущий пользователь не является администратором используемого экземпляра SQL Server, то для завершения установки необходимо наличие предоставленного администратором разрешения CreateAssembly.

  5. Откройте в среде Microsoft SQL Server Management Studio файл scripts\installCS.sql или scripts\installVB.sql (в зависимости от типа скомпилированного проекта: Visual C# или Visual Basic). Выполните сценарий, содержащийся в файле, или введите в командной строке команду, подобную следующей:

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

Выполнение образца

Выполнение образца возвращающей табличное значение функции Oracle

  1. Откройте файл Scripts\Test.sql в среде Microsoft Management Studio или любом текстовом редакторе, таком как «Блокнот». Измените сценарий, заменяя элементы <имя сервера>, <имя пользователя> и <пароль> соответствующими значениями учетных данных используемого сервера Oracle. Это пример создан для выполнения с образцом базы данных, распространяемым Oracle, и связан по умолчанию с пользователем scott, хотя администратор базы данных может потребовать других учетных данных. Выполните сценарий в среде Management Studio либо сохраните его с помощью приложения «Блокнот». Затем в окне командной строки выполните следующую команду:

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

Удаление образца

Удаление образец возвращающей табличное значение функции Oracle

  1. В среде Management Studio откройте файл scripts\cleanup.sql. Выполните сценарий, содержащийся в файле, или выполните в окне командной строке, следующую команду:

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

Примечания

Чтобы этот образец работал правильно, в SQL Server 2005 и SQL Server Express должно быть разрешено использование среды CLR.

Образцы предназначены только для обучения. Они не предназначены для использования в рабочей среде и не тестировались в ней. Корпорация Майкрософт не предоставляет техническую поддержку для этих образцов. Образцы приложений и сборок не следует соединять или использовать с рабочей базой данных SQL Server или с сервером отчетов без разрешения системного администратора.