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
);
Copy
出力コード:
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
)
;
Copy

推奨事項

  • コードを見直して、 CREATE TABLE 句の中にセキュリティラベルが1つだけあることを確認してください

  • さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください

SSC-EWI-DB0003

PERIOD DEFINITION IS NOT SUPPORTED IN SNOWFLAKE.

重大性

説明

DB2 一時テーブルは、Snowflakeでは機能的に同等なものはありません。アプリケーションピリオドまたはシステムピリオドの一時テーブル宣言が CREATE TABLE 列で見つかった場合、その列は結果のスクリプトからコメントアウトされます。一時テーブルはSnowflakeソリューションの一部ではないため、 SELECT ステートメントの動作はSnowflakeとは異なります。そのため、Selectステートメントが部分的に移行されると結果が異なります。詳細については、以下の例を参照してください。

Selectクエリ

 SELECT 
  ID,
  Start,
  END
FROM 
  timetable 
FOR system_time as of '2022-05-09-16.20.17.0';
Copy
結果

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';
Copy
結果

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)
Copy
Selectクエリ
SELECT
   *
FROM
   Table1
FOR SYSTEM_TIME AS of Value
Copy
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)
)
Copy
Selectクエリ
SELECT
   *
FROM
Table1
!!!RESOLVE EWI!!! /*** SSC-EWI-DB0003 - PERIOD SPECIFICATION IS NOT SUPPORTED IN SNOWFLAKE. ***/!!!
FOR SYSTEM_TIME AS of Value
Copy

推奨事項

  • 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);
Copy
出力コード:
Select * from
!!!RESOLVE EWI!!! /*** SSC-EWI-DB0004 - OUTER TABLE REFERENCE IS NOT SUPPORTED IN SNOWFLAKE. ***/!!!
OUTER(ATable) AS AliasName;

Select * from
ATable;
Copy

推奨事項

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;
Copy
出力コード:
 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;
Copy

推奨事項

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)
Copy
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;
Copy
Snowflake出力コード:
ステートメントを選択
SELECT
   *
FROM
   !!!RESOLVE EWI!!! /*** SSC-EWI-DB0006 - INTERMEDIATE RESULT TABLE IS NOT SUPPORTED. ***/!!!
   OLD Table(UPDATE T1 SET NAME = 'Tony' where ID = 4)
Copy
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;
Copy

推奨事項

SSC-EWI-DB0007

QUERY AS INSERT TARGET NAME IS NOT SUPPORTED.

重大性

説明

DB2 とは異なり、Snowflakeでは SELECT クエリ結果を INSERT ステートメントのターゲットとして使用することはできず、代わりにデータをテーブルまたはマテリアライズドビューに直接挿入する必要があります。

コード例

DB2
クエリ
 INSERT INTO
   (SELECT * FROM SOMEOTHERTABLE)
VALUES
   (DEFAULT);
Copy
Snowflake
クエリ
 INSERT INTO
!!!RESOLVE EWI!!! /*** SSC-EWI-DB0007 - QUERY AS INSERT TARGET NAME IS NOT SUPPORTED ***/!!!
   (SELECT * FROM SOMEOTHERTABLE)
VALUES
   (DEFAULT);
Copy

推奨事項

SSC-EWI-DB0008

DELETE FROM SELECT STATEMENT IS NOT SUPPORTED.

重大性

説明

Snowflakeは、DeleteステートメントのFrom句でのselectクエリの使用をサポートしていません。Deleteステートメントが部分的に移行されると、From句が空になるため、不完全なステートメントになります。

コード例

DB2
Selectクエリ
 DELETE FROM (
SELECT * FROM table1
)
Copy
Snowflake
Selectクエリ
DELETE FROM
!!!RESOLVE EWI!!! /*** SSC-EWI-DB0008 - DELETE FROM SELECT STATEMENT IS NOT SUPPORTED. ***/!!!
 (
SELECT * FROM table1
)
Copy

推奨事項

SSC-EWI-DB0009

POSITIONED STATEMENT IS NOT SUPPORTED.

重大性

説明

Snowflakeは、DeleteステートメントおよびUpdateステートメントの一部としてのカーソルの使用をサポートしていません。ステートメントが部分的に移行された場合、カーソルが一部を形成しているwhere句が削除され、テーブル全体を削除または更新することが危険になります。

コード例

DB2
Deleteステートメント
 DELETE FROM table1 
WHERE CURRENT OF cursor1
Copy
Updateステートメント
 UPDATE table1
     SET col1 = 1
     WHERE CURRENT OF cursor1
Copy
Snowflake
Deleteステートメント
DELETE FROM
table1
WHERE
!!!RESOLVE EWI!!! /*** SSC-EWI-DB0009 - POSITIONED CURRENT OF IS NOT SUPPORTED. ***/!!! CURRENT OF cursor1
Copy
Updateステートメント
UPDATE TABLE1
SET Column1 = 1
WHERE
!!!RESOLVE EWI!!! /*** SSC-EWI-DB0009 - POSITIONED CURRENT OF IS NOT SUPPORTED. ***/!!!
 CURRENT OF cursor1;
Copy

推奨事項

  • より詳しいサポートについては、 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;
Copy
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
Copy

推奨事項

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';
Copy
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';
Copy

推奨事項

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);
Copy
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);
Copy

推奨事項

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
Copy
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
Copy

推奨事項

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)
Copy
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)
Copy

推奨事項