SnowConvert AI - Oracle - 의사 열

ROWID

ROWID 의사 열에 대한 변환 사양

설명

데이터베이스의 각 행에 대해 ROWID 의사 열은 행의 주소를 반환합니다. (Oracle SQL Language Reference Rowid 의사 열)

Snowflake에는 ROWID 에 해당하는 항목이 없습니다. 런타임 오류를 방지하기 위해 의사 열은 _NULL_로 변환됩니다.

ROWID
Copy

샘플 소스 패턴

Oracle

CREATE TABLE sample_table
(
    sample_column varchar(10)
);

INSERT INTO sample_table(sample_column) VALUES ('text 1');
INSERT INTO sample_table(sample_column) VALUES ('text 2');

SELECT ROWID FROM sample_table;
SELECT MAX(ROWID) FROM sample_table;
Copy
결과 쿼리 1
|ROWID             |
|------------------|
|AAASfCAABAAAIcpAAA|
|AAASfCAABAAAIcpAAB|
Copy
결과 쿼리 2
|MAX(ROWID)        |
|------------------|
|AAASfCAABAAAIcpAAB|
Copy
Snowflake
CREATE OR REPLACE TABLE sample_table
    (
        sample_column varchar(10)
    )
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},"attributes":{"component":"oracle"}}'
;

INSERT INTO sample_table(sample_column) VALUES ('text 1');

INSERT INTO sample_table(sample_column) VALUES ('text 2');

SELECT
--** SSC-FDM-OR0030 - ROWID PSEUDOCOLUMN IS NOT SUPPORTED IN SNOWFLAKE, IT WAS CONVERTED TO NULL TO AVOID RUNTIME ERRORS **
'' AS ROWID
FROM
sample_table;

SELECT MAX(
--** SSC-FDM-OR0030 - ROWID PSEUDOCOLUMN IS NOT SUPPORTED IN SNOWFLAKE, IT WAS CONVERTED TO NULL TO AVOID RUNTIME ERRORS **
'' AS ROWID) FROM
sample_table;
Copy
결과 쿼리 1

NULL

Known Issues

문제가 발견되지 않았습니다.

ROWNUM

ROWNUM 의사 열에 대한 변환 사양

설명

쿼리에서 반환된 각 행에 대해 ROWNUM 의사 열은 Oracle이 테이블 또는 조인된 행 세트에서 행을 선택하는 순서를 나타내는 숫자를 반환합니다. (Oracle SQL Language Reference Rownum 의사 열)

Snowflake에는 ROWNUM 에 해당하는 항목이 없습니다. 변환을 위한 접근법은 기능을 에뮬레이션하기 위해 Snowflake seq8 함수를 활용하고 있습니다.

ROWNUM
Copy

샘플 소스 패턴

Oracle

-- Table with sample data
CREATE TABLE TABLE1(COL1 VARCHAR(20), COL2 NUMBER);
INSERT INTO TABLE1 (COL1, COL2) VALUES('ROWNUM: ', null);
INSERT INTO TABLE1 (COL1, COL2) VALUES('ROWNUM: ', null);

-- Query 1: ROWNUM in a select

@@ -159,10 +171,10 @@ SELECT ROWNUM FROM TABLE1;
-- Query 2: ROWNUM in DML
UPDATE TABLE1 SET COL2 = ROWNUM;
SELECT * FROM TABLE1;
Copy
결과 쿼리 1
|ROWNUM|
|------|
|1     |
|2     |
Copy
결과 쿼리 2
|COL1    |COL2|
|--------|----|
|ROWNUM: |1   |
|ROWNUM: |2   |
Copy
Snowflake
-- Table with sample data
CREATE OR REPLACE TABLE TABLE1 (COL1 VARCHAR(20),
COL2 NUMBER(38, 18) /*** SSC-FDM-0006 - NUMBER TYPE COLUMN MAY NOT BEHAVE SIMILARLY IN SNOWFLAKE. ***/
)
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},{"attributes":{"component":"oracle"}}}'
;

INSERT INTO TABLE1(COL1, COL2) VALUES('ROWNUM: ', null);

INSERT INTO TABLE1(COL1, COL2) VALUES('ROWNUM: ', null);

-- Query 1: ROWNUM in a select
SELECT
seq8() + 1
FROM
TABLE1;

-- Query 2: ROWNUM in DML
UPDATE TABLE1
SET COL2 = seq8() + 1;

SELECT * FROM
TABLE1;
Copy
결과 쿼리 1
|SEQ8() + 1|
|----------|
|1         |
|2         |
Copy
결과 쿼리 2
|COL1    |COL2|
|--------|----|
|ROWNUM: |1   |
|ROWNUM: |2   |
Copy

Known Issues

문제가 발견되지 않았습니다.

관련 EWIs

  1. SSC-FDM-0006:: 숫자 유형 열은 Snowflake에서 유사하게 작동하지 않을 수 있습니다