SnowConvert AI - Sybase IQ の問題

注釈

変換範囲

SnowConvert AI for SybaseIQ は現在、TABLES とVIEWS の評価と翻訳をサポートしています。SnowConvert AI は他のタイプのステートメントも認識できますが、完全にはサポートしていません。

このページでは、SnowConvert AI がSybase IQ の文法要素をSnowflakeの同等要素に変換する方法について、包括的なリファレンスを提供します。この翻訳リファレンスでは、コード例、機能的同等性の結果、主な相違点、推奨事項、既知の問題、および各変換の説明をご覧いただけます。

SSC-EWI-SY0001

Snowflakeでサポートされていないデフォルト値。

重大性

説明

Snowflakeは、以下のデフォルト値の使用をサポートしていません。

  • CURRENT REMOVE USER

  • LAST に USER

  • CURRENT に PUBLISHER

コードの例

入力コード:
Sybase
 create table t1
(
  col1 varchar default current remote user,
  col2 varchar default last user,
  col3 varchar default current publisher
);
Copy
生成されたコード:
Snowflake
 CREATE OR REPLACE TABLE t1 (
  col1 VARCHAR default
                       !!!RESOLVE EWI!!! /*** SSC-EWI-SY0001 - UNSUPPORTED DEFAULT VALUE CURRENT REMOTE USER IN SNOWFLAKE ***/!!!
                       current remote user,
  col2 VARCHAR default
                       !!!RESOLVE EWI!!! /*** SSC-EWI-SY0001 - UNSUPPORTED DEFAULT VALUE LAST USER IN SNOWFLAKE ***/!!!
                       last user,
  col3 VARCHAR default
                       !!!RESOLVE EWI!!! /*** SSC-EWI-SY0001 - UNSUPPORTED DEFAULT VALUE CURRENT PUBLISHER IN SNOWFLAKE ***/!!!
                       current publisher
)
;
Copy

ベストプラクティス

SSC-EWI-SY0002

Snowflakeでサポートされていないリモートテーブル構文。

重大性

説明

Sybase IQ リモートテーブル構文はSnowflakeではサポートされていません。

コードの例

入力コード:
Sybase
 CREATE TABLE remote_data(
    remote_id INT
) 
AT 'remote_server;remote_db;owner;remote_object';
Copy
生成されたコード:
Snowflake
 CREATE OR REPLACE TABLE remote_data (
    remote_id INT
)
    !!!RESOLVE EWI!!! /*** SSC-EWI-SY0002 - UNSUPPORTED REMOTE TABLE SYNTAX ***/!!!
AT 'remote_server;remote_db;owner;remote_object'
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": {  "major": 0,  "minor": 0,  "patch": "0" }, "attributes": {  "component": "sybase",  "convertedOn": "07/02/2025",  "domain": "no-domain-provided" }}'
;
Copy

ベストプラクティス

SSC-EWI-SY0003

Snowflakeでサポート対象外のIQ UNIQUE制約。

重大性

説明

IQ UNIQUE 制約は、列内の明確な値の数の推定値を指定します。Snowflakeにはこの機能をエミュレートする制約はありません。

コードの例

入力コード:
Sybase
 CREATE TABLE T1 (
  DATA VARCHAR IQ UNIQUE(10)
)
;
Copy
生成されたコード:
Snowflake
 CREATE OR REPLACE TABLE T1 (
  DATA VARCHAR 
  !!!RESOLVE EWI!!! /*** SSC-EWI-SY0003 - UNSUPPORTED IQ UNIQUE CONSTRAINT ***/!!!
              IQ UNIQUE(10)
);
Copy

ベストプラクティス

SSC-EWI-SY0004

サポート対象外の構文テーブル関数は、パラメーターとしてクエリを受け取ることができません。

重大性

説明

Snowflakeは、テーブル値関数呼び出しのパラメーターとして RESULTSET を渡すことをサポートしていません。

コードの例

入力コード:
Sybase
 SELECT 
*
FROM 
MyProcedure(TABLE (SELECT * FROM TABLE1));
Copy
生成されたコード:
Snowflake
 SELECT
*
FROM
TABLE(MyProcedure(
!!!RESOLVE EWI!!! /*** SSC-EWI-SY0004 - UNSUPPORTED SYNTAX TABLE FUNCTION CAN'T RECEIVE A QUERY AS PARAMETER ***/!!!
TABLE(SELECT * FROM TABLE1)));
Copy

ベストプラクティス

SSC-EWI-SY0005

サポート対象外の構文テーブル関数は、OVER句を含む式では使用できません。

重大性

説明

Snowflakeは、テーブル値関数呼び出しでのウィンドウ仕様をサポートしていません。

コードの例

入力コード:
Sybase
 SELECT * FROM 
MyProcedure(
TABLE (SELECT * FROM TABLE1) 
OVER (PARTITION BY Col1 ORDER BY Col2 DESC));
Copy
生成されたコード:
Snowflake
         SELECT
          *
        FROM
          TABLE(MyProcedure(
          !!!RESOLVE EWI!!! /*** SSC-EWI-SY0004 - UNSUPPORTED SYNTAX TABLE FUNCTION CAN'T RECEIVE A QUERY AS PARAMETER ***/!!!
          TABLE(
            SELECT
              *
            FROM
              TABLE1
          )
          !!!RESOLVE EWI!!! /*** SSC-EWI-SY0005 - UNSUPPORTED SYNTAX TABLE FUNCTION CAN'T BE USED WITH OVER EXPRESSION ***/!!!
          OVER (
          PARTITION BY
            Col1
          ORDER BY Col2 DESC)));
Copy

ベストプラクティス

SSC-EWI-SY0006

OPENSTRINGはSnowflakeではサポートされていません。

重大性

説明

Snowflakeは OPENSTRING の機能をサポートしていません。

コードの例

入力コード:
Sybase
 SELECT * FROM 
OPENSTRING (FILE '/path/to/file.txt') 
WITH (Col1 INT, Col2 VARCHAR(20)) AS OS;
Copy
生成されたコード:
Snowflake
 SELECT
*
FROM
!!!RESOLVE EWI!!! /*** SSC-EWI-SY0006 - OPEN STRING IS NOT SUPPORTED IN SNOWFLAKE ***/!!!
OPENSTRING (FILE '/path/to/file.txt')
WITH (Col1 INT, Col2 VARCHAR(20)) AS OS;
Copy

ベストプラクティス

SSC-EWI-SY0007

DML 派生テーブルはSnowflakeではサポートされていません。

重大性

説明

Sybaseでは、実行中にDML派生テーブルで指定された DML ステートメントが最初に実行され、その DML の影響を受けた行が REFERENCING 句で記述された列を持つ仮テーブルに実体化されます。仮テーブルはDML派生テーブルの結果セットを表します。Snowflakeはこの動作をサポートしていません。

コードの例

入力コード:
Sybase
 SELECT * FROM (INSERT INTO TABLE1 (Col1, Col2) VALUES (1, 'test')) REFERENCING (FINAL AS F);
SELECT * FROM (DELETE FROM TABLE1) REFERENCING (FINAL AS F);
SELECT * FROM (UPDATE TABLE1 SET A = 1) REFERENCING (FINAL AS F);
Copy
生成されたコード:
Snowflake
 SELECT
  *
FROM
  !!!RESOLVE EWI!!! /*** SSC-EWI-SY0007 - DML DERIVED TABLE NOT SUPPORTED IN SNOWFLAKE ***/!!!
  (
    INSERT INTO TABLE1 (Col1, Col2) VALUES (1, 'test')
  )
  REFERENCING
  (FINAL AS F);

SELECT
  *
FROM
  !!!RESOLVE EWI!!! /*** SSC-EWI-SY0007 - DML DERIVED TABLE NOT SUPPORTED IN SNOWFLAKE ***/!!!
  (
    DELETE FROM TABLE1
  )
  REFERENCING
  (FINAL AS F);

SELECT
  *
FROM
  !!!RESOLVE EWI!!! /*** SSC-EWI-SY0007 - DML DERIVED TABLE NOT SUPPORTED IN SNOWFLAKE ***/!!!
  (
    UPDATE TABLE1
      SET
        A = 1
  )
  REFERENCING
  (FINAL AS F);
Copy

ベストプラクティス

SSC-EWI-SY0008

CONTAINS句はSnowflakeではサポートされていません。

重大性

説明

Sybaseでは、テーブル名に続けて CONTAINS 句を使用すると、テーブルがフィルタリングされ、制約クエリで指定した全文クエリに一致する行のみが返されます。テーブルのマッチするすべての行が、スコア相関名を使って参照できるスコア列とともに返されます。Snowflakeはこの動作をサポートしていません。

コードの例

入力コード:
Sybase
 SELECT * FROM TABLE1 CONTAINS (TextColumn, 'search term') AS Score;
Copy
生成されたコード:
Snowflake
 SELECT
  *
FROM
  TABLE1
         !!!RESOLVE EWI!!! /*** SSC-EWI-SY0008 - CONTAINS CLAUSE NOT SUPPORTED IN SNOWFLAKE ***/!!!
         CONTAINS(TextColumn,'search term') AS Score;
Copy

ベストプラクティス

SSC-EWI-SY0009

KEY JOINはSnowflakeではサポートされていません。

重大性

説明

Snowflakeは KEY JOIN をサポートしていません。ON CLAUSE が指定されると、KEY キーワードは削除され、INNER JOIN として扱われます。

コードの例

入力コード:
Sybase
 SELECT * FROM TABLE1 KEY JOIN Table2 ON Table1.ID = Table2.ID;
SELECT * FROM TABLE1 KEY JOIN Table2;
Copy
生成されたコード:
Snowflake
   SELECT
    *
  FROM
    TABLE1
    JOIN
      Table2
      ON Table1.ID = Table2.ID;
  
  SELECT
    *
  FROM
    TABLE1
    !!!RESOLVE EWI!!! /*** SSC-EWI-SY0009 - KEY JOIN NOT SUPPORTED IN SNOWFLAKE ***/!!!
    KEY JOIN
      Table2;
Copy

ベストプラクティス