PL/SQL 对AQ 进行enqueue操作样例

DECLARE 

    text        varchar2(32767); 
    agent       sys.aq$_agent   := sys.aq$_agent(' ', null, 0); 
    message     sys.aq$_jms_text_message; 

    enqueue_options    dbms_aq.enqueue_options_t; 
    message_properties dbms_aq.message_properties_t; 

    msgid               raw(16); 

BEGIN 

    message := sys.aq$_jms_text_message.construct; 
    message_properties.expiration :=5;
    message.set_replyto(agent); 
    message.set_type('tkaqpet2'); 
    message.set_userid('test'); 

    message.set_groupseq(1); 


    message.set_boolean_property('import', True); 
    message.set_string_property('color', 'RED'); 
    message.set_short_property('year', 1999); 
    message.set_long_property('mileage', 300000); 
    message.set_double_property('price', 16999.99); 
    message.set_byte_property('password', 127); 

    FOR i IN 1..5 LOOP 
        text := CONCAT (text, '1234567890'); 
    END LOOP; 

    message.set_text(text); 

    dbms_aq.enqueue(queue_name => 'test.test1', 
                       enqueue_options => enqueue_options, 
                       message_properties => message_properties, 
                       payload => message, 
                       msgid => msgid); 

END;

你可能感兴趣的:(sql,jms)