The object references report provides a general overview of the objects referenced by other objects in the input source code.
Important Notice: Migration of Documentation Website
Please be advised that our documentation website is currently undergoing a migration to a new platform. To ensure you have access to the most up-to-date information, we kindly request that you visit our new documentation website located at:
For any immediate assistance or if you encounter any issues, please contact our support team at [email protected].
Thank you for your understanding.
Built-in elements are not considered as part of this report.
What is an "Object Reference"?
An object reference is the term used to refer to DDL definitions in the source code, that are being referenced by code units. The table below shows which elements could be referenced in each supported language.
Object
Teradata
Oracle
Transact-SQL
Table
✓
✓
✓
View
✓
✓
✓
Procedure
✓
✓
✓
Function
✓
✓
✓
Macro
✓
Package Function
✓
Package Procedure
✓
*Package
✓
Join Index
✓
Index
✓
Synonym
✓
Database Link
✓
Type
✓
✓
✓
Materialized View
✓
Trigger
✓
✓
✓
Sequence
✓
✓
✓
Constraint
✓
✓
If an asterisk ('*') is listed in the section above, it means that the object is used to call properties from itself that are not considered DDL statements such as constants, variables, or cursors.
Where can I find it?
The object references report can be found in a folder named "reports", in the output folder of your conversion. The name of the file itself starts with "ObjectReferences" so it can easily be located.
The format of the file is .CSV.
What information does it contain?
The object references report contains the following information about all the references found while converting:
Column
Description
PartitionKey
The unique identifier of the conversion.
FileName
The name of the file in which the object is located.
Caller_CodeUnit
The type of the code unit referencing an existing element.
Caller_CodeUnit_Database
The database of the code unit referencing an existing element. For now, only SQL Server objects can have a database.
Caller_CodeUnit_Schema
The schema of the code unit referencing an existing element.
Caller_CodeUnit_Name
The name of the code unit referencing an existing element.
Caller_CodeUnit_FullName
The fully qualified name of the object referencing an existing element.
Referenced_Element_Type
The DDL type of the referenced element.
Referenced_Element_Database
The database of the referenced element. For now, only SQL Server objects can have a database.
Referenced_Element_Schema
The schema of the referenced element.
Referenced_Element_Name
The name of the referenced element.
Referenced_Element_FullName
The full qualified name of the referenced element.
Line
The line number inside the file where the reference is located.
Relation_Type
Shows the type of relation used through the caller code unit and the object reference.
Oracle Database Links as object references
To get the information such as database name, schema name, or object name of database link references, we need to know how the database link was defined. Database links contain the most relevant information in the connection string used in its definition. E.g.
Database Link with database name
Using the example above, the object reference information should look like this:
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
Database Link with database and schema names
Using the example above, the object reference information should look like this:
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
Database Link with a connection string
Using the example above, the object reference information should look like this:
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
Relation Type
The relation type represents how a caller code unit is related to an object reference. SnowConvert is able to identify the following kinds of relations:
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
Examples
A stored procedure referencing a table through an UPDATE statement:
The report will show something like the following table:
Caller_CodeUnit
Referenced_Element_Type
Referenced_Element_FullName
Line
Relation_Type
CREATE PROCEDURE
CREATE TABLE
TABLE2
10
UPDATE
A table referencing another table through a FOREIGN KEY:
The report will show something like the following table:
Caller_CodeUnit
Referenced_Element_Type
Referenced_Element_FullName
Line
Relation_Type
CREATE TABLE
CREATE TABLE
TABLE1
10
FOREIGN KEY
A table referenced by a view in the FROM clause of the SELECT statement:
The report will show something like the following table:
Caller_CodeUnit
Referenced_Element_Type
Referenced_Element_FullName
Line
Relation_Type
CREATE VIEW
CREATE TABLE
TABLE1
8
SELECT - FROM
A user-defined function (UDF) referenced by a view as a result set column.
The report will show something like the following table:
CREATE DATABASE LINK remote_hr_db
CONNECT TO hr_user
IDENTIFIED BY hr_password
USING 'RemoteDB';
SELECT * FROM hr.employees@remote_hr_db;
CREATE DATABASE LINK remote_hr_db1
CONNECT TO hr_user
IDENTIFIED BY hr_password
USING 'RemoteDB.MySchema';
SELECT * FROM employees@remote_hr_db1;
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;
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;