Образец возвращающей табличное значение функции 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 не был создан ранее, создайте его с помощью следующей процедуры.
Создание файла ключа для строгого имени
Откройте командную строку среды Microsoft Visual Studio 2005. В меню Пуск последовательно укажите Все программы, Microsoft Visual Studio 2005, Средства Visual Studio и выберите пункт Командная строка Visual Studio 2005.
— или —
Откройте командную строку Microsoft .NET Framework. Нажмите кнопку Пуск, последовательно укажите Все программы, Microsoft .NET Framework SDK v2.0 и выберите пункт Командная строка пакета SDK.
Для перехода из текущей папки в папку «Samples» в командной строке используйте команду смены каталога (CD).
Примечание. Чтобы определить каталог, в котором установлены образцы, нажмите кнопку Пуск, последовательно укажите Все программы, Microsoft SQL Server 2005, Документация и учебные материалы и выберите пункт Каталог образцов. Если использовался каталог установки по умолчанию, образцы будут расположены в каталоге «<system_drive>:\Program Files\Microsoft SQL Server\90\Samples». Для создания файла ключа выполните следующую команду в командной строке:
sn -k UnsafeSampleKey.snk
Важно! Дополнительные сведения о паре ключей для строгого имени см. в разделе «Краткие сведения по безопасности: Надежные имена и безопасность в .NET Framework» в центре для разработчиков платформы Microsoft .NET в MSDN.
Создание образца возвращающей табличное значение функции Oracle
Скомпилируйте образец в среде Visual Studio 2005 с помощью предоставляемого решения Visual Studio или программы Microsoft MSBuild, которая включена в пакет .NET Framework SDK 2.0. В командной строке .NET Framework выполните следующие команды:
msbuild /nologo /verbosity:quiet /property:Configuration=Debug CS\OracleTVF.sln
Убедитесь, что база данных AdventureWorks установлена.
Если образцы ядра SQL Server не установлены в место по умолчанию, измените путь в разделе сценария CREATE ASSEMBLY в файле Scripts\InstallCS.sql, чтобы указать местоположение, где были установлены образцы.
Если текущий пользователь не является администратором используемого экземпляра SQL Server, то для завершения установки необходимо наличие предоставленного администратором разрешения CreateAssembly.
Откройте в среде Microsoft SQL Server Management Studio файл scripts\installCS.sql или scripts\installVB.sql (в зависимости от типа скомпилированного проекта: Visual C# или Visual Basic). Выполните сценарий, содержащийся в файле, или введите в командной строке команду, подобную следующей:
sqlcmd -E -I -i Scripts\InstallCS.sql
Выполнение образца
Выполнение образца возвращающей табличное значение функции Oracle
Откройте файл Scripts\Test.sql в среде Microsoft Management Studio или любом текстовом редакторе, таком как «Блокнот». Измените сценарий, заменяя элементы <имя сервера>, <имя пользователя> и <пароль> соответствующими значениями учетных данных используемого сервера Oracle. Это пример создан для выполнения с образцом базы данных, распространяемым Oracle, и связан по умолчанию с пользователем scott, хотя администратор базы данных может потребовать других учетных данных. Выполните сценарий в среде Management Studio либо сохраните его с помощью приложения «Блокнот». Затем в окне командной строки выполните следующую команду:
sqlcmd -E -I -i Scripts\Test.sql
Удаление образца
Удаление образец возвращающей табличное значение функции Oracle
В среде Management Studio откройте файл scripts\cleanup.sql. Выполните сценарий, содержащийся в файле, или выполните в окне командной строке, следующую команду:
sqlcmd -E -I -i Scripts\cleanup.sql
Примечания
Чтобы этот образец работал правильно, в SQL Server 2005 и SQL Server Express должно быть разрешено использование среды CLR.
Образцы предназначены только для обучения. Они не предназначены для использования в рабочей среде и не тестировались в ней. Корпорация Майкрософт не предоставляет техническую поддержку для этих образцов. Образцы приложений и сборок не следует соединять или использовать с рабочей базой данных SQL Server или с сервером отчетов без разрешения системного администратора.