O primeiro parâmetro de PASSTHRU deve ser uma expressão ESQL válida que contenha a sintaxe do banco de dados. PASSTHRU permite utilizar sintaxe de banco de dados normalmente não suportada por ESQL.
O comportamento da função PASSTHRU depende se você forneceu um, dois ou mais parâmetros. O primeiro parâmetro da função PASSTHRU deve sempre ser uma expressão ESQL que esteja ou avalie em uma cadeia. Utilize pontos de interrogação na cadeia para estipular o local onde uma substituição de parâmetros é necessária.
Se você transmitir outros dois ou mais parâmetros, cada parâmetro será ligado ao ponto de interrogação correspondente na cadeia da instrução: ou seja, o primeiro parâmetro é ligado ao primeiro ponto de interrogação, o segundo parâmetro é ligado ao segundo ponto de interrogação e assim por diante.
SET OutputRoot.XML.Result.Data[] = PASSTHRU('SELECT * FROM user1.stocktable em que time=TIMESTAMP(CAST(? as TIMESTAMP)),'1999-12-31-23.59.59.999999');
SET OutputRoot.XML.Result.Data[] = PASSTHRU('SELECT * FROM user1.stocktable');
PASSTHRU('DELETE FROM user2.AccountData WHERE AccountId = ?', InputBody.Data.Account.Id);
SET OutputRoot.XML.Result.Data = PASSTHRU('SELECT AccountNum FROM user2.AccountData WHERE AccountId = ?', InputBody.Data.Account.Id);
SET OutputRoot.XML.Result.Data[] = PASSTHRU('SELECT AccountNum FROM user2.AccountData WHERE AccountId IN (? , ? , ?)', InputBody.Data.Account.Id[]);
PASSTHRU('INSERT INTO user1.stocktable (stock_id, quantity) values (?, ?)', InputBody.Transaction.Id, InputBody.Transaction.Quantity);
PASSTHRU('INSERT INTO user1.stocktable VALUES (1)');No entanto, se uma variável for primeiro definida e depois citada na instrução PASSTHRU, omita as aspas. Por exemplo:
SET myVar = 'SELECT * FROM user1.stocktable'; SET OutputRoot.XML.Data[] = PASSTHRU(myVar);
call procedure-name [([parameter][,[parameter]]...)]}
Somente a seqüência de escape descrita acima é suportada para os parâmetros de entrada da função PASSTHRU em .
PASSTHRU('{call proc_insert_comp(?,?) }',InputBody.Test.Company,InputBody.Test.Price);
PASSTHRU('{call share_management.add_share(?,?)}', InputBody.Test.Company,InputBody.Test.Price);
Se um fluxo de mensagens for consolidado ou revertido, as operações do banco de dados serão consolidadas ou revertidas. Isso é coerente com o comportamento dos nós Database e Warehouse, que têm uma propriedade de transação automática.
Mesmo que um fluxo de mensagens seja revertido, as operações do banco de dados são consolidadas. Isso é coerente com o comportamento dos nós Database e Warehouse, que têm uma propriedade de transação consolidar.
Para obter informações adicionais sobre transações coordenadas, consulte Configurando Fluxos de Mensagens Coordenados.
PASSTHRU('{call proc_delete_comp(?)}',InputBody.Test.Company);
Conceitos relacionados
ESQL
Tarefas relacionadas
Desenvolvendo ESQL
Chamando Procedimentos Armazenados
Referências relacionadas
Instrução CALL
Instrução CREATE PROCEDURE
Avisos |
Marcas |
Downloads |
Biblioteca |
Suporte |
Feedback
![]() ![]() |
ak05100_ |