SnowConvert AI - Redshift - CREATE PROCEDURE¶
Descrição¶
Cria um novo procedimento armazenado ou substitui um procedimento existente para o banco de dados atual. (Procedimento Create da referência da linguagem Redshift SQL).
Consulte as definições a seguir para obter mais informações sobre cláusulas de procedimento:
Sintaxe da gramática¶
The following is the SQL syntax to create a Procedure in Amazon Redshift. See the Redshift CREATE PROCEDURE specification for this syntax.
Amostra de padrões da origem¶
Código de entrada:¶
Redshift¶
Código de saída:¶
Snowflake¶
ALIAS DECLARATION¶
Descrição¶
Se a assinatura do procedimento armazenado omitir o nome do argumento, você poderá declarar um alias para o argumento.
Não há suporte para isso no Snowflake.
Para obter equivalência funcional, os aliases serão removidos e todos os usos serão renomeados.
Quando um alias é declarado para um parâmetro sem nome, um nome gerado será criado para o parâmetro e os usos. Quando o alias for para um parâmetro com nome, o alias será substituído pelo nome real do parâmetro.
Sintaxe da gramática¶
Amostra de padrões da origem¶
Código de entrada:¶
Redshift¶
Código de saída:¶
Snowflake¶
Problemas conhecidos¶
Não há problemas conhecidos.
EWIs Relacionados.¶
Não há EWIs relacionados.
ARGUMENTS MODE¶
Descrição¶
Os procedimentos armazenados do Amazon Redshift suportam parâmetros que podem ser passados durante a invocação do procedimento. Esses parâmetros permitem que você forneça valores de entrada, recupere valores de saída ou use-os para operações de entrada e saída. Abaixo, há uma explicação detalhada dos tipos de parâmetros, seus modos e exemplos de uso. O Snowflake suporta apenas valores de entrada.
IN (Parâmetros de entrada)¶
Finalidade: Usado para passar valores para o procedimento.
Modo padrão: Se nenhum modo for especificado, os parâmetros serão considerados IN.
Comportamento: Os valores passados para o procedimento não podem ser modificados dentro do procedimento.
OUT (Parâmetros de saída)¶
Finalidade: Usado para retornar valores do procedimento.
Comportamento: Os parâmetros podem ser modificados dentro do procedimento e são retornados ao chamador. Você não pode enviar um valor inicial.
INOUT (Parâmetros de entrada/saída)¶
Finalidade: Usado para passar valores para o procedimento e modificá-los para retornar valores atualizados.
Comportamento: Combina o comportamento de IN e OUT. Você deve enviar um valor inicial independentemente da saída.
Sintaxe da gramática¶
Amostra de padrões da origem¶
Código de entrada:¶
Redshift¶
Código de saída:¶
Snowflake¶
Problemas conhecidos¶
Não há problemas conhecidos.
EWIs relacionados¶
SCC-EWI-0028 : Tipo não suportado pelo Snowflake.
SSC-EWI-RS0010: A chamada de procedimento de nível superior sem parâmetros não é aceita.
PROCEDURE BODY¶
Dica
SnowConvert does not support translation for PostgreSQL string constant definition in procedures. Use arrange option
Descrição¶
Assim como o RedShift, o Snowflake oferece suporte para CREATE PROCEDURE usando $$ procedure_logic $$ como o corpo. Existe uma diferença na sintaxe do Redshift, onde uma palavra pode estar dentro de $$ como $word$ e ser usada como um corpo delimitador como $word$ procedure_logic $word$. O SnowConvert AI vai transformá-lo removendo a palavra, deixando o $$.
Sintaxe da gramática¶
Amostra de padrões da origem¶
Código de entrada:¶
Redshift¶
Código de saída:¶
Snowflake¶
Problemas conhecidos¶
Não há problemas conhecidos.
EWIs Relacionados.¶
Não há EWIs relacionados.
BLOCK STATEMENT¶
Descrição¶
PL/pgSQL é uma linguagem estruturada em blocos. O corpo completo de um procedimento é definido em um bloco, que contém declarações de variáveis e instruções PL/pgSQL. Uma instrução também pode ser um bloco ou subbloco aninhado.
Sintaxe da gramática¶
Amostra de padrões da origem¶
Código de entrada:¶
Redshift¶
Código de saída:¶
Snowflake¶
Problemas conhecidos¶
Não há problemas conhecidos.
EWIs Relacionados.¶
Não há EWIs relacionados.
DECLARE¶
Descrição¶
Seção para declarar todas as variáveis de procedimento, exceto as variáveis de loop.\ O Redshift oferece suporte a várias seções DECLARE por instrução de bloco; como o Snowflake não oferece suporte a esse comportamento, elas devem ser mescladas em uma única instrução de declaração por bloco.
Sintaxe da gramática¶
Amostra de padrões da origem¶
Código de entrada:¶
Redshift¶
Código de saída:¶
Snowflake¶
Problemas conhecidos¶
Não há problemas conhecidos.
EWIs Relacionados.¶
Não há EWIs relacionados.
EXCEPTION¶
Descrição¶
Quando ocorre uma exceção e você adiciona um bloco de tratamento de exceções, é possível escrever instruções RAISE e a maioria das outras instruções PL/pgSQL. Por exemplo, é possível gerar uma exceção com uma mensagem personalizada ou inserir um registro em uma tabela de registro.
Sintaxe da gramática¶
Amostra de padrões da origem¶
Código de entrada:¶
Redshift¶
Código de saída:¶
Snowflake¶
Problemas conhecidos¶
Não há problemas conhecidos.
EWIs Relacionados.¶
Não há EWIs relacionados.
LABEL¶
Descrição¶
Os rótulos são usados no Redshift para qualificar um bloco ou para usar a instrução EXIT ou END. O Snowflake não oferece suporte a rótulos.
Aviso
Como não há suporte para rótulos no Snowflake, será impresso um EWI.
Sintaxe da gramática¶
Amostra de padrões da origem¶
Código de entrada:¶
Redshift¶
Código de saída:¶
Snowflake¶
Problemas conhecidos¶
Não há problemas conhecidos.
EWIs relacionados¶
SSC-EWI-0094: Declaração de rótulo não suportada
NONATOMIC¶
Descrição¶
NONATOMIC faz o commit após cada instrução no procedimento armazenado. O Snowflake oferece suporte a um parâmetro AUTOCOMMIT. A configuração padrão para AUTOCOMMIT é TRUE (habilitada).
Enquanto o AUTOCOMMIT estiver ativado, cada instrução fora de uma transação explícita será tratada como se estivesse dentro de sua transação implícita de instrução única. Em outras palavras, essa instrução é automaticamente confirmada se for bem-sucedida e automaticamente revertida se falhar. Em outras palavras, o Snowflake funciona como NONATOMIC «por padrão».
Sintaxe da gramática¶
Amostra de padrões da origem¶
Código de entrada:¶
Redshift¶
Código de saída:¶
Snowflake¶
Problemas conhecidos¶
Não há problemas conhecidos.
EWIs Relacionados.¶
Não há EWIs relacionados.
POSITIONAL ARGUMENTS¶
Descrição¶
O RedShift oferece suporte a parâmetros sem nome, referenciando os parâmetros por sua posição usando $. O Snowflake não oferece suporte a esse comportamento. Para garantir a equivalência funcional, o SnowConvert AI pode converter essas referências pelo nome do parâmetro se o nome estiver presente na definição. Caso contrário, o SnowConvert AI vai gerar um nome para o parâmetro, e os usos serão substituídos pelo novo nome.
Sintaxe da gramática¶
Amostra de padrões da origem¶
Código de entrada:¶
Redshift¶
Código de saída:¶
Snowflake¶
Problemas conhecidos¶
Não há problemas conhecidos.
EWIs Relacionados.¶
Não há EWIs relacionados.
RAISE¶
Descrição¶
Use a instrução
RAISE nívelpara relatar mensagens e gerar erros.
Observação
RAISE são totalmente suportados pelo Snowflake.
Sintaxe da gramática¶
No Amazon Redshift, a instrução RAISE é usada para gerar mensagens no console ou lançar exceções personalizadas. O Redshift permite que você especifique diferentes níveis para indicar a gravidade da mensagem. No Snowflake, essa funcionalidade pode ser emulada usando uma função definida pelo usuário (UDF) que faz uma chamada para o console, dependendo do nível especificado.
Exceção: \ Quando o nível é «EXCEPTION», uma exceção personalizada é levantada com uma mensagem geral: «To view the EXCEPTION MESSAGE, you need to check the log.» O código de exceção é
-20002, que informa ao usuário que a mensagem personalizada pode ser encontrada nos logs. Isso se deve a limitações no envio de exceções personalizadas no Snowflake.Aviso: \ Se o nível for «WARNING»,
SYSTEM$LOG_WARNé usado para imprimir a mensagem de aviso no registro do Snowflake, o que ajuda a destacar possíveis problemas sem interromper o fluxo de execução.Info: \ Para qualquer outro nível (como «INFO»),
SYSTEM$LOG_INFOé usado para imprimir a mensagem no log do console, fornecendo feedback mais detalhado sobre o estado do sistema sem causar interrupções críticas.
Essa abordagem permite emular a funcionalidade dos níveis de gravidade do Redshift, adaptando-os à sintaxe e aos recursos do Snowflake, mantendo a flexibilidade e o controle sobre as mensagens e exceções geradas durante a execução.
Limitações
Para visualizar logs no Snowflake, é necessário ter privilégios específicos, como as funções
ACCOUNTADMINouSECURITYADMIN.Os logs no Snowflake não ficam disponíveis imediatamente e podem sofrer um pequeno atraso até que as informações fiquem visíveis.
As mensagens de erro personalizadas em exceções não são exibidas como no Redshift. Para visualizar as mensagens personalizadas, você deve acessar os logs diretamente.
Para obter mais informações, consulte a seguinte página.
Amostra de padrões da origem¶
Código de entrada:¶
Redshift¶
Código de saída:¶
Snowflake¶
UDFs ¶
RAISE_MESSAGE_UDF¶
STRING_FORMAT_UDF¶
Problemas conhecidos¶
Não há problemas conhecidos.
EWIs Relacionados.¶
Não há EWIs relacionados.
RETURN¶
Descrição¶
A instrução RETURN retorna ao chamador a partir de um procedimento armazenado. (Return da referência da linguagem Redshift SQL).
A conversão da instrução de retorno do Amazon Redshift para o Snowflake é simples, considerando apenas a adição de um NULL à instrução de retorno no Snowflake.
Sintaxe da gramática¶
Amostra de padrões da origem¶
Caso simples¶
Código de entrada:¶
Redshift¶
Código de saída:¶
Redshift¶
Quando o procedimento tem parâmetros de saída¶
O SnowConvert AI retorna uma variante com parâmetros definidos como parâmetros de saída. Assim, para cada retorno, o SnowConvert AI adicionará uma variante como um valor de retorno.
Código de entrada:¶
Redshift¶
Código de saída:¶
Redshift¶
Problemas conhecidos¶
Não há problemas conhecidos.
EWIs Relacionados.¶
Não há EWIs relacionados.
SECURITY (DEFINER | INVOKER)¶
Descrição¶
A cláusula SECURITY nos procedimentos armazenados do Amazon Redshift define o contexto de controle de acesso e permissões sob o qual o procedimento é executado. Isso determina se o procedimento usa os privilégios do proprietário (criador) ou do chamador (usuário que invoca o procedimento).
Sintaxe da gramática¶
Amostra de padrões da origem¶
Código de entrada:¶
Redshift¶
Código de saída:¶
Snowflake¶
Problemas conhecidos¶
Não há problemas conhecidos.
EWIs Relacionados.¶
Não há EWIs relacionados.
VARIABLE DECLARATION¶
Descrição¶
Declara todas as variáveis em um bloco, exceto as variáveis de loop, na seção DECLARE do bloco.
Observação
As declarações de variáveis são totalmente compatíveis com o Snowflake.
Sintaxe da gramática¶
No Redshift, a palavra-chave CONSTANT impede a reatribuição de variáveis durante a execução. Como o Snowflake não oferece suporte a essa palavra-chave, ela é removida durante a transformação. Isso não afeta a funcionalidade, pois a lógica não deve tentar reatribuir uma variável constante.
A restrição NOT NULL no Redshift garante que não seja possível atribuir um valor nulo a uma variável e exige um valor padrão não nulo. Como o Snowflake não é compatível com essa restrição, ela é removida durante a transformação. No entanto, o valor padrão é mantido para manter a funcionalidade.
Uma variável declarada com um Refcursor é transformada para o tipo Resultset, para obter mais informações DECLARE REFCURSOR.
Amostra de padrões da origem¶
Código de entrada:¶
Redshift¶
Código de saída:¶
Snowflake¶
Problemas conhecidos ¶
Não foram encontrados problemas.
EWIs relacionados¶
SSC-FDM-PG0012: a restrição NOT NULL foi removida. Atribuir NULL a essa variável não causará mais falhas.
TRANSACTIONS¶
COMMIT¶
Descrição¶
Confirma a transação atual no banco de dados. Esse comando torna permanentes as atualizações do banco de dados da transação. (Referência da linguagem Redshift SQL COMMIT)
Sintaxe da gramática
Amostra de padrões da origem¶
Dados de configuração¶
Redshift¶
Consulta¶
Snowflake¶
Consulta¶
COMMIT com a palavra-chave TRANSACTION¶
A palavra-chave TRANSACTION não é compatível com o Snowflake. No entanto, como isso não afeta a funcionalidade, será simplesmente removido.
Redshift¶
Consulta¶
Snowflake¶
Consulta¶
COMMIT em um procedimento de comportamento de transação padrão (sem a cláusula NONATOMIC)¶
To avoid out of scope transaction exceptions in Snowflake, the usages of COMMIT will be matched with BEGIN TRANSACTION.
Quando vários comandos COMMIT estiverem presentes no procedimento, vários comandos BEGIN TRANSACTION serão gerados após cada COMMIT para emular o comportamento de transação do Redshift.
Redshift¶
Consulta¶
Resultado¶
Snowflake¶
Consulta¶
Resultado¶
COMMIT em um procedimento com comportamento NONATOMIC¶
O comportamento NONATOMIC do Redshift é emulado no Snowflake usando o parâmetro de sessão AUTOCOMMIT definido como true.
Como o parâmetro de sessão AUTOCOMMIT é considerado como verdadeiro por SnowConvert, a instrução COMMIT dentro de procedimentos NONATOMIC é deixada como está.
Redshift¶
Consulta¶
Resultado¶
Snowflake¶
Consulta¶
Resultado¶
Problemas conhecidos¶
1. COMMIT dentro de uma chamada de procedimento aninhado
No Redshift, quando uma instrução COMMIT é especificada em uma chamada de procedimento aninhado, o comando confirmará todo o trabalho pendente de instruções anteriores nos escopos atual e pai. O Snowflake não é compatível com o envio das ações do escopo principal; quando esse caso for detectado, será gerado um FDM.
Redshift¶
Consulta¶
Snowflake¶
Consulta¶
Problemas conhecidos¶
Não há problemas conhecidos.
EWIs relacionados¶
SSC-FDM-RS0006: O procedimento chamado contém usos de COMMIT/ROLLBACK, a modificação da transação atual em escopos filhos não é compatível com o Snowflake.
ROLLBACK¶
Descrição¶
Interrompe a transação atual e descarta todas as atualizações feitas por essa transação. (Referência da linguagem Redshift SQL ROLLBACK)
Sintaxe da gramática
Amostra de padrões da origem¶
Dados de configuração¶
Redshift¶
Consulta¶
Snowflake¶
Consulta¶
ROLLBACK com a palavra-chave TRANSACTION¶
A palavra-chave TRANSACTION não é compatível com o Snowflake. No entanto, como isso não afeta a funcionalidade, será simplesmente removido.
Redshift¶
Consulta¶
Snowflake¶
Consulta¶
ROLLBACK em um procedimento de comportamento de transação padrão (sem a cláusula NONATOMIC)¶
To avoid out of scope transaction exceptions in Snowflake, the usages of ROLLBACK will be matched with BEGIN TRANSACTION.
Quando várias instruções de controle de transação estiverem presentes no procedimento, várias instruções BEGIN TRANSACTION serão geradas após cada uma delas para emular o comportamento de transação do Redshift.
Redshift¶
Consulta¶
Resultado¶
Snowflake¶
Consulta¶
Resultado¶
ROLLBACK em um procedimento com comportamento NONATOMIC¶
O comportamento NONATOMIC do Redshift é emulado no Snowflake usando o parâmetro de sessão AUTOCOMMIT definido como true.
Como o parâmetro de sessão AUTOCOMMIT é considerado como verdadeiro por SnowConvert, a instrução ROLLBACK dentro de procedimentos NONATOMIC é deixada como está.
Redshift¶
Consulta¶
Resultado¶
Snowflake¶
Consulta¶
Resultado¶
Problemas conhecidos¶
1. ROLLBACK dentro de uma chamada de procedimento aninhado
No Redshift, quando uma instrução ROLLBACK é especificada em uma chamada de procedimento aninhado, o comando confirmará todo o trabalho pendente de instruções anteriores nos escopos atual e pai. O Snowflake não é compatível com o envio das ações do escopo principal; quando esse caso for detectado, será gerado um FDM.
Redshift¶
Consulta¶
Snowflake¶
Consulta¶
2. ROLLBACK de instruções DDL
In Snowflake, DDL statements perform an implicit commit whenever they are executed inside a procedure, making effective all the work before executing the DDL as well as the DDL itself. This causes the ROLLBACK statement to not be able to discard any changes before that point, this issue will be informed using an FDM.
Redshift¶
Consulta¶
Snowflake¶
Consulta¶
Problemas conhecidos¶
Não há problemas conhecidos.
EWIs relacionados¶
SSC-FDM-RS0006: O procedimento chamado contém usos de COMMIT/ROLLBACK, a modificação da transação atual em escopos filhos não é compatível com o Snowflake.
SSC-FDM-RS0007: DDL statements perform an automatic COMMIT in Snowflake. ROLLBACK will not undo DDL-committed changes.
TRUNCATE¶
Descrição¶
Exclui todas as linhas de uma tabela sem fazer uma varredura de tabela (TRUNCATE da referência da linguagem Redshift SQL)
Sintaxe da gramática
Amostra de padrões da origem¶
Dados de configuração¶
Redshift¶
Consulta¶
Snowflake¶
Consulta¶
TRUNCATE em um procedimento de comportamento de transação padrão (sem a cláusula NONATOMIC)¶
Como a instrução TRUNCATE confirma automaticamente a transação em que é executada, qualquer um de seus usos gerará uma instrução COMMIT no Snowflake para emular esse comportamento.
Como uma instrução COMMIT é gerada, a mesma geração de instrução BEGIN TRANSACTION será aplicada a TRUNCATE. Para obter mais informações, consulte a especificação de conversão COMMIT .
Redshift¶
Consulta¶
Resultado¶
Snowflake¶
Consulta¶
Resultado¶
TRUNCATE em um procedimento com comportamento NONATOMIC¶
O comportamento NONATOMIC do Redshift é emulado no Snowflake usando o parâmetro de sessão AUTOCOMMIT definido como true.
Since the AUTOCOMMIT session parameter is assumed to be true by SnowConvert AI, the TRUNCATE statement inside NONATOMIC procedures is left as is, there is no need to generate a COMMIT statement because every statement is automatically committed when executed.
Redshift¶
Consulta¶
Resultado¶
Snowflake¶
Consulta¶
Resultado¶
Problemas conhecidos¶
1. TRUNCATE dentro de uma chamada de procedimento aninhado
No Redshift, quando uma instrução COMMIT é especificada em uma chamada de procedimento aninhado, o comando confirmará todo o trabalho pendente de instruções anteriores nos escopos atual e pai. O Snowflake não é compatível com o envio das ações do escopo principal; quando esse caso for detectado, será gerado um FDM.
Redshift¶
Consulta¶
Snowflake¶
Consulta¶
Problemas conhecidos¶
Não há problemas conhecidos.
EWIs relacionados¶
SSC-FDM-RS0006: O procedimento chamado contém usos de COMMIT/ROLLBACK, a modificação da transação atual em escopos filhos não é compatível com o Snowflake.
CONDITIONS¶
CASE¶
Descrição¶
A instrução
CASEno Redshift permite que você retorne valores com base em condições, possibilitando a lógica condicional nas consultas. Ela tem duas formas: simples e pesquisada. (Condicionais da referência da linguagem Redshift SQL: Case).
Caso simples¶
Uma simples instrução CASE oferece execução condicional com base na igualdade de operandos.
Observação
O Simple Case é totalmente suportado pelo Snowflake.
Sintaxe da gramática¶
Amostra de padrões da origem¶
Código de entrada:¶
Redshift¶
Código de saída:¶
Redshift¶
Caso pesquisado¶
Observação
Searched Case é totalmente suportado pelo Snowflake.
Sintaxe da gramática¶
Amostra de padrões da origem¶
Código de entrada:¶
Redshift¶
Código de saída:¶
Redshift¶
CASE sem ELSE¶
No Redshift, quando uma expressão CASE é executada e nenhuma das condições validadas é atendida, e não há nenhum ELSE definido, a exceção “CASE NOT FOUND” é acionada. No Snowflake, o código é executado, mas não retorna nenhum resultado. Para manter a mesma funcionalidade no Snowflake nesse cenário, uma exceção com o mesmo nome será declarada e executada se nenhuma das condições de CASE for atendida.
Observação
Case Without Else é totalmente suportado pela Snowflake.
Código de entrada:¶
Redshift¶
Código de saída:¶
Redshift¶
Problemas conhecidos¶
Não há problemas conhecidos.
EWIs Relacionados.¶
Não há EWIs relacionados.
IF¶
Descrição¶
Essa instrução permite que você tome decisões com base em determinadas condições. (Condicionais da referência da linguagem Redshift SQL: IF).
SnowConvert AI adicionará o parêntese nas condições e mudará a palavra-chave ELSIF por ELSEIF já que o RedShift não exige o parêntese nas condições e ELSIF é a palavra-chave.
Sintaxe da gramática¶
Amostra de padrões da origem¶
Código de entrada:¶
Redshift¶
Código de saída:¶
Redshift¶
Problemas conhecidos¶
Não há problemas conhecidos.
EWIs Relacionados.¶
Não há EWIs relacionados.
LOOPS¶
Descrição¶
Essas instruções são usadas para repetir um bloco de código até a condição especificada. (Loops da referência da linguagem Redshift SQL).
CONTINUE¶
Descrição¶
Quando as condições de CONTINUE forem verdadeiras, o loop poderá continuar a execução; quando forem falsas, o loop será interrompido. (Condicionais da referência da linguagem Redshift SQL: CONTINUE).
Aviso
CONTINUE tem suporte parcial do Snowflake.
Sintaxe da gramática¶
Amostra de padrões da origem¶
Código de entrada:¶
Redshift¶
Resultados¶
Saída do console |
|---|
1 |
2 |
3 |
4 |
6 |
7 |
Código de saída:¶
Snowflake¶
Resultados¶
Saída do console |
|---|
1 |
2 |
3 |
4 |
6 |
7 |
Problemas conhecidos¶
Não há problemas conhecidos.
EWIs Relacionados.¶
Não há EWIs relacionados.
EXIT¶
Descrição¶
Interrompa a execução do loop quando as condições definidas na instrução WHEN forem verdadeiras (Condicionais da referência da linguagem Redshift SQL: EXIT).
Aviso
EXIT tem suporte parcial do Snowflake.
Sintaxe da gramática¶
Amostra de padrões da origem¶
Código de entrada:¶
Redshift¶
Código de saída:¶
Redshift¶
Problemas conhecidos¶
Não há problemas conhecidos.
EWIs Relacionados.¶
Não há EWIs relacionados.
FOR¶
Sintaxe da gramática¶
Variante de inteiro
Amostra de padrões da origem¶
Código de entrada:¶
Redshift¶
Código de saída:¶
Redshift¶
Problemas conhecidos¶
Não há problemas conhecidos.
EWIs Relacionados.¶
SSC-EWI-PG0006: A referência a uma variável usando o rótulo não é suportada pelo Snowflake.
LOOP¶
Descrição¶
Um loop simples define um loop incondicional que é repetido indefinidamente até ser encerrado por uma instrução EXIT ou RETURN. (Condicionais da referência da linguagem Redshift SQL: Loop simples).
Aviso
O Loop simples tem suporte parcial do Snowflake.
Sintaxe da gramática¶
Amostra de padrões da origem¶
Código de entrada:¶
Redshift¶
Código de saída:¶
Redshift¶
Problemas conhecidos¶
Não há problemas conhecidos.
EWIs Relacionados.¶
Não há EWIs relacionados.
WHILE¶
Sintaxe da gramática¶
Amostra de padrões da origem¶
Código de entrada:¶
Redshift¶
Código de saída:¶
Redshift¶
Problemas conhecidos¶
Não há problemas conhecidos.
EWIs Relacionados.¶
Não há EWIs relacionados.
CURSORS¶
CLOSE CURSOR¶
Descrição¶
Fecha todos os recursos livres associados a um cursor aberto. (Close Cursor da referência da linguagem Redshift SQL).
Observação
Essa sintaxe é totalmente compatível com o Snowflake.
Sintaxe da gramática¶
Amostra de padrões da origem¶
Código de entrada:¶
Redshift¶
Código de saída:¶
Redshift¶
Problemas conhecidos¶
Não há problemas conhecidos.
EWIs Relacionados.¶
Não há EWIs relacionados.
FETCH CURSOR¶
Descrição¶
Recupera linhas usando um cursor. (Fetch da referência da linguagem Redshift SQL)
Informações de transformação
Amostra de padrões da origem¶
Dados de configuração¶
Redshift¶
Consulta¶
Snowflake¶
Consulta¶
Fetch into¶
A instrução FETCH into do Redshift é totalmente equivalente no Snowflake
Redshift¶
Consulta¶
Resultado¶
Snowflake¶
Consulta¶
Resultado¶
Problemas conhecidos¶
1. Não há suporte para Fetch sem variáveis de destino
O Snowflake exige que a instrução FETCH especifique a cláusula INTO com as variáveis em que os valores de linha obtidos serão armazenados. Quando uma instrução FETCH for encontrada no código sem nenhuma cláusula INTO, será gerado um EWI.
Código de entrada:
Código de saída:
Problemas conhecidos¶
Não há problemas conhecidos.
EWIs relacionados¶
SSC-EWI-PG0015: A busca do cursor sem variáveis de destino não é suportada no Snowflake
OPEN CURSOR¶
Descrição¶
Antes que você possa usar um cursor para recuperar linhas, ele deve ser aberto. (Open Cursor da referência da linguagem Redshift SQL).
Observação
Essa sintaxe é totalmente compatível com o Snowflake.
Sintaxe da gramática¶
Amostra de padrões da origem¶
Dados de configuração¶
Redshift¶
Consulta¶
Snowflake¶
Consulta¶
Abrir o cursor sem argumentos¶
Código de entrada:¶
Redshift¶
Código de saída:¶
Redshift¶
Abrir o cursor com argumentos¶
Cursor arguments have to be bound per each one of its uses, SnowConvert AI will generate the bindings, as well as reorder and repeat the passed values to the OPEN statement as needed to satisfy the bindings.
Redshift¶
Consulta¶
Resultado¶
Snowflake¶
Consulta¶
Resultado¶
Abrir o cursor com parâmetros de procedimento ou variáveis locais¶
The procedure parameters or local variables have to be bound per each one of its uses in the cursor query, SnowConvert AI will generate the bindings and add the parameter or variable names to the OPEN statement, even if the cursor originally had no parameters.
Redshift¶
Consulta¶
Resultado¶
Snowflake¶
Consulta¶
Resultado¶
Problemas conhecidos¶
Não há problemas conhecidos.
EWIs Relacionados.¶
Não há EWIs relacionados.
DECLARE CURSOR¶
Descrição¶
Define um novo cursor. Use um cursor para recuperar algumas linhas de cada vez do conjunto de resultados de uma consulta maior. (Declare Cursor da referência da linguagem Redshift SQL).
Observação
Essa sintaxe é totalmente compatível com o Snowflake.
Sintaxe da gramática¶
Amostra de padrões da origem¶
Código de entrada:¶
Código de entrada:¶
Redshift¶
Código de saída:¶
Redshift¶
Problemas conhecidos¶
Não há problemas conhecidos.
EWIs Relacionados.¶
Não há EWIs relacionados.
DECLARE REFCURSOR¶
Descrição¶
Um tipo de dados
refcursorsimplesmente contém uma referência a um cursor. Você pode criar uma variável de cursor declarando-a como uma variável do tiporefcursor(Declaração Refcursor da referência da linguagem Redshift SQL)
Observação
As declarações de refcursor são totalmente compatíveis com o Snowflake.
Sintaxe da gramática¶
Como o Snowflake não é compatível com o tipo de dados REFCURSOR, sua funcionalidade é replicada pela conversão da variável REFCURSOR em um tipo RESULTSET. A consulta usada para abrir o REFCURSOR é atribuída à variável RESULTSET, após o que um novo cursor é criado e vinculado à variável RESULTSET. Além disso, todas as referências ao REFCURSOR original dentro da lógica do cursor são atualizadas para usar o novo cursor, replicando assim a funcionalidade original.
Amostra de padrões da origem¶
Caso: uso único¶
Código de entrada:¶
Redshift¶
Código de saída:¶
Snowflake¶
Caso: Cursor com Sql dinâmico ¶
Código de entrada:¶
Redshift¶
Código de saída:¶
Redshift¶
Caso: Múltiplos usos: ¶
Código de entrada:¶
Redshift¶
Código de saída:¶
Snowflake¶
Problemas conhecidos¶
Não há problemas conhecidos.
EWIs Relacionados.¶
Não há EWIs relacionados.