No SQL, instruções preparadas são usadas para modelar query ou atualizações semelhantes. A Adobe Experience Platform Query Service suporta declarações preparadas usando um query parametrizado. Isso pode ser usado para otimizar o desempenho, pois não será mais necessário analisar novamente um query várias vezes.
Ao usar instruções preparadas, as seguintes sintaxes são suportadas:
Este query SQL salva o query SELECT gravado com o nome fornecido como PLAN_NAME
. É possível usar variáveis, como $1
em vez de valores reais. Essa declaração preparada será salva durante a sessão atual. Observe que os nomes dos planos não diferenciam maiúsculas de minúsculas.
PREPARE {PLAN_NAME} AS {SELECT_QUERY}
PREPARE test AS SELECT * FROM table WHERE country = $1 AND city = $2;
Este query SQL usa a instrução preparada que foi criada anteriormente.
EXECUTE {PLAN_NAME}('{PARAMETERS}')
EXECUTE test('canada', 'vancouver');
Este query SQL é usado para excluir a instrução preparada nomeada.
DEALLOCATE {PLAN_NAME}
DEALLOCATE test;
Inicialmente, você pode ter um query SQL, como o abaixo:
SELECT * FROM table WHERE id >= 10000 AND id <= 10005;
O query SQL acima retornará a seguinte resposta:
id | nome | sobrenome | data de nascimento | city | país | |
---|---|---|---|---|---|---|
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 | 1999-11-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 |
Este query SQL pode ser parametrizado 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 for chamado, você verá exatamente os mesmos resultados de antes:
id | nome | sobrenome | data de nascimento | city | país | |
---|---|---|---|---|---|---|
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 | 1999-11-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 |
Depois de terminar de usar a declaração preparada, você pode desalocá-la usando a seguinte chamada:
DEALLOCATE getIdRange;