SnowConvert: オブジェクト参照レポート¶
注釈
組み込み要素は本レポートの一部として考慮されていません。
「オブジェクト参照」とは¶
オブジェクト参照とは、コードユニットによって参照される、ソースコード内の DDL 定義を指す用語です。以下のテーブルは、サポートされている各言語でどの要素が参照になり得るかを示しています。
Object | Teradata | Oracle | Transact-SQL | Extensibility Languages |
---|---|---|---|---|
Table | ✓ | ✓ | ✓ | ✓ |
View | ✓ | ✓ | ✓ | ✓ |
Procedure | ✓ | ✓ | ✓ | ✓ |
Function | ✓ | ✓ | ✓ | ✓ |
Macro | ✓ | |||
Package Function | ✓ | |||
Package Procedure | ✓ | |||
*Package | ✓ | |||
Join Index | ✓ | |||
Index | ✓ | |||
Synonym | ✓ | |||
Database Link | ✓ | |||
Type | ✓ | ✓ | ✓ | |
Materialized View | ✓ | |||
Trigger | ✓ | ✓ | ✓ | |
Sequence | ✓ | ✓ | ✓ | |
Constraint | ✓ | ✓ |
注釈
上のセクションでアスタリスク(「*」)がリストされている場合は、オブジェクトが定数、変数、カーソルなどの DDL ステートメントとみなされないプロパティを自分自身から呼び出すために使用されていることを意味します。
存在する場所¶
オブジェクト参照レポートは、変換の出力フォルダー内の 「reports」 というフォルダーにあります。ファイル名は 「ObjectReferences」 で始まるため、簡単に見つけることができます。
ファイルの形式は .CSV です。
コンテナーに含まれる情報¶
オブジェクト参照レポートには、変換中に見つかったすべての参照に関する以下の情報が含まれます。
列 |
説明 |
---|---|
PartitionKey |
変換の一意識別子。 |
FileName |
オブジェクトが置かれているファイル名。 |
Caller_CodeUnit |
既存の要素を参照するコードユニットのタイプ。 |
Caller_CodeUnit_Database |
既存の要素を参照するコードユニットのデータベース。現時点では、 SQL Serverオブジェクトのみがデータベースを持つことができます。 |
Caller_CodeUnit_Schema |
既存の要素を参照するコードユニットのスキーマ。 |
Caller_CodeUnit_Name |
既存の要素を参照するコードユニットの名前。 |
Caller_CodeUnit_FullName |
既存の要素を参照するオブジェクトの完全修飾名。 |
Referenced_Element_Type |
参照要素の DDL タイプ。 |
Referenced_Element_Database |
参照要素のデータベース。現時点では、 SQL Serverオブジェクトのみがデータベースを持つことができます。 |
Referenced_Element_Schema |
参照要素のスキーマ。 |
Referenced_Element_Name |
参照要素の名前。 |
Referenced_Element_FullName |
参照要素の完全修飾名。 |
行 |
参照があるファイル内の行番号。 |
Relation_Type |
呼び出し元コードユニットとオブジェクト参照を通じて使用される関係のタイプを示します。 |
オブジェクト参照としてのOracleデータベースリンク¶
データベースリンク参照のデータベース名、スキーマ名、オブジェクト名などの情報を取得するには、データベースリンクがどのように定義されたかを知る必要があります。データベースリンクは、その定義で使用される接続文字列の中で最も関連性の高い情報を含んでいます。例:
データベース名のあるデータベースリンク¶
CREATE DATABASE LINK remote_hr_db
CONNECT TO hr_user
IDENTIFIED BY hr_password
USING 'RemoteDB';
SELECT * FROM hr.employees@remote_hr_db;
上の例を使うと、オブジェクトの参照情報は次のようになります。
Caller_CodeUnit | Referenced_Element_Type | Referenced_Element_Database | Referenced_Element_Schema | Referenced_Element_Name | Referenced_Element_FullName | Line |
---|---|---|---|---|---|---|
SELECT | CREATE DATABASE LINK | RemoteDb | N/A | remote_hr_db | hr.employees@remote_hr_db | 6 |
データベース名とスキーマ名のあるデータベースリンク¶
CREATE DATABASE LINK remote_hr_db1
CONNECT TO hr_user
IDENTIFIED BY hr_password
USING 'RemoteDB.MySchema';
SELECT * FROM employees@remote_hr_db1;
上の例を使うと、オブジェクトの参照情報は次のようになります。
Caller_CodeUnit | Referenced_Element_Type | Referenced_Element_Database | Referenced_Element_Schema | Referenced_Element_Name | Referenced_Element_FullName | Line |
---|---|---|---|---|---|---|
SELECT | CREATE DATABASE LINK | RemoteDb | MySchema | remote_hr_db1 | hr.employees@remote_hr_db1 | 6 |
接続文字列のあるデータベースリンク¶
CREATE DATABASE LINK remote_hr_db2
CONNECT TO hr_user
IDENTIFIED BY hr_password
USING '(DESCRIPTION=(
ADDRESS=
(PROTOCOL=TCP)
(HOST=10.48.195.17)
(PORT=1521))
(CONNECT_DATA=(SID=MyDB)))';
SELECT * FROM employees@remote_hr_db2;
上の例を使うと、オブジェクトの参照情報は次のようになります。
Caller_CodeUnit | Referenced_Element_Type | Referenced_Element_Database | Referenced_Element_Schema | Referenced_Element_Name | Referenced_Element_FullName | Line |
---|---|---|---|---|---|---|
SELECT | CREATE DATABASE LINK | MyDB | N/A | remote_hr_db2 | employees@remote_hr_db2 | 6 |
関係タイプ¶
関係タイプは、呼び出し元コードユニットがオブジェクト参照にどのように関連しているかを表します。SnowConvert は、次のような関係を識別できます。
FOREIGN KEY
INSERT
DELETE
UPDATE
CALL
EXECUTE
SYNONYM
ALTER
DROP
MERGE
TRUNCATE
LOCK
INDEX
TABLE COLUMN
GRANT
REVOKE
SELECT
COLUMN
FROM
WHERE
HAVING
GROUP BY
JOIN
ORDER BY
例¶
UPDATE ステートメントを通してテーブルを参照するストアドプロシージャ。
CREATE TABLE TABLE2
(
COL1 VARCHAR(50) NOT NULL,
COL2 INT NOT NULL
);
CREATE OR REPLACE PROCEDURE Procedure01 (param1 NUMBER)
IS
BEGIN
UPDATE TABLE2
SET COL1 = 'Anderson'
WHERE COL2 = param1;
END;
レポートには以下のテーブルのようなものが表示されます。
Caller_CodeUnit | Referenced_Element_Type | Referenced_Element_FullName | Line | Relation_Type |
---|---|---|---|---|
CREATE PROCEDURE | CREATE TABLE | TABLE2 | 10 | UPDATE |
FOREIGN KEY を介して別のテーブルを参照するテーブル。
CREATE TABLE TABLE1
(
COL1 INT
);
CREATE TABLE TABLE2
(
COL1 INT,
CONSTRAINT FK_COL1 FOREIGN KEY (COL1)
REFERENCES TABLE1(COL1)
);
レポートには以下のテーブルのようなものが表示されます。
Caller_CodeUnit | Referenced_Element_Type | Referenced_Element_FullName | Line | Relation_Type |
---|---|---|---|---|
CREATE TABLE | CREATE TABLE | TABLE1 | 10 | FOREIGN KEY |
SELECT ステートメントの FROM 句で、ビューによって参照されるテーブル。
CREATE TABLE TABLE1
(
COL1 INT
);
CREATE VIEW VIEW1
AS
SELECT * FROM TABLE1;
レポートには以下のテーブルのようなものが表示されます。
Caller_CodeUnit | Referenced_Element_Type | Referenced_Element_FullName | Line | Relation_Type |
---|---|---|---|---|
CREATE VIEW | CREATE TABLE | TABLE1 | 8 | SELECT - FROM |
結果セット列として表示から参照されるユーザー定義関数(UDF)。
CREATE FUNCTION FUNCTION1(PARAM1 INT)
RETURN NUMBER
IS
BEGIN
RETURN(PARAM1 + 1);
END;
CREATE VIEW VIEW1
AS
SELECT FUNCTION1(*) FROM TABLE1;
レポートには以下のテーブルのようなものが表示されます。
Caller_CodeUnit | Referenced_Element_Type | Referenced_Element_FullName | Line | Relation_Type |
---|---|---|---|---|
CREATE VIEW | CREATE FUNCTION | FUNCTION1 | 10 | SELECT - COLUMN |