Example: Creating a Procedure that Consumes a Queue Table - Teradata Vantage - Analytics Database

SQL Data Definition Language Syntax and Examples

Deployment
VantageCloud
VantageCore
Edition
VMware
Enterprise
IntelliFlex
Product
Analytics Database
Teradata Vantage
Release Number
17.20
Published
June 2022
ft:locale
en-US
ft:lastEdition
2025-11-22
dita:mapPath
jco1628111346878.ditamap
dita:ditavalPath
qkf1628213546010.ditaval
dita:id
mdr1472255012272
lifecycle
latest
Product Category
Teradata Vantage™

The following procedure consumes a shopping cart queue table row that returns the three variables sp_ordernum, sp_product, and sp_quantity:

    CREATE PROCEDURE consumecart(OUT sp_ordernum CHARACTER(15), 
                        OUT sp_product  CHARACTER(30), 
                                 OUT sp_quantity INTEGER) 
    BEGIN 
    SELECT AND CONSUME TOP 1 ordernum, product, quantity INTO 
     :sp_ordernum, :sp_product, :sp_quantity FROM shoppingcart;
    END;

The system retrieves the queue table row at the top of the FIFO queue from a single AMP and deletes it from the shoppingcart table.

The row was consumed first because it had been in the queue for the longest duration as determined by its QITS value being the oldest of all rows in the queue. The system builds the response row as specified in the expression list and returns it to the requestor in variables.