UROWID Data Type
Description
Oracle uses universal rowids (urowids) to store the addresses of index-organized and foreign tables. Index-organized tables have logical urowids and foreign tables have foreign urowids.(Oracle SQL Language Reference UROWID Data Type)
UROWID [(size)]
Sample Source Patterns
UROWID in Create Table
Oracle
CREATE TABLE urowid_table (
urowid_column UROWID,
urowid_sized_column UROWID(40)
);
Snowflake
CREATE OR REPLACE TABLE PUBLIC.urowid_table (
urowid_column VARCHAR(18) /*** MSC-WARNING - MSCEWI1036 - UROWID DATA TYPE CONVERTED TO VARCHAR(18) ***/,
urowid_sized_column VARCHAR(18) /*** MSC-WARNING - MSCEWI1036 - UROWID DATA TYPE CONVERTED TO VARCHAR(18) ***/);
Insert data in the UROWID column
Just like ROWID, it is possible to insert data in UROWID columns if the insert has a valid UROWID, but retrieving from a table is not allowed (see Related EWIs).
Oracle
INSERT INTO urowid_table VALUES ('*BAMAAJMCVUv+','*BAMAAJMCVUv+');
SELECT * FROM urowid_table;
Snowflake
INSERT INTO PUBLIC.urowid_table VALUES ('*BAMAAJMCVUv+','*BAMAAJMCVUv+');
SELECT * FROM PUBLIC.urowid_table;
Known Issues
1. Retrieving UROWID from a table that does not have an explicit column with this data type
The following query displays an error in Snowflake since hr.countries do not contain a ROWID (as mentioned in Oracle's documentation UROWID is accessed with SELECT
... ROWID
statement) column.
Oracle
SELECT
rowid, country_name
FROM
hr.countries
FETCH NEXT 10 ROWS ONLY;
Snowflake
SELECT
rowid, country_name
FROM hr.countries
FETCH NEXT 10 ROWS ONLY;
2. EWI should be displayed by SnowConvert
EWI should be displayed when trying to select UROWID column. There is a work item to add the corresponding EWI.
This issue has been marked as critical and will be fixed in the upcoming releases.
Related EWIs
MSCEWI1036: Data type converted to another data type.
Last updated
Was this helpful?