Oracle AQ ʹÓÃ
Ëæ×Ų»Í¬Ó¦ÓÃÄ£¿é¼äµÄÏûÏ¢½»»¥ºÍͨÐųÉΪһ¸ö¹Ø¼üµÄ¹¦ÄÜ£¬²¢ÇÒ±äµÃÔ½À´Ô½ÖØÒª¡£OracleÒýÈëÁËÒ»ÖÖÇ¿´óµÄ¶ÓÁлúÖÆ£¬Í¨¹ýËü³ÌÐò¼ä¿ÉÒÔʵÏÖÐÅÏ¢µÄ½»»¥£¬oracle°ÑËü³Æ×÷ΪAQ - Advanced Queuing. ʹÓÃOracle AQ£¬ÎÒÃDz»ÐèÒª°²×°¶îÍâµÄÖмä¼þ£¬ËüÊÇOracleÊý¾Ý¿âµÄÒ»¸ö¹¦ÄÜ×é¼þ£¬Ö»ÒªÄã°²×°ÁËOracle Êý¾Ý¿â¾Í¿ÉÒÔʹÓÃAQÁË¡£½ÓÏÂÀ´·ÖÁ½²¿·ÖÀ´½éÉÜAQµÄʹÓã¬Ê¹ÓÃ֮ǰÎÒÃÇÒª´´½¨QUEUE.
ÎÒÃÇ´´½¨Ò»¸ö×Ô¼ºµÄAQµÄ¹ÜÀí½ÇÉ« "my_aq_adm_role" ºÍ¹ÜÀíÓû§"aqadm"£¬ÔÙ°ÑOracle AQ ¹ÜÀí½ÇÉ« "aq_adminstrator_role" ÊÚȨ¸ø"my_aq_adm_role".
CREATE ROLE my_aq_adm_role;
GRANT aq_adminsistator_role TO my_aq_adm_role
´´½¨Ò»¸öÓû§µÄ½ÇÉ« "my_aq_user_role" ºÍ ÆÕͨÓû§"aquser" ,ÔÙ°ÑOracle AQµÄÓû§½ÇÉ«"aq_user_role"ºÍһЩ»ù±¾²Ù×÷ÐèÒªµÄϵͳȨÏÞÊÚȨ¸ø "my_aq_adm_role"
CREATE ROLE my_aq_user_role;
GRANT CREATE session, aq_user_role TO my_aq_user_role;
EXEC DBMS_AQADM.GRANT_SYSTEM_PRIVILEGE(
privilege => 'ENQUEUE_ANY',
grantee => 'my_aq_user_role',
admin_option => FALSE);
EXEC DBMS_AQADM.GRANT_SYSTEM_PRIVILEGE(
privilege => 'DEQUEUE_ANY',
grantee => 'my_aq_user_role',
admin_option = 'FALSE');
ÏÖÔÚÎÒÃÇ´´½¨ AQ¹ÜÀíÓû§
CREATE USER aqadm IDENTIFIED BY aqadm
DEFAULT TABLESPACE elathen
TEMPORARY TABLESPACE temp;
GRANT my_aq_adm_role TO aqadm;
GRANT connect, resource TO aqadm; ----×¢Ò⣬resource½Çɫһ¶¨ÒªÊÚ¸øuser,Èç¹ûresource½ÇÉ«ÊÚȨ¸ø
my_aq_adm_role, user½«»áʧȥ unlimited tablespace ȨÏÞ
½Ó×ÅΪÎÒÃÇÏÂÃæexample´´½¨ÆÕͨÓû§
CREATE USER aquser IDENTIFIED BY aquser
DEFAULET TABLESPACE elathen
TEMPORARY TABLESPACE temp;
GRANT my_aq_user_role TO aquser;
ÎÒÃǽ«ÔÚÎÒÃǵÚÒ»¸öqueueÖÐʹÓÃobject type¶ø²»ÊÇNUMBER or VARCHAR2×÷Ϊpayload£¬ÕâʹÎÒÃǸüÌù½üʵ¼ÊÓ¦Óá£(payloadÊÇÈκÎÏûÏ¢¶¼Ê¹ÓõÄÒ»ÖÖÊý¾ÝÀàÐͺͽṹ).
ÉÏÃæ×öµÄ¹¤×÷¶¼ÐèÒªÔÚDBAµÄȨÏÞÏÂ×ö£¬ÏÖÔÚÎÒÃÇÇл»µ½AQ¹ÜÀíÔ±
CONNECT aqadm/aqadm
CREATE TYPE queue_message_type AS OBJECT(
no NUBER,
title VARCHAR2(30),
text VARCHAR2(2000));
/
GRANT EXECUTE ON queue_message_type TO my_aq_user
Ïà¹ØÎĵµ£º
ѧϰOracle DBAÒ²°ë¸ö¶àѧÆÚÁË£¬½ñÌìÃÍÈ»²Å·¢ÏÖ£¬ÔÀ´ÎÒµÄÊ黹ÊǺÜеģ¬ÉϿβÙ×÷ʱºòÒ²Ö»ÊÇÖªµÀ´ó¸ÅÔõô×ö£¬µ«ÊÇÒªÕæµÄÈ«²¿×Ô¼º×ö£¬¶ø²»È¥·Ê黹ÊÇÓÐÒ»¶¨µÄÄѶȵģ¬ËùÒÔÄØ£¬½ñÌ쿪ʼ½«DBA´ÓÍ·¸´Ï°Ò»±é£¬Í¬Ê±ÔÙ²Ù×÷Ò»±é¡£
µÚÒ»Õ£¬Ñ§µÄÊÇOracleµÄÌåϵ½á¹¹£ ......
½ñÌìÓÐͬÊ´òµç»°ÒªÇóÒª°Ñoracle¿âÀïµÄÒ»ÕűíµÄ¶¨Òåµ¼³ö¸ösqlÎļþ£¬µ±Ê±µÄµÚÒ»·´Ó¦¾ÍÊÇÒª½ÌËûÓÃexp/impÀ´»ñµÃ±í½á¹¹¶¨ÒåÎļþ£¬Ôڵ绰ÀïÃæËµÁ˰ëÌ컹ÊÇûÄ̻ܽáËû£¬Ö»ºÃÅÜÁËÒ»ÌË»ú·¿¡£Â·ÉϾÍÔÚÏ룬oracleÕæÊÇÌÖÑᣬΪʲô²»ÔÚÆóÒµ¹ÜÀíÆ÷ÀïÖ±½Ó¼ÓÉϸö±í½á¹¹µ¼³öµÄÑ¡Ï»¹Òªº¦ÎÒÕâôÅÜÒ»ÌË£¬ÕæÊÇ@@#!!@!#@@@@
ÎÊÁËÏÂÒªµ¼³öÄÄ ......
1.ÒÔsysÓû§µÇ¼oracle
2.²éÕÒÄãÒª¸ü¸ÄµÄ±í£¬ÎÒÃÇ“TEST”ÖеēAAA”±íΪÁУ¬×¢Ò⣬ÔÚoracleÖУ¬±íºÍ¿Õ¼ä¶¼ÊÇÒÔ´óд×ÖĸÏÔʾµÄ£¬ËùÒÔÕâÀï¶¼ÒªÓôó×Ö×Öĸ
Ö´ÐÐ
select object_id from all_objects where owner='TEST' and object_name='AAA';
»áµÃµ½Ò»¸öobject_id,Õâ¾ÍÊÇÎÒÃÇÐèÒª¸ü¸Ä±íµÄid£¬ÎÒÃÇÒ ......
ÎÊÌâÒ»£ºÈç±£¼ÓÔØJDBCÇý¶¯³ÌÐò£º
¡¡¡¡Õý³£ÎÒÃǼÓÔØÇý¶¯³ÌÐòÓÐÈý¸ö;¾¶£º
¡¡¡¡1£©Class.forName(String)ÕâÏëµ±ÓÚclassLoaderÒ»¸öStringÖ¸¶¨µÄÀ࣬ÔÚ×°ÔØÊ±°Ñ¸ÃÇý¶¯³ÌÐòµÄ¾²Ì¬ÄÚÈݶ¼³õʼ»¯£¬ÆäʵÕâʱÇý¶¯³ÌÐòÀàµ÷ÓÃÁËDriverManager.registerDriver(driver)·½·¨
¡¡¡¡2£©Ê¹ÓÃϵͳÊôÐÔ£ºSystem.getProperty().load(new Fil ......
ORA-00604 error occurred at recursive SQL level string
Cause:An error occurred while processing a recursive SQL statement (a statement applying to internal dictionary tables).
Action:If the situation described in the next error on the stack can be corrected, do so; otherwise contact Oracle Custome ......