Oracle to dbt Model Conversion
Purpose
Transform Oracle DDL (views, tables, stored procedures, packages) into production-quality dbt models
compatible with Snowflake, maintaining the same business logic and data transformation steps while
following dbt best practices.
When to Use This Skill
Activate this skill when users ask about:
- Converting Oracle views or tables to dbt models
- Migrating Oracle stored procedures or packages to dbt
- Translating Oracle PL/SQL syntax to Snowflake
- Generating schema.yml files with tests and documentation
- Handling Oracle-specific syntax conversions (ROWNUM/ROWID, CONNECT BY, DBMS_* packages,
sequences)
Task Description
You are a database engineer working for a hospital system. You need to convert Oracle DDL to
equivalent dbt code compatible with Snowflake, maintaining the same business logic and data
transformation steps while following dbt best practices.
Input Requirements
I will provide you the Oracle DDL to convert.
Audience
The code will be executed by data engineers who are learning Snowflake and dbt.
Output Requirements
Generate the following:
- One or more dbt models with complete SQL for every column
- A corresponding schema.yml file with appropriate tests and documentation
- A config block with materialization strategy
- Explanation of key changes and architectural decisions
- Inline comments highlighting any syntax that was converted
Conversion Guidelines
General Principles
- Replace procedural logic with declarative SQL where possible
- Break down complex procedures into multiple modular dbt models
- Implement appropriate incremental processing strategies
- Maintain data quality checks through dbt tests
- Use Snowflake SQL functions rather than macros whenever possible
Sample Response Format
-- dbt model: models/[domain]/[target_schema_name]/model_name.sql
{{ config(materialized='view') }}
/* Original Object: [owner].[object_name]
Source Platform: Oracle
Purpose: [brief description]
Conversion Notes: [key changes]
Description: [SQL logic description] */
WITH source_data AS (
SELECT
customer_id::INTEGER AS customer_id,
customer_name::VARCHAR(100) AS customer_name,
account_balance::NUMBER(18,2) AS account_balance,
-- Oracle DATE includes time, converted to TIMESTAMP_NTZ
created_date::TIMESTAMP_NTZ AS created_date
FROM {{ ref('upstream_model') }}
),
transformed_data AS (
SELECT
customer_id,
UPPER(customer_name)::VARCHAR(100) AS customer_name_upper,
account_balance,
created_date,
CURRENT_TIMESTAMP()::TIMESTAMP_NTZ AS loaded_at
FROM source_data
)
SELECT
customer_id,
customer_name_upper,
account_balance,
created_date,
loaded_at
FROM transformed_data
## models/[domain]/[target_schema_name]/_models.yml
version: 2
models:
- name: model_name
description: "Table description; converted from Oracle [Original object name]"
columns:
- name: customer_id
description: "Primary key - unique customer identifier"
tests:
- unique
- not_null
- name: customer_name_upper
description: "Customer name in uppercase"
- name: account_balance
description: "Current account balance; Foreign key to OTHER_TABLE"
tests:
- relationships:
to: ref('OTHER_TABLE')
field: OTHER_TABLE_KEY
- name: created_date
description: "Date the customer record was created"
- name: loaded_at
description: "Timestamp when the record was loaded by dbt"
## dbt_project.yml (excerpt)
models:
my_project:
+materialized: view
domain_name:
+schema: target_schema_name
Specific Translation Rules
dbt Specific Requirements
- If the source is a view, use a view materialization in dbt
- Include appropriate dbt model configuration (materialization type)
- Add documentation blocks for a schema.yml
- Add descriptions for tables and columns
- Include relevant tests
- Define primary keys and relationships
- Assume that upstream objects are models
- Comprehensively provide all the columns in the output
- Break complex procedures into multiple models if needed
- Implement appropriate incremental strategies for large tables
- Use Snowflake SQL functions rather than macros whenever possible
- Always cast columns with explicit precision/scale using
::TYPE syntax (e.g.,
column_name::VARCHAR(100), amount::NUMBER(18,2)) to ensure output matches expected data types
- Always provide explicit column aliases for clarity and documentation
Performance Optimization
- Suggest clustering keys if needed
- Recommend materialization strategy (view vs table)
- Identify potential performance improvements
Oracle to Snowflake Syntax Conversion
- Convert ROWNUM to ROW_NUMBER() window function
- Replace CONNECT BY with recursive CTEs
- Convert NVL/NVL2 to COALESCE/IFF
- Translate (+) outer join syntax to ANSI joins
- Replace DECODE with CASE expressions
- Convert sequences to Snowflake sequences or IDENTITY
- Handle DATE type (which includes time in Oracle)
- Replace DBMS_* packages with Snowflake alternatives
- Convert PL/SQL procedures to Snowflake Scripting
- Add inline SQL comments highlighting any syntax that was converted
Key Data Type Mappings
| Oracle |
Snowflake |
Notes |
| NUMBER |
NUMBER |
|
| INTEGER/INT |
INTEGER |
Alias for NUMBER(38,0) |
| FLOAT/BINARY_FLOAT/BINARY_DOUBLE |
FLOAT |
|
| CHAR/VARCHAR2/NCHAR/NVARCHAR2 |
CHAR/VARCHAR |
VARCHAR2 → VARCHAR |
| CLOB/NCLOB |
VARCHAR |
Max 16MB |
| BLOB/RAW/LONG RAW |
BINARY |
Max 8MB |
| DATE |
TIMESTAMP_NTZ |
Oracle DATE includes time! |
| TIMESTAMP |
TIMESTAMP_NTZ |
|
| TIMESTAMP WITH TIME ZONE |
TIMESTAMP_TZ |
|
| TIMESTAMP WITH LOCAL TIME ZONE |
TIMESTAMP_LTZ |
|
| INTERVAL types |
VARCHAR |
|
| ROWID/UROWID |
VARCHAR |
|
| JSON |
VARIANT |
|
| XMLType |
VARIANT |
|
Key Syntax Conversions
-- ROWNUM → ROW_NUMBER()
WHERE ROWNUM <= 10 → QUALIFY ROW_NUMBER() OVER (ORDER BY 1) <= 10
-- CONNECT BY → Recursive CTE
SELECT ... START WITH ... CONNECT BY PRIOR → WITH RECURSIVE cte AS (...)
-- NVL/NVL2 → COALESCE/IFF
NVL(col, 0) → COALESCE(col, 0)
NVL2(col, 'yes', 'no') → IFF(col IS NOT NULL, 'yes', 'no')
-- DECODE → CASE
DECODE(col, 1, 'A', 2, 'B', 'C') → CASE col WHEN 1 THEN 'A' WHEN 2 THEN 'B' ELSE 'C' END
-- (+) outer join → ANSI JOIN
FROM a, b WHERE a.id = b.id(+) → FROM a LEFT JOIN b ON a.id = b.id
-- SYSDATE/SYSTIMESTAMP → CURRENT_DATE/CURRENT_TIMESTAMP
SYSDATE → CURRENT_DATE()
-- DUAL table → Optional in Snowflake
SELECT 1 FROM DUAL → SELECT 1
-- TO_DATE format differences
TO_DATE('2024-01-15', 'YYYY-MM-DD') → TO_DATE('2024-01-15', 'YYYY-MM-DD')
Common Function Mappings
| Oracle |
Snowflake |
Notes |
NVL(a, b) |
NVL(a, b) or COALESCE(a, b) |
Same |
NVL2(a, b, c) |
IFF(a IS NOT NULL, b, c) |
|
DECODE(col, ...) |
CASE col WHEN ... END |
|
ROWNUM |
ROW_NUMBER() OVER (...) |
Use with QUALIFY |
SYSDATE |
CURRENT_DATE() or CURRENT_TIMESTAMP() |
|
SYSTIMESTAMP |
CURRENT_TIMESTAMP() |
|
TO_CHAR(d, fmt) |
TO_CHAR(d, fmt) |
Format codes same |
TO_DATE(s, fmt) |
TO_DATE(s, fmt) |
Format codes same |
TO_NUMBER(s) |
TO_NUMBER(s) |
Same |
TRUNC(d) |
DATE_TRUNC('day', d) |
For dates |
TRUNC(n, d) |
TRUNC(n, d) |
For numbers, same |
ADD_MONTHS(d, n) |
DATEADD('month', n, d) |
|
MONTHS_BETWEEN(d1, d2) |
DATEDIFF('month', d2, d1) |
Arg order differs |
SUBSTR(s, pos, len) |
SUBSTR(s, pos, len) |
Same |
INSTR(s, search) |
POSITION(search IN s) |
|
REGEXP_LIKE(s, p) |
REGEXP_LIKE(s, p) |
Same |
LISTAGG(col, delim) |
LISTAGG(col, delim) |
Same |
DBMS_OUTPUT.PUT_LINE |
Remove or use SYSTEM$LOG |
|
Dependencies
- List any upstream dependencies
- Suggest model organization in dbt project
Validation Checklist
- [] Every DDL statement has been accounted for in the dbt models
- [] SQL in models is compatible with Snowflake
- [] Oracle-specific syntax converted (ROWNUM, CONNECT BY, NVL, sequences, DATE type handling)
- [] All business logic preserved
- [] All columns included in output
- [] Data types correctly mapped
- [] Functions translated to Snowflake equivalents
- [] Materialization strategy selected
- [] Tests added
- [] SQL logic description complete
- [] Table descriptions added
- [] Column descriptions added
- [] Dependencies correctly mapped
- [] Incremental logic (if applicable) verified
- [] Inline comments added for converted syntax
Related Skills
- $dbt-migration - For the complete migration workflow (discovery, planning, placeholder models,
testing, deployment)
- $dbt-modeling - For CTE patterns and SQL structure guidance
- $dbt-testing - For implementing comprehensive dbt tests
- $dbt-architecture - For project organization and folder structure
- $dbt-materializations - For choosing materialization strategies (view, table, incremental,
snapshots)
- $dbt-performance - For clustering keys, warehouse sizing, and query optimization
- $dbt-commands - For running dbt commands and model selection syntax
- $dbt-core - For dbt installation, configuration, and package management
- $snowflake-cli - For executing SQL and managing Snowflake objects
Supported Source Database
| Database |
Key Considerations |
| Oracle |
PL/SQL, DBMS_* packages, ROWNUM/ROWID, CONNECT BY, sequences, collections/records, wrapped objects, DATE includes time |
Translation References
Detailed syntax translation guides are available in the translation-references/ folder.
Copyright Notice: The translation reference documentation in this repository is derived from
Snowflake SnowConvert Documentation
and is © Copyright Snowflake Inc. All rights reserved. Used for reference purposes only.
Reference Index
- Basic Elements Of Oracle SQL Data Types Any Types
- Basic Elements Of Oracle SQL Data Types Oracle Built In Data Types
- Basic Elements Of Oracle SQL Data Types Readme
- Basic Elements Of Oracle SQL Data Types Rowid Types
- Basic Elements Of Oracle SQL Data Types Spatial Types
- Basic Elements Of Oracle SQL Data Types User Defined Types
- Basic Elements Of Oracle SQL Data Types Xml Types
- Basic Elements Of Oracle SQL Literals
- Built In Packages
- ETL BI Repointing Power BI Oracle Repointing
- Functions Custom UDFS
- Functions Readme
- PL SQL To Javascript Helpers
- PL SQL To Javascript Readme
- PL SQL To Snowflake Scripting Collections And Records
- PL SQL To Snowflake Scripting Create Function
- PL SQL To Snowflake Scripting Create Procedure
- PL SQL To Snowflake Scripting Cursor
- PL SQL To Snowflake Scripting DML Statements
- PL SQL To Snowflake Scripting Helpers
- PL SQL To Snowflake Scripting Packages
- PL SQL To Snowflake Scripting Readme
- Pseudocolumns
- Overview (README)
- SQL Plus
- SQL Queries And Subqueries Joins
- SQL Queries And Subqueries Selects
- SQL Translation Reference Create Materialized View
- SQL Translation Reference Create Table
- SQL Translation Reference Create View
- SQL Translation Reference Create Type
- SQL Translation Reference Readme
- Subqueries
1---2name: dbt-migration-oracle3description: Convert Oracle DDL to dbt models compatible with Snowflake. This skill should be used when converting views, tables, or stored procedures from Oracle to dbt code, generating schema.yml files with tests and documentation, or migrating Oracle PL/SQL to follow dbt best practices.4---5
6# Oracle to dbt Model Conversion
7
8## Purpose
9
10Transform Oracle DDL (views, tables, stored procedures, packages) into production-quality dbt models
11compatible with Snowflake, maintaining the same business logic and data transformation steps while
12following dbt best practices.
13
14## When to Use This Skill
15
16Activate this skill when users ask about:
17
18- Converting Oracle views or tables to dbt models
19- Migrating Oracle stored procedures or packages to dbt
20- Translating Oracle PL/SQL syntax to Snowflake
21- Generating schema.yml files with tests and documentation
22- Handling Oracle-specific syntax conversions (ROWNUM/ROWID, CONNECT BY, DBMS\_\* packages,
23 sequences)
24
25---
26
27## Task Description
28
29You are a database engineer working for a hospital system. You need to convert Oracle DDL to
30equivalent dbt code compatible with Snowflake, maintaining the same business logic and data
31transformation steps while following dbt best practices.
32
33## Input Requirements
34
35I will provide you the Oracle DDL to convert.
36
37## Audience
38
39The code will be executed by data engineers who are learning Snowflake and dbt.
40
41## Output Requirements
42
43Generate the following:
44
451. One or more dbt models with complete SQL for every column
462. A corresponding schema.yml file with appropriate tests and documentation
473. A config block with materialization strategy
484. Explanation of key changes and architectural decisions
495. Inline comments highlighting any syntax that was converted
50
51## Conversion Guidelines
52
53### General Principles
54
55- Replace procedural logic with declarative SQL where possible
56- Break down complex procedures into multiple modular dbt models
57- Implement appropriate incremental processing strategies
58- Maintain data quality checks through dbt tests
59- Use Snowflake SQL functions rather than macros whenever possible
60
61### Sample Response Format
62
63```sql
64-- dbt model: models/[domain]/[target_schema_name]/model_name.sql
65{{ config(materialized='view') }}
66
67/* Original Object: [owner].[object_name]
68 Source Platform: Oracle
69 Purpose: [brief description]
70 Conversion Notes: [key changes]
71 Description: [SQL logic description] */
72
73WITH source_data AS (
74 SELECT
75 customer_id::INTEGER AS customer_id,
76 customer_name::VARCHAR(100) AS customer_name,
77 account_balance::NUMBER(18,2) AS account_balance,
78 -- Oracle DATE includes time, converted to TIMESTAMP_NTZ
79 created_date::TIMESTAMP_NTZ AS created_date
80 FROM {{ ref('upstream_model') }}
81),
82
83transformed_data AS (
84 SELECT
85 customer_id,
86 UPPER(customer_name)::VARCHAR(100) AS customer_name_upper,
87 account_balance,
88 created_date,
89 CURRENT_TIMESTAMP()::TIMESTAMP_NTZ AS loaded_at
90 FROM source_data
91)
92
93SELECT
94 customer_id,
95 customer_name_upper,
96 account_balance,
97 created_date,
98 loaded_at
99FROM transformed_data
100```
101
102```yaml
103## models/[domain]/[target_schema_name]/_models.yml
104version: 2
105
106models:
107 - name: model_name
108 description: "Table description; converted from Oracle [Original object name]"
109 columns:
110 - name: customer_id
111 description: "Primary key - unique customer identifier"
112 tests:
113 - unique
114 - not_null
115 - name: customer_name_upper
116 description: "Customer name in uppercase"
117 - name: account_balance
118 description: "Current account balance; Foreign key to OTHER_TABLE"
119 tests:
120 - relationships:
121 to: ref('OTHER_TABLE')
122 field: OTHER_TABLE_KEY
123 - name: created_date
124 description: "Date the customer record was created"
125 - name: loaded_at
126 description: "Timestamp when the record was loaded by dbt"
127```
128
129```yaml
130## dbt_project.yml (excerpt)
131models:
132 my_project:
133 +materialized: view
134 domain_name:
135 +schema: target_schema_name
136```
137
138### Specific Translation Rules
139
140#### dbt Specific Requirements
141
142- If the source is a view, use a view materialization in dbt
143- Include appropriate dbt model configuration (materialization type)
144- Add documentation blocks for a schema.yml
145- Add descriptions for tables and columns
146- Include relevant tests
147- Define primary keys and relationships
148- Assume that upstream objects are models
149- Comprehensively provide all the columns in the output
150- Break complex procedures into multiple models if needed
151- Implement appropriate incremental strategies for large tables
152- Use Snowflake SQL functions rather than macros whenever possible
153- **Always cast columns with explicit precision/scale** using `::TYPE` syntax (e.g.,
154 `column_name::VARCHAR(100)`, `amount::NUMBER(18,2)`) to ensure output matches expected data types
155- **Always provide explicit column aliases** for clarity and documentation
156
157#### Performance Optimization
158
159- Suggest clustering keys if needed
160- Recommend materialization strategy (view vs table)
161- Identify potential performance improvements
162
163#### Oracle to Snowflake Syntax Conversion
164
165- Convert ROWNUM to ROW_NUMBER() window function
166- Replace CONNECT BY with recursive CTEs
167- Convert NVL/NVL2 to COALESCE/IFF
168- Translate (+) outer join syntax to ANSI joins
169- Replace DECODE with CASE expressions
170- Convert sequences to Snowflake sequences or IDENTITY
171- Handle DATE type (which includes time in Oracle)
172- Replace DBMS\_\* packages with Snowflake alternatives
173- Convert PL/SQL procedures to Snowflake Scripting
174- Add inline SQL comments highlighting any syntax that was converted
175
176#### Key Data Type Mappings
177
178| Oracle | Snowflake | Notes |
179| -------------------------------- | ------------- | -------------------------- |
180| NUMBER | NUMBER | |
181| INTEGER/INT | INTEGER | Alias for NUMBER(38,0) |
182| FLOAT/BINARY_FLOAT/BINARY_DOUBLE | FLOAT | |
183| CHAR/VARCHAR2/NCHAR/NVARCHAR2 | CHAR/VARCHAR | VARCHAR2 → VARCHAR |
184| CLOB/NCLOB | VARCHAR | Max 16MB |
185| BLOB/RAW/LONG RAW | BINARY | Max 8MB |
186| DATE | TIMESTAMP_NTZ | Oracle DATE includes time! |
187| TIMESTAMP | TIMESTAMP_NTZ | |
188| TIMESTAMP WITH TIME ZONE | TIMESTAMP_TZ | |
189| TIMESTAMP WITH LOCAL TIME ZONE | TIMESTAMP_LTZ | |
190| INTERVAL types | VARCHAR | |
191| ROWID/UROWID | VARCHAR | |
192| JSON | VARIANT | |
193| XMLType | VARIANT | |
194
195#### Key Syntax Conversions
196
197```sql
198-- ROWNUM → ROW_NUMBER()
199WHERE ROWNUM <= 10 → QUALIFY ROW_NUMBER() OVER (ORDER BY 1) <= 10
200
201-- CONNECT BY → Recursive CTE
202SELECT ... START WITH ... CONNECT BY PRIOR → WITH RECURSIVE cte AS (...)
203
204-- NVL/NVL2 → COALESCE/IFF
205NVL(col, 0) → COALESCE(col, 0)
206NVL2(col, 'yes', 'no') → IFF(col IS NOT NULL, 'yes', 'no')
207
208-- DECODE → CASE
209DECODE(col, 1, 'A', 2, 'B', 'C') → CASE col WHEN 1 THEN 'A' WHEN 2 THEN 'B' ELSE 'C' END
210
211-- (+) outer join → ANSI JOIN
212FROM a, b WHERE a.id = b.id(+) → FROM a LEFT JOIN b ON a.id = b.id
213
214-- SYSDATE/SYSTIMESTAMP → CURRENT_DATE/CURRENT_TIMESTAMP
215SYSDATE → CURRENT_DATE()
216
217-- DUAL table → Optional in Snowflake
218SELECT 1 FROM DUAL → SELECT 1
219
220-- TO_DATE format differences
221TO_DATE('2024-01-15', 'YYYY-MM-DD') → TO_DATE('2024-01-15', 'YYYY-MM-DD')
222```
223
224#### Common Function Mappings
225
226| Oracle | Snowflake | Notes |
227| ------------------------ | ----------------------------------------- | ----------------- |
228| `NVL(a, b)` | `NVL(a, b)` or `COALESCE(a, b)` | Same |
229| `NVL2(a, b, c)` | `IFF(a IS NOT NULL, b, c)` | |
230| `DECODE(col, ...)` | `CASE col WHEN ... END` | |
231| `ROWNUM` | `ROW_NUMBER() OVER (...)` | Use with QUALIFY |
232| `SYSDATE` | `CURRENT_DATE()` or `CURRENT_TIMESTAMP()` | |
233| `SYSTIMESTAMP` | `CURRENT_TIMESTAMP()` | |
234| `TO_CHAR(d, fmt)` | `TO_CHAR(d, fmt)` | Format codes same |
235| `TO_DATE(s, fmt)` | `TO_DATE(s, fmt)` | Format codes same |
236| `TO_NUMBER(s)` | `TO_NUMBER(s)` | Same |
237| `TRUNC(d)` | `DATE_TRUNC('day', d)` | For dates |
238| `TRUNC(n, d)` | `TRUNC(n, d)` | For numbers, same |
239| `ADD_MONTHS(d, n)` | `DATEADD('month', n, d)` | |
240| `MONTHS_BETWEEN(d1, d2)` | `DATEDIFF('month', d2, d1)` | Arg order differs |
241| `SUBSTR(s, pos, len)` | `SUBSTR(s, pos, len)` | Same |
242| `INSTR(s, search)` | `POSITION(search IN s)` | |
243| `REGEXP_LIKE(s, p)` | `REGEXP_LIKE(s, p)` | Same |
244| `LISTAGG(col, delim)` | `LISTAGG(col, delim)` | Same |
245| `DBMS_OUTPUT.PUT_LINE` | Remove or use SYSTEM$LOG | |
246
247#### Dependencies
248
249- List any upstream dependencies
250- Suggest model organization in dbt project
251
252---
253
254## Validation Checklist
255
256- [] Every DDL statement has been accounted for in the dbt models
257- [] SQL in models is compatible with Snowflake
258- [] Oracle-specific syntax converted (ROWNUM, CONNECT BY, NVL, sequences, DATE type handling)
259- [] All business logic preserved
260- [] All columns included in output
261- [] Data types correctly mapped
262- [] Functions translated to Snowflake equivalents
263- [] Materialization strategy selected
264- [] Tests added
265- [] SQL logic description complete
266- [] Table descriptions added
267- [] Column descriptions added
268- [] Dependencies correctly mapped
269- [] Incremental logic (if applicable) verified
270- [] Inline comments added for converted syntax
271
272---
273
274## Related Skills
275
276- $dbt-migration - For the complete migration workflow (discovery, planning, placeholder models,
277 testing, deployment)
278- $dbt-modeling - For CTE patterns and SQL structure guidance
279- $dbt-testing - For implementing comprehensive dbt tests
280- $dbt-architecture - For project organization and folder structure
281- $dbt-materializations - For choosing materialization strategies (view, table, incremental,
282 snapshots)
283- $dbt-performance - For clustering keys, warehouse sizing, and query optimization
284- $dbt-commands - For running dbt commands and model selection syntax
285- $dbt-core - For dbt installation, configuration, and package management
286- $snowflake-cli - For executing SQL and managing Snowflake objects
287
288---
289
290## Supported Source Database
291
292| Database | Key Considerations |
293| ---------- | ------------------------------------------------------------------------------------------------------------------------ |
294| **Oracle** | PL/SQL, DBMS\_\* packages, ROWNUM/ROWID, CONNECT BY, sequences, collections/records, wrapped objects, DATE includes time |
295
296## Translation References
297
298Detailed syntax translation guides are available in the `translation-references/` folder.
299
300> **Copyright Notice:** The translation reference documentation in this repository is derived from
301> [Snowflake SnowConvert Documentation](https://docs.snowflake.com/en/migrations/snowconvert-docs)
302> and is © Copyright Snowflake Inc. All rights reserved. Used for reference purposes only.
303
304### Reference Index
305
306- [Basic Elements Of Oracle SQL Data Types Any Types](translation-references/oracle-basic-elements-of-oracle-sql-data-types-any-types.md)
307- [Basic Elements Of Oracle SQL Data Types Oracle Built In Data Types](translation-references/oracle-basic-elements-of-oracle-sql-data-types-oracle-built-in-data-types.md)
308- [Basic Elements Of Oracle SQL Data Types Readme](translation-references/oracle-basic-elements-of-oracle-sql-data-types-readme.md)
309- [Basic Elements Of Oracle SQL Data Types Rowid Types](translation-references/oracle-basic-elements-of-oracle-sql-data-types-rowid-types.md)
310- [Basic Elements Of Oracle SQL Data Types Spatial Types](translation-references/oracle-basic-elements-of-oracle-sql-data-types-spatial-types.md)
311- [Basic Elements Of Oracle SQL Data Types User Defined Types](translation-references/oracle-basic-elements-of-oracle-sql-data-types-user-defined-types.md)
312- [Basic Elements Of Oracle SQL Data Types Xml Types](translation-references/oracle-basic-elements-of-oracle-sql-data-types-xml-types.md)
313- [Basic Elements Of Oracle SQL Literals](translation-references/oracle-basic-elements-of-oracle-sql-literals.md)
314- [Built In Packages](translation-references/oracle-built-in-packages.md)
315- [ETL BI Repointing Power BI Oracle Repointing](translation-references/oracle-etl-bi-repointing-power-bi-oracle-repointing.md)
316- [Functions Custom UDFS](translation-references/oracle-functions-custom_udfs.md)
317- [Functions Readme](translation-references/oracle-functions-readme.md)
318- [PL SQL To Javascript Helpers](translation-references/oracle-pl-sql-to-javascript-helpers.md)
319- [PL SQL To Javascript Readme](translation-references/oracle-pl-sql-to-javascript-readme.md)
320- [PL SQL To Snowflake Scripting Collections And Records](translation-references/oracle-pl-sql-to-snowflake-scripting-collections-and-records.md)
321- [PL SQL To Snowflake Scripting Create Function](translation-references/oracle-pl-sql-to-snowflake-scripting-create-function.md)
322- [PL SQL To Snowflake Scripting Create Procedure](translation-references/oracle-pl-sql-to-snowflake-scripting-create-procedure.md)
323- [PL SQL To Snowflake Scripting Cursor](translation-references/oracle-pl-sql-to-snowflake-scripting-cursor.md)
324- [PL SQL To Snowflake Scripting DML Statements](translation-references/oracle-pl-sql-to-snowflake-scripting-dml-statements.md)
325- [PL SQL To Snowflake Scripting Helpers](translation-references/oracle-pl-sql-to-snowflake-scripting-helpers.md)
326- [PL SQL To Snowflake Scripting Packages](translation-references/oracle-pl-sql-to-snowflake-scripting-packages.md)
327- [PL SQL To Snowflake Scripting Readme](translation-references/oracle-pl-sql-to-snowflake-scripting-readme.md)
328- [Pseudocolumns](translation-references/oracle-pseudocolumns.md)
329- [Overview (README)](translation-references/oracle-readme.md)
330- [SQL Plus](translation-references/oracle-sql-plus.md)
331- [SQL Queries And Subqueries Joins](translation-references/oracle-sql-queries-and-subqueries-joins.md)
332- [SQL Queries And Subqueries Selects](translation-references/oracle-sql-queries-and-subqueries-selects.md)
333- [SQL Translation Reference Create Materialized View](translation-references/oracle-sql-translation-reference-create-materialized-view.md)
334- [SQL Translation Reference Create Table](translation-references/oracle-sql-translation-reference-create-table.md)
335- [SQL Translation Reference Create View](translation-references/oracle-sql-translation-reference-create-view.md)
336- [SQL Translation Reference Create Type](translation-references/oracle-sql-translation-reference-create_type.md)
337- [SQL Translation Reference Readme](translation-references/oracle-sql-translation-reference-readme.md)
338- [Subqueries](translation-references/oracle-subqueries.md)