No SQL, as instruções preparadas são usadas para modelar consultas ou atualizações semelhantes. Adobe Experience Platform Query Service O oferece suporte a instruções preparadas usando uma consulta com parâmetros. Isso pode otimizar o desempenho, já que não é mais necessário reanalisar repetidamente uma consulta.
Ao usar instruções preparadas, as seguintes sintaxes são suportadas:
Esta consulta SQL salva a consulta SELECT gravada com o nome fornecido como PLAN_NAME
. É possível usar variáveis, como $1
em vez de valores reais. Esta instrução preparada será salva durante a sessão atual. Observe que os nomes dos planos são não distinção entre maiúsculas e minúsculas.
PREPARE {PLAN_NAME} AS {SELECT_QUERY}
PREPARE test AS SELECT * FROM table WHERE country = $1 AND city = $2;
Esta consulta SQL usa a instrução preparada que foi criada anteriormente.
EXECUTE {PLAN_NAME}('{PARAMETERS}')
EXECUTE test('canada', 'vancouver');
Esta consulta SQL é usada para excluir a instrução preparada nomeada.
DEALLOCATE {PLAN_NAME}
DEALLOCATE test;
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 | sobrenome | data de nascimento | city | país | |
---|---|---|---|---|---|---|
10000 | alexandre | 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 | 1999-11-26 | example3@example.com | Tóquio | Japão |
10003 | linus | pettersson | 1982-06-03 | example4@example.com | Estocolmo | Suécia |
10004 | aasir | waithaka | 1976-12-17 | example5@example.com | Nairóbi | 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á os mesmos resultados de antes:
id | firstname | sobrenome | data de nascimento | city | país | |
---|---|---|---|---|---|---|
10000 | alexandre | 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 | 1999-11-26 | example3@example.com | Tóquio | Japão |
10003 | linus | pettersson | 1982-06-03 | example4@example.com | Estocolmo | Suécia |
10004 | aasir | waithaka | 1976-12-17 | example5@example.com | Nairóbi | Quênia |
10005 | fernando | rios | 2002-07-30 | example6@example.com | Santiago | Chile |
Depois de concluir o uso da instrução preparada, você pode desalocá-la usando a seguinte chamada:
DEALLOCATE getIdRange;