SnowConvert AI - Problemas do IBM DB2¶
SSC-EWI-DB0001¶
WITH ROW ACCESS POLICY CLAUSE DOES NOT SUPPORT MULTIPLE DECLARATION
Gravidade¶
Low
Descrição¶
Esta mensagem é exibida sempre que o SnowConvert AI detecta várias opções de coluna de rótulo de segurança dentro da mesma cláusula CREATE TABLE, o rótulo de segurança é traduzido para uma cláusula de política de acesso a linhas e o Snowflake não é compatível com várias declarações de política de acesso a linhas. Portanto, se mais de um rótulo de segurança for encontrado, eles serão comentados com este EWI.
Exemplo de código¶
Código de entrada:¶
CREATE TABLE T1
(
COL1 VARCHAR(10) COLUMN SECURED WITH securityLabel1,
COL2 VARCHAR(10) COLUMN SECURED WITH securityLabel2
);
Código de saída:¶
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
)
;
Recomendações¶
Revise seu código e certifique-se de que apenas uma etiqueta de segurança esteja dentro da cláusula
CREATE TABLESe precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-DB0003¶
PERIOD DEFINITION IS NOT SUPPORTED IN SNOWFLAKE.
Gravidade¶
Medium
Descrição¶
As tabelas temporais do DB2 não têm um equivalente funcional no Snowflake. Quando uma declaração de tabela temporal do período do aplicativo ou do período do sistema é encontrada nas colunas CREATE TABLE, essa coluna é transformada em comentário no script resultante. O comportamento da instrução SELECT será diferente do Snowflake devido ao fato de que tabelas temporais não fazem parte da solução Snowflake, e isso faz com que o resultado seja diferente se a instrução Select for migrada parcialmente; consulte o exemplo abaixo para mais informações sobre isto.
Consulta Select¶
SELECT
ID,
Start,
END
FROM
timetable
FOR system_time as of '2022-05-09-16.20.17.0';
Resultado¶
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 |
Se a instrução Select for migrada parcialmente, obteremos um resultado muito diferente, como mostrado abaixo.
Consulta Select¶
SELECT
ID,
Start,
END
FROM
timetable
-- FOR system_time as of '2022-05-09-16.20.17.0';
Resultado¶
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 |
Exemplo de código¶
DB2¶
Criar tabela¶
CREATE TABLE TestTable (
COL1 DATE,
COL2 DATE,
PERIOD SYSTEM_TIME (COL1, COL2),
PERIOD BUSINESS_TIME (COL1, COL2)
Consulta Select¶
SELECT
*
FROM
Table1
FOR SYSTEM_TIME AS of Value
Snowflake¶
Create Table¶
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)
)
Consulta Select¶
SELECT
*
FROM
Table1
!!!RESOLVE EWI!!! /*** SSC-EWI-DB0003 - PERIOD SPECIFICATION IS NOT SUPPORTED IN SNOWFLAKE. ***/!!!
FOR SYSTEM_TIME AS of Value
Recomendações¶
O Snowflake permite o armazenamento de dados históricos de tabelas por até 90 dias. Para saber mais, consulte Entendimento e uso do Time Travel.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-DB0004¶
OUTER TABLE REFERENCE NOT APPLICABLE IN SNOWFLAKE
Gravidade¶
Low
Descrição¶
Esta mensagem é exibida quando uma referência da tabela OUTER é encontrada em uma cláusula FROM dentro de uma instrução SELECT. Esta cláusula é usada para incluir de subtabelas na tabela de resultados intermediária da instrução SELECT. As subtabelas estão relacionadas a tabelas tipadas no banco de dados DB2, que são criadas com a cláusula OF da instrução CREATE TABLE, que também não é compatível com o Snowflake.
Exemplo de código¶
Código de entrada:¶
Select * from OUTER(ATable);
Select * from ONLY(ATable);
Código de saída:¶
Select * from
!!!RESOLVE EWI!!! /*** SSC-EWI-DB0004 - OUTER TABLE REFERENCE IS NOT SUPPORTED IN SNOWFLAKE. ***/!!!
OUTER(ATable) AS AliasName;
Select * from
ATable;
Recomendações¶
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-DB0005¶
MANIPULATION OF DATA IN VIEWS IS NOT SUPPORTED
Gravidade¶
Medium
Descrição¶
Esta mensagem é mostrada quando encontrada em um CREATE VIEW, um nó ou cláusula que está relacionado ao tratamento de dados de linhas em um CREATE VIEW. Observe que, no DB2, você pode inserir ou atualizar linhas diretamente de uma VIEW. Enquanto que, no Snowflake, isso não é compatível, fazendo com que nós ou cláusulas relacionadas a esta funcionalidade sejam transformadas em comentário e um EWI seja adicionado.
Exemplo de código¶
Código de entrada:¶
CREATE VIEW TestTableId2 AS Select * from TestTableId1 WITH ROW MOVEMENT;
Código de saída:¶
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;
Recomendações¶
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-DB0006¶
INTERMEDIATE RESULT TABLE IS NOT SUPPORTED
Gravidade¶
Medium
Descrição¶
Esta mensagem é exibida quando um DATA CHANGE TABLE REFERENCE é encontrado em uma cláusula FROM. Um DATA CHANGE TABLE REFERENCE especifica uma tabela intermediária, que consiste nas linhas que são alteradas por uma instrução UPDATE, DELETE ou INSERT incluída no DATA CHANGE TABLE REFERENCE.
No Snowflake, isto não é compatível, pois não pode modificar as linhas e retornar um conjunto de resultados de tabela ao mesmo tempo. Portanto, Select é transformado em comentário.
Exemplo de código¶
Código de entrada DB2:¶
Instrução Select¶
SELECT
*
FROM
OLD Table(UPDATE T1 SET NAME = 'Tony' where ID = 4)
Instrução 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;
Código de saída do Snowflake:¶
Instrução Select¶
SELECT
*
FROM
!!!RESOLVE EWI!!! /*** SSC-EWI-DB0006 - INTERMEDIATE RESULT TABLE IS NOT SUPPORTED. ***/!!!
OLD Table(UPDATE T1 SET NAME = 'Tony' where ID = 4)
Instrução 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;
Recomendações¶
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-DB0007¶
QUERY AS INSERT TARGET NAME IS NOT SUPPORTED.
Gravidade¶
Medium
Descrição¶
Ao contrário do DB2, o Snowflake não permite o uso de resultados de consulta SELECT como o destino de uma instrução INSERT, exigindo, em vez disso, que os dados sejam inseridos diretamente em tabelas ou exibições materializadas.
Exemplo de código¶
DB2¶
Consulta¶
INSERT INTO
(SELECT * FROM SOMEOTHERTABLE)
VALUES
(DEFAULT);
Snowflake¶
Consulta¶
INSERT INTO
!!!RESOLVE EWI!!! /*** SSC-EWI-DB0007 - QUERY AS INSERT TARGET NAME IS NOT SUPPORTED ***/!!!
(SELECT * FROM SOMEOTHERTABLE)
VALUES
(DEFAULT);
Recomendações¶
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-DB0008¶
DELETE FROM SELECT STATEMENT IS NOT SUPPORTED.
Gravidade¶
Medium
Descrição¶
O Snowflake não é compatível ao uso de consultas selecionadas na cláusula From de uma instrução Delete. Se a instrução Delete for migrada parcialmente, obteremos uma instrução incompleta, pois a cláusula From estará vazia.
Exemplo de código¶
DB2¶
Consulta Select¶
DELETE FROM (
SELECT * FROM table1
)
Snowflake¶
Consulta Select¶
DELETE FROM
!!!RESOLVE EWI!!! /*** SSC-EWI-DB0008 - DELETE FROM SELECT STATEMENT IS NOT SUPPORTED. ***/!!!
(
SELECT * FROM table1
)
Recomendações¶
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-DB0009¶
POSITIONED STATEMENT IS NOT SUPPORTED.
Gravidade¶
Medium
Descrição¶
O Snowflake não é compatível com o uso de cursores como parte da instrução Delete e da instrução Update. Se a instrução for migrada parcialmente, nos livraremos da cláusula where da qual o cursor faz parte, tornando arriscado excluir ou atualizar toda a tabela.
Exemplo de código¶
DB2¶
Instrução Delete¶
DELETE FROM table1
WHERE CURRENT OF cursor1
Instrução Update¶
UPDATE table1
SET col1 = 1
WHERE CURRENT OF cursor1
Snowflake¶
Instrução Delete¶
DELETE FROM
table1
WHERE
!!!RESOLVE EWI!!! /*** SSC-EWI-DB0009 - POSITIONED CURRENT OF IS NOT SUPPORTED. ***/!!! CURRENT OF cursor1
Instrução Update¶
UPDATE TABLE1
SET Column1 = 1
WHERE
!!!RESOLVE EWI!!! /*** SSC-EWI-DB0009 - POSITIONED CURRENT OF IS NOT SUPPORTED. ***/!!!
CURRENT OF cursor1;
Recomendações¶
Para obter mais suporte, é possível enviar um e-mail para nós em support@mobilize.net ou postar uma mensagem em nossos fóruns. Se você tem um contrato de suporte com a Mobilize.Net, entre em contato com seu engenheiro de vendas e ele poderá atender às suas necessidades de suporte.
SSC-EWI-DB0010¶
ATTRIBUTE NAME IS NOT SUPPORTED IN SNOWFLAKE
Gravidade¶
Medium
Descrição¶
Esta mensagem é exibida ao especificar o atributo de um tipo estruturado que está sendo definido (chamado de designação de atributo). Um tipo estruturado pode ser um subtipo que permite que atributos sejam herdados de um supertipo.
O Snowflake não é compatível com esses tipos de estruturas.
Para obter mais informações sobre tipos de estrutura, clique aqui
Exemplo de código¶
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
Recomendações¶
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-DB0011¶
ASSIGNMENT CLAUSE TYPE IS NOT SUPPORTED IN SNOWFLAKE
Gravidade¶
Medium
Descrição¶
Esta mensagem é exibida quando a cláusula de designação contém uma expressão incompatível com o Snowflake
Casos¶
Instrução de atualização¶
Quando uma cláusula de designação apresenta uma designação de várias colunas de uma seleção de linha, um exemplo disso pode ser encontrado na seção Exemplo de código.
Exemplo de código¶
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';
Recomendações¶
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-DB0012¶
INVALID NAME AS INSERTION TARGET, USE OF VIEW NAME IS NOT SUPPORTED IN SNOWFLAKE
Gravidade¶
Medium
Descrição¶
O Snowflake não é compatível com o uso do nome da exibição na instrução de inserção do nome de destino.
Exemplo de código¶
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);
Recomendações¶
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-DB0013¶
INVALID NAME AS DELETE TARGET, USE OF VIEW NAME IS NOT SUPPORTED IN SNOWFLAKE
Gravidade¶
Medium
Descrição¶
O Snowflake não é compatível com o uso do nome da exibição na instrução de exclusão do nome de destino. Por esse motivo, a consulta de resultado não pôde ser válida
Exemplo de código¶
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
Recomendações¶
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-DB0014¶
THE USE OF EXTERNAL TABLE REFERENCES IS NOT SUPPORTED IN SNOWFLAKE
Gravidade¶
Medium
Descrição¶
O Snowflake não é compatível com o uso de tabelas externas na instrução Select. Por esse motivo, a consulta de resultado não pôde ser válida
Exemplo de código¶
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)
Recomendações¶
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com