SnowConvert AI - IBM DB2 問題¶
SSC-EWI-DB0001¶
WITH ROW ACCESS POLICY CLAUSE DOES NOT SUPPORT MULTIPLE DECLARATION
重大性¶
低
説明¶
このメッセージは、 SnowConvert AI が同じ CREATE TABLE 句内で複数のセキュリティラベル列オプションを検出し、セキュリティラベルが行アクセスポリシー句に変換され、Snowflakeが複数の行アクセスポリシー宣言をサポートしていない場合に表示されます。したがって、複数のセキュリティラベルが見つかった場合は、この EWI でコメントアウトされます。
コード例¶
入力コード:¶
CREATE TABLE T1
(
COL1 VARCHAR(10) COLUMN SECURED WITH securityLabel1,
COL2 VARCHAR(10) COLUMN SECURED WITH securityLabel2
);
出力コード:¶
CREATE TABLE T1
(
COL1 VARCHAR(10),
COL2 VARCHAR(10)
)
WITH ROW ACCESS POLICY securityLabel1 ON (
COL1
)
!!!RESOLVE EWI!!! /*** SSC-EWI-DB0001 - WITH ROW ACCESS POLICY CLAUSE DOES NOT SUPPORT MULTIPLE DECLARATION IN SNOWFLAKE ***/!!!
WITH ROW ACCESS POLICY securityLabel2 ON (
COL2
)
;
推奨事項¶
コードを見直して、
CREATE TABLE句の中にセキュリティラベルが1つだけあることを確認してくださいさらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください
SSC-EWI-DB0003¶
PERIOD DEFINITION IS NOT SUPPORTED IN SNOWFLAKE.
重大性¶
中
説明¶
DB2 temporal tables do not have a functional equivalent in Snowflake. When an application-period or system-period temporal table declaration is found in the CREATE TABLE columns, that column is commented out from the resulting script. The behavior of the SELECT statement will differ from Snowflake because temporal tables are not part of the Snowflake solution and this causes the result to be different if the Select statement is migrated partially, see the example below for more information about this.
Selectクエリ¶
SELECT
ID,
Start,
END
FROM
timetable
FOR system_time as of '2022-05-09-16.20.17.0';
結果¶
ID |
START |
END |
|---|---|---|
1001 |
19:45.3 |
22:39.5 |
1002 |
19:45.5 |
22:39.6 |
1003 |
19:45.6 |
22:39.8 |
1004 |
19:45.7 |
00:00.0 |
1005 |
19:45.8 |
00:00.0 |
1006 |
19:46.0 |
00:00.0 |
7 |
16:21.8 |
00:00.0 |
Selectステートメントを部分的に移行すると、以下のようにまったく異なる結果になります。
Selectクエリ¶
SELECT
ID,
Start,
END
FROM
timetable
-- FOR system_time as of '2022-05-09-16.20.17.0';
結果¶
ID |
START |
END |
2001 |
22:39.5 |
00:00.0 |
2002 |
22:39.6 |
00:00.0 |
2003 |
22:39.8 |
00:00.0 |
1004 |
19:45.7 |
00:00.0 |
1005 |
19:45.8 |
00:00.0 |
1006 |
19:46.0 |
00:00.0 |
7 |
16:21.8 |
00:00.0 |
コード例¶
DB2¶
テーブルを作成¶
CREATE TABLE TestTable (
COL1 DATE,
COL2 DATE,
PERIOD SYSTEM_TIME (COL1, COL2),
PERIOD BUSINESS_TIME (COL1, COL2)
Selectクエリ¶
SELECT
*
FROM
Table1
FOR SYSTEM_TIME AS of Value
Snowflake¶
テーブルを作成¶
CREATE TABLE TestTable (
COL1 DATE,
COL2 DATE,
!!!RESOLVE EWI!!! /*** SSC-EWI-DB0003 - PERIOD SPECIFICATION IS NOT SUPPORTED IN SNOWFLAKE. ***/!!!
PERIOD SYSTEM_TIME (COL1, COL2),
!!!RESOLVE EWI!!! /*** SSC-EWI-DB0003 - PERIOD SPECIFICATION IS NOT SUPPORTED IN SNOWFLAKE. ***/!!!
PERIOD BUSINESS_TIME (COL1, COL2)
)
Selectクエリ¶
SELECT
*
FROM
Table1
!!!RESOLVE EWI!!! /*** SSC-EWI-DB0003 - PERIOD SPECIFICATION IS NOT SUPPORTED IN SNOWFLAKE. ***/!!!
FOR SYSTEM_TIME AS of Value
推奨事項¶
Snowflakeでは、テーブルの履歴データを最大90日間保存することができます。これについては、Time Travelの理解と使用 を参照してください。
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください
SSC-EWI-DB0004¶
OUTER TABLE REFERENCE NOT APPLICABLE IN SNOWFLAKE
重大性¶
低
説明¶
このメッセージは、 SELECT ステートメント内の FROM 句で OUTER テーブルリファレンスが見つかった場合に表示されます。この句は、 SELECT ステートメントの中間結果テーブルにサブテーブルを含めるために使用されます。サブテーブルは、 DB2 データベース内の 型付きテーブル に関連しており、 CREATE TABLE ステートメントの OF 句 を使用して作成されますが、これもSnowflakeではサポートされていません。
コード例¶
入力コード:¶
Select * from OUTER(ATable);
Select * from ONLY(ATable);
出力コード:¶
Select * from
!!!RESOLVE EWI!!! /*** SSC-EWI-DB0004 - OUTER TABLE REFERENCE IS NOT SUPPORTED IN SNOWFLAKE. ***/!!!
OUTER(ATable) AS AliasName;
Select * from
ATable;
推奨事項¶
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください
SSC-EWI-DB0005¶
MANIPULATION OF DATA IN VIEWS IS NOT SUPPORTED
重大性¶
中
説明¶
このメッセージは、 CREATE VIEW 内の行のデータ操作に関連するノードまたは句が CREATE VIEW 内に見つかった場合に表示されます。DB2 では、 VIEW から直接行の挿入や更新ができますが、Snowflakeではサポートされていません。このため、この機能に関連するノードや句はコメント化され、 EWI が追加されています。
コード例¶
入力コード:¶
CREATE VIEW TestTableId2 AS Select * from TestTableId1 WITH ROW MOVEMENT;
出力コード:¶
CREATE VIEW TestTableId2
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": { "major": 0, "minor": 0, "patch": "0" }, "attributes": { "component": "db2", "convertedOn": "09/02/2025", "domain": "no-domain-provided" }}'
AS Select * from
TestTableId1
!!!RESOLVE EWI!!! /*** SSC-EWI-DB0005 - MANIPULATION OF DATA IN VIEWS IS NOT SUPPORTED. ***/!!!
WITH ROW MOVEMENT;
推奨事項¶
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください
SSC-EWI-DB0006¶
INTERMEDIATE RESULT TABLE IS NOT SUPPORTED
重大性¶
中
説明¶
このメッセージは、 FROM 句に DATA CHANGE TABLE REFERENCE が見つかった場合に表示されます。DATA CHANGE TABLE REFERENCE は中間テーブルを指定し、 DATA CHANGE TABLE REFERENCE に含まれる UPDATE 、 DELETE 、または INSERT ステートメントによって変更される行で構成されます。
Snowflakeでは、行を変更して同時にテーブルの結果セットを返すことができないため、これはサポートされていません。そのため、Selectはコメント化されています。
コード例¶
DB2 入力コード:¶
ステートメントを選択¶
SELECT
*
FROM
OLD Table(UPDATE T1 SET NAME = 'Tony' where ID = 4)
Updateステートメント¶
UPDATE (SELECT EMPNO, SALARY, COMM,
AVG(SALARY) OVER (PARTITION BY WORKDEPT),
AVG(COMM) OVER (PARTITION BY WORKDEPT)
FROM EMPLOYEE E) AS E(EMPNO, SALARY, COMM, AVGSAL, AVGCOMM)
SET (SALARY, COMM) = (AVGSAL, AVGCOMM)
WHERE EMPNO = '000120';
UPDATE TABLE5
INCLUDE (col1 INT, col2 Varchar(10))
SET Column1 = 1;
Snowflake出力コード:¶
ステートメントを選択¶
SELECT
*
FROM
!!!RESOLVE EWI!!! /*** SSC-EWI-DB0006 - INTERMEDIATE RESULT TABLE IS NOT SUPPORTED. ***/!!!
OLD Table(UPDATE T1 SET NAME = 'Tony' where ID = 4)
Updateステートメント¶
UPDATE
!!!RESOLVE EWI!!! /*** SSC-EWI-DB0006 - INTERMEDIATE RESULT TABLE IS NOT SUPPORTED. ***/!!!
(SELECT EMPNO, SALARY, COMM,
AVG(SALARY) OVER (PARTITION BY WORKDEPT),
AVG(COMM) OVER (PARTITION BY WORKDEPT)
FROM EMPLOYEE E) AS E(EMPNO, SALARY, COMM, AVGSAL, AVGCOMM)
SET
SALARY = AVGSAL,
COMM = AVGCOMM
WHERE EMPNO = '000120';
UPDATE TABLE5
!!!RESOLVE EWI!!! /*** SSC-EWI-DB0006 - INTERMEDIATE RESULT TABLE IS NOT SUPPORTED. ***/!!!
INCLUDE (col1 INT, col2 Varchar(10))
SET Column1 = 1;
推奨事項¶
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください
SSC-EWI-DB0007¶
QUERY AS INSERT TARGET NAME IS NOT SUPPORTED.
重大性¶
中
説明¶
DB2 とは異なり、Snowflakeでは SELECT クエリ結果を INSERT ステートメントのターゲットとして使用することはできず、代わりにデータをテーブルまたはマテリアライズドビューに直接挿入する必要があります。
コード例¶
DB2¶
クエリ¶
INSERT INTO
(SELECT * FROM SOMEOTHERTABLE)
VALUES
(DEFAULT);
Snowflake¶
クエリ¶
INSERT INTO
!!!RESOLVE EWI!!! /*** SSC-EWI-DB0007 - QUERY AS INSERT TARGET NAME IS NOT SUPPORTED ***/!!!
(SELECT * FROM SOMEOTHERTABLE)
VALUES
(DEFAULT);
推奨事項¶
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください
SSC-EWI-DB0008¶
DELETE FROM SELECT STATEMENT IS NOT SUPPORTED.
重大性¶
中
説明¶
Snowflakeは、DeleteステートメントのFrom句でのselectクエリの使用をサポートしていません。Deleteステートメントが部分的に移行されると、From句が空になるため、不完全なステートメントになります。
コード例¶
DB2¶
Selectクエリ¶
DELETE FROM (
SELECT * FROM table1
)
Snowflake¶
Selectクエリ¶
DELETE FROM
!!!RESOLVE EWI!!! /*** SSC-EWI-DB0008 - DELETE FROM SELECT STATEMENT IS NOT SUPPORTED. ***/!!!
(
SELECT * FROM table1
)
推奨事項¶
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください
SSC-EWI-DB0009¶
POSITIONED STATEMENT IS NOT SUPPORTED.
重大性¶
中
説明¶
Snowflakeは、DeleteステートメントおよびUpdateステートメントの一部としてのカーソルの使用をサポートしていません。ステートメントが部分的に移行された場合、カーソルが一部を形成しているwhere句が削除され、テーブル全体を削除または更新することが危険になります。
コード例¶
DB2¶
Deleteステートメント¶
DELETE FROM table1
WHERE CURRENT OF cursor1
Updateステートメント¶
UPDATE table1
SET col1 = 1
WHERE CURRENT OF cursor1
Snowflake¶
Deleteステートメント¶
DELETE FROM
table1
WHERE
!!!RESOLVE EWI!!! /*** SSC-EWI-DB0009 - POSITIONED CURRENT OF IS NOT SUPPORTED. ***/!!! CURRENT OF cursor1
Updateステートメント¶
UPDATE TABLE1
SET Column1 = 1
WHERE
!!!RESOLVE EWI!!! /*** SSC-EWI-DB0009 - POSITIONED CURRENT OF IS NOT SUPPORTED. ***/!!!
CURRENT OF cursor1;
推奨事項¶
より詳しいサポートについては、 support@mobilize.net までメールでお問い合わせいただくか、 フォーラムにメッセージを投稿 してください。Mobilize.Netとサポート契約を結んでいる場合は、担当のセールスエンジニアにご連絡いただくと、サポートのニーズに対応できます。
SSC-EWI-DB0010¶
ATTRIBUTE NAME IS NOT SUPPORTED IN SNOWFLAKE
重大性¶
中
説明¶
このメッセージは、設定する構造化された型の属性を指定するときに表示されます(属性割り当てと呼ばれます)。構造化された型は、スーパータイプから属性を継承できるサブタイプになることができます。#x20;
Snowflakeはこのような構造をサポートしていません。
構造化された型についての詳細は こちら をクリックしてください
コード例¶
DB2¶
UPDATE CIRCLES
SET C..CENTER..X = C..CENTER..Y,
C..CENTER..Y = C..CENTER..X
WHERE ID = 999;
Snowflake¶
UPDATE CIRCLES
SET
!!!RESOLVE EWI!!! /*** SSC-EWI-DB0010 - ATTRIBUTE NAME IS NOT SUPPORTED IN SNOWFLAKE ***/!!! C..CENTER..X =
!!!RESOLVE EWI!!! /*** SSC-EWI-DB0010 - ATTRIBUTE NAME IS NOT SUPPORTED IN SNOWFLAKE ***/!!! C..CENTER..Y,
!!!RESOLVE EWI!!! /*** SSC-EWI-DB0010 - ATTRIBUTE NAME IS NOT SUPPORTED IN SNOWFLAKE ***/!!!
C..CENTER..Y =
!!!RESOLVE EWI!!! /*** SSC-EWI-DB0010 - ATTRIBUTE NAME IS NOT SUPPORTED IN SNOWFLAKE ***/!!! C..CENTER..X
WHERE ID = 999
推奨事項¶
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください
SSC-EWI-DB0011¶
ASSIGNMENT CLAUSE TYPE IS NOT SUPPORTED IN SNOWFLAKE
重大性¶
中
説明¶
このメッセージは、代入句にSnowflakeでサポートされていない式が含まれている場合に表示されます
事例¶
ステートメントの更新¶
代入句が行選択の複数列代入を示す場合、この例はコード例セクションにあります。
コード例¶
DB2¶
UPDATE EMPLOYEE EU
SET (EU.COM, EU.SALARY) = (SELECT ES.SALARY FROM EMPLOYEE ES WHERE ES.WORKDEPT = EU.WORKDEPT)
WHERE EU.EMPNO = '000120';
Snowflake¶
UPDATE EMPLOYEE EU
SET
!!!RESOLVE EWI!!! /*** SSC-EWI-DB0011 - ASSIGNMENT CLAUSE TYPE IS NOT SUPPORTED IN SNOWFLAKE ***/!!!
(EU.COM, EU.SALARY) = (SELECT ES.SALARY FROM
EMPLOYEE ES WHERE ES.WORKDEPT = EU.WORKDEPT)
WHERE EU.EMPNO = '000120';
推奨事項¶
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください
SSC-EWI-DB0012¶
INVALID NAME AS INSERTION TARGET, USE OF VIEW NAME IS NOT SUPPORTED IN SNOWFLAKE
重大性¶
中
説明¶
Snowflakeは、insert target nameステートメントでのビュー名の使用をサポートしていません。
コード例¶
DB2¶
CREATE VIEW VIEW1 AS SELECT * FROM T;
INSERT INTO VIEW1 (COL1, COL2) VALUES (NULL, DEFAULT);
Snowflake¶
CREATE VIEW PUBLIC.VIEW1
AS SELECT * FROM
PUBLIC.T;
!!!RESOLVE EWI!!! /*** SSC-EWI-DB0012 - INVALID NAME AS INSERTION TARGET, USE OF VIEW NAME IS NOT SUPPORTED IN SNOWFLAKE ***/!!!
INSERT INTO VIEW1 (COL1, COL2) VALUES (NULL,DEFAULT);
推奨事項¶
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください
SSC-EWI-DB0013¶
INVALID NAME AS DELETE TARGET, USE OF VIEW NAME IS NOT SUPPORTED IN SNOWFLAKE
重大性¶
中
説明¶
Snowflakeは、delete target nameステートメントでのビュー名の使用をサポートしていません。このため、結果クエリは有効ではありませんでした
コード例¶
DB2¶
CREATE VIEW VIEW1 AS SELECT * FROM T;
DELETE FROM VIEW1
Snowflake¶
CREATE VIEW PUBLIC.VIEW1
AS SELECT * FROM
PUBLIC.T;
DELETE FROM
!!!RESOLVE EWI!!! /*** SSC-EWI-DB0013 - INVALID NAME AS DELETE TARGET, USE OF VIEW NAME IS NOT SUPPORTED IN SNOWFLAKE ***/!!!
VIEW1
推奨事項¶
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください
SSC-EWI-DB0014¶
THE USE OF EXTERNAL TABLE REFERENCES IS NOT SUPPORTED IN SNOWFLAKE
重大性¶
中
説明¶
SnowflakeはSelectステートメントでの外部テーブルの使用をサポートしていません。このため、結果クエリは有効ではありませんでした
コード例¶
DB2¶
SELECT
*
FROM
EXTERNAL SOMENAME AS T1 LIKE TABLE2 USING(COMPRESS NO)
Snowflake¶
SELECT
*
FROM
!!!RESOLVE EWI!!! /*** SSC-EWI-DB0014 - THE USE OF EXTERNAL TABLE REFERENCES IS NOT SUPPORTED IN SNOWFLAKE ***/!!!
EXTERNAL SOMENAME AS T1 LIKE TABLE2 USING(COMPRESS NO)
推奨事項¶
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください