共用方式為


Oracle TVF 範例

更新: 2005 年 12 月 5 日

在某些企業實務中,整合其他資料庫管理系統的資料與 Microsoft SQL Server 所儲存的資料是很有用的。此範例示範如何叫用 Oracle 的 Managed 程式碼介面,在 SQL Server 中公開任何資料表值函數形式之 Oracle 查詢的結果。此方法可以用相當簡單的 SELECT 陳述式 (您在 SQL Server 上執行它),來聯結 Oracle 和 SQL Server 的資料。

此範例包含 GetDataFromOracle 資料表值函數。此函數使用 Managed Oracle 提供者,對 Oracle 資料庫執行任意 Oracle 查詢,並提供資料表形式的結果。

安裝目錄:<drive>:\Program Files\Microsoft SQL Server\90\Samples\Engine\Programmability\CLR\OracleTVF\

狀況

Jane 是 Adventure Works Cycles 的開發人員。她必須整合 Oracle 資料庫的資料與 資料庫所儲存的資料。

程式語言

Transact-SQL、Visual C# 和 Visual Basic。

功能

Oracle TVF 範例會使用 Microsoft SQL Server 的下列功能。

應用程式區 功能

整體

Common Language Runtime、Oracle Managed 提供者、Transact-SQL

必要條件

執行此範例之前,請確定已安裝下列軟體:

  • Microsoft SQL Server 2005 或 Microsoft SQL Server 2005 Express Edition (SQL Server Express)。您可以從 SQL Server 2005 Express Edition 文件集和範例網站免費取得 SQL Server Express。
  • 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,則您需要修改已存取的資料表和資料行,以符合舊伺服器上的現有資料表。這個範例可能無法在使用 Oracle 10g 之前版本的 x64 系列硬體上執行。如果您想要在 Windows Vista 使用這個範例,請向 Oracle 客戶服務代表洽詢 Windows Vista 作業系統上 Oracle 10g 可用性的詳細資訊。

建立範例

如果您尚未建立強式名稱金鑰檔 UnsafeSampleKey.snk,請利用下列程序產生金鑰檔。

若要產生強式名稱金鑰檔

  1. 開啟 Microsoft Visual Studio 2005 命令提示字元。按一下 [開始],依序指向 [所有程式][Microsoft Visual Studio 2005][Visual Studio 工具],然後按一下 [Visual Studio 2005 命令提示字元]

    - 或 -

    開啟 Microsoft .NET Framework 命令提示字元。按一下 [開始],依序指向 [所有程式][Microsoft .NET Framework SDK 2.0],然後按一下 [SDK 命令提示字元]

  2. 在命令提示字元中,使用變更目錄 (CD) 命令,將 [命令提示字元] 視窗的目前資料夾變更為 Samples 資料夾。

    ms345278.note(zh-tw,SQL.90).gif附註:
    若要判斷範例所在的資料夾,按一下 [開始],依序指向 [所有程式][Microsoft SQL Server 2005][文件集和教學課程],然後按一下 [範例目錄]。如果是使用預設安裝位置,則範例位於 <system_drive>:\Program Files\Microsoft SQL Server\90\Samples。
  3. 在命令提示字元中,執行下列其中一個命令來產生金鑰檔:

    sn -k UnsafeSampleKey.snk

    ms345278.note(zh-tw,SQL.90).gif重要事項:
    如需有關強式名稱金鑰組的詳細資訊,請參閱 MSDN 中 Microsoft .NET Development Center 中的<Security Briefs: Strong Names and Security in the .NET Framework>。

若要建立 Oracle TVF 範例

  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 引擎範例,請修改 Scripts\InstallCS.sql 中指令碼之 CREATE ASSEMBLY 部分的路徑,以參考已安裝範例的位置。

  4. 如果您不是正在使用之 SQL Server 執行個體的管理員,則必須讓管理員授與您 CreateAssembly 權限來完成安裝。

  5. 在 Microsoft SQL Server Management Studio 中,根據您所編譯的是 Visual C# 專案還是 Visual Basic 專案,來開啟 scripts\installCS.sql 或 scripts\installVB.sql 檔案。執行檔案中所包含的指令碼,或在 [命令提示字元] 視窗中執行下列命令:

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

執行範例

若要執行 Oracle TVF 範例

  1. 在 Microsoft Management Studio 或例如 [記事本] 的文字編輯器中,開啟 Scripts\Test.sql 檔案。編輯指令碼,將 <server name>、<user name> 和 <password> 取代成您使用的 Oracle 伺服器的名稱和您在該伺服器上使用的認證。此範例的設計是與 Oracle 所散發的範例資料庫搭配執行,且預設與使用者 scott 相關聯,但您的資料庫管理員可能會要求提供不同的認證。在 Management Studio 中執行指令碼,或從 [記事本] 儲存指令碼。然後,在命令提示字元視窗中執行如下命令:

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

移除範例

若要移除 Oracle TVF 範例

  1. 在 Management Studio 中,開啟 scripts\cleanup.sql 檔案。執行檔案中所包含的指令碼,或在 [命令提示字元] 視窗中執行下列命令:

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

註解

必須啟用 SQL Server 2005 或 SQL Server Express 的 Common Language Runtime,這個範例才能順利運作。

範例只供教育目的之用。它們不能用於實際執行環境,而且尚未在實際執行環境中測試過。Microsoft 不提供對這些範例的技術支援。若沒有系統管理員的權限,就不應該在生產 SQL Server 資料庫或報表伺服器上,連接或使用範例應用程式及組件。