Instruções preparadas

No SQL, as instruções preparadas são usadas para modelar consultas ou atualizações semelhantes. O Adobe Experience Platform Query Service suporta instruções preparadas usando uma consulta parametrizada. Isso pode ser usado para otimizar o desempenho, pois você não precisará mais analisar uma consulta repetidamente.

Uso de instruções preparadas

Ao usar instruções preparadas, as seguintes sintaxes são suportadas:

Preparar uma instrução preparada

Esta consulta SQL salva a consulta SELECT gravada com o nome fornecido como PLAN_NAME. Você pode usar variáveis, como $1 no lugar de valores reais. Essa instrução preparada será salva durante a sessão atual. Observe que os nomes de plano não fazem distinção entre maiúsculas e minúsculas.

Formato SQL

PREPARE {PLAN_NAME} AS {SELECT_QUERY}

SQL de exemplo

PREPARE test AS SELECT * FROM table WHERE country = $1 AND city = $2;

Executar uma instrução preparada

Esta consulta SQL usa a instrução preparada criada anteriormente.

Formato SQL

EXECUTE {PLAN_NAME}('{PARAMETERS}')

SQL de exemplo

EXECUTE test('canada', 'vancouver');

Desalocar uma instrução preparada

Esta consulta SQL é usada para excluir a instrução preparada nomeada.

Formato SQL

DEALLOCATE {PLAN_NAME}

SQL de exemplo

DEALLOCATE test;

Exemplo de fluxo usando instruções preparadas

Inicialmente, você pode ter uma consulta SQL, como a abaixo:

SELECT * FROM table WHERE id >= 10000 AND id <= 10005;

A consulta SQL acima retornará a seguinte resposta:

id firstname lastname data de nascimento email city country
10000 alexandro davis 1993-09-15 example@example.com Vancouver Canadá
10001 antoína dubois 1967-03-14 example2@example.com Paris França
10002 kyoko sakura 11-1999-26 example3@example.com Tóquio Japão
10003 linus petersson 1982-06-03 example4@example.com Estocolmo Suécia
10004 aasir wathaka 1976-12-17 example5@example.com Nairobi Quênia
10005 fernando rios 2002-07-30 example6@example.com Santiago Chile

Esta consulta SQL pode ser parametrizada usando a seguinte instrução preparada:

PREPARE getIdRange AS SELECT * FROM table WHERE id >= $1 AND id <= $2; 

Agora, a instrução preparada pode ser executada usando a seguinte chamada:

EXECUTE getIdRange(10000, 10005);

Quando isso for chamado, você verá exatamente os mesmos resultados de antes:

id firstname lastname data de nascimento email cidade country
10000 alexandro davis 1993-09-15 example@example.com Vancouver Canadá
10001 antoína dubois 1967-03-14 example2@example.com Paris França
10002 kyoko sakura 11-1999-26 example3@example.com Tóquio Japão
10003 linus petersson 1982-06-03 example4@example.com Estocolmo Suécia
10004 aasir wathaka 1976-12-17 example5@example.com Nairobi Quênia
10005 fernando rios 2002-07-30 example6@example.com Santiago Chile

Após terminar de usar a declaração preparada, é possível desalocá-la usando a seguinte chamada:

DEALLOCATE getIdRange;

Nesta página