關於查詢遠端目錄和資料庫

在本章中,您將學習使用以下格式的 SQL 語法,使用目錄中繼資料查詢外部資料:[schema].object@catalog_name

此處的語法 [schema].object@catalog_name 代表存取資料庫物件的表示法

此表格說明語法中使用的參數及其描述:

表格 16-2 語法中使用的參數和描述

參數 描述
綱要

此為選用欄位,且預設為目前使用者。綱要是目錄內組織相關資料庫物件 (例如表格、視觀表、程序或函數) 的命名空間。它就像是這些物件的邏輯容器。

物件 此欄位表示綱要中包含的任何資料庫物件,例如表格、視觀表、程序或函數。
目錄 目錄欄位會顯示含有參照表格的目錄名稱。您可以使用 DBMS_CATALOG 套裝程式或 Data Studio 工具套件的 Catalog Tool 來建立及管理目錄。

附註:

您也可以使用 dbLinks 取代目錄。

存取遠端表格

若要使用目錄從遠端綱要存取表格,您必須遵循下列步驟:
  1. 掛載目錄:從將目錄掛載至任何支援的資料存放區類型 (例如 Iceberg、Delta Lake 等) 開始。掛載目錄可將描述資料標準化,讓 SQL 存取外部資料,就像是目錄中綱要內的表格一樣。如需掛載目錄的詳細步驟,請參考管理目錄。目錄掛載並標準化之後,您就可以使用 SQL 直接查詢外部資料。即使外部資料並非實際存在於傳統表格中,目錄也會將其抽象化為表格格式,以便於查詢。
  2. 參照表格:掛載之後,您可以使用下列語法指定綱要和目錄 (如果適用),後面接著表格名稱來參照遠端表格:[remote_schema].table@catalog

此處的 schema 是包含遠端表格的遠端綱要。Table 是遠端目錄中的表格名稱。

附註:

使用者必須具有適當的認證,才能存取特定表格與目錄。

要考慮的重要要點

  • 此功能是使用 ADB-S 環境中安裝的 DBMS_CATALOG 套裝軟體所設計。
  • 不允許透過目錄在遠端資料庫執行 DDL 作業 (例如 CREATE, ALTER, DROP)。如果這麼做,可能會發生 ORA-02021:遠端資料庫不允許執行 DDL 作業錯誤。
  • 相同名稱限制:此功能會強制指定使用者沒有資料庫連結和相同名稱的目錄。

您可以使用「資料庫動作」的「SQL 工作表編輯器」來執行 SQL 查詢。您必須先連線至您的「資料庫動作」執行處理,然後選取開發功能表下的 SQL

必備條件:

您需要一個 OCI 帳戶。

DBlinks 與 Catalogs 有何不同?

DBLinks :它們主要用來使用語法直接連線和查詢其他資料庫。

舉例而言:
SELECT *FROM <schema_name>.<table_name>@<dblink_name>;

當目錄透過 DBLink 掛載到另一個資料庫上時,不需要在目錄中分別定義中繼資料,因為 DBLink 語法會直接存取遠端資料庫物件。基本上,DBLink 會作為遠端資料庫的通透連線,讓查詢可以像本機資料一樣執行。

目錄:它們可作為描述資料層,可掛載於不同類型的資料存放區,不僅是透過 DBLink 連線的資料庫,還可掛載外部資料目錄或資料共用 (例如 Delta Share 或 Live Share 提供者)。當目錄掛載於非資料庫存放區時,@catalog 語法會調整查詢以產生內嵌外部表格,讓您不必使用 DBLink 即可存取外部資料。這表示目錄會抽象描述資料管理,並提供查詢各種資料來源 (包括外部資料來源) 的統一介面。