📄 create_bz_schema.lst
字号:
SQL> SQL> REM =======================================================SQL> REM CREATE USERsSQL> REM The user is assigned tablespaces and quota in separateSQL> REM ALTER USER statements so that the CREATE USER statementSQL> REM will succeed even if the &tbs and temp tablespaces doSQL> REM not exist.SQL> REM =======================================================SQL> SQL> REM =======================================================SQL> REM Create a common admin account for all AQ DemoSQL> REM =======================================================SQL> SQL> CREATE USER bz_adm IDENTIFIED BY &bz_adm_pass;User created.SQL> ALTER USER bz_adm DEFAULT TABLESPACE &tbs QUOTA UNLIMITED ON &tbs;User altered.SQL> ALTER USER bz_adm TEMPORARY TABLESPACE &ttbs;User altered.SQL> SQL> REM ALTER USER bz_adm DEFAULT TABLESPACE &tbs QUOTA ON &tbs UNLIMITED;SQL> REM ALTER USER bz_adm TEMPORARY TABLESPACE &ttbs;SQL> SQL> GRANT ALTER SESSION TO bz_adm;Grant succeeded.SQL> GRANT CREATE CLUSTER TO bz_adm;Grant succeeded.SQL> GRANT CREATE DATABASE LINK TO bz_adm;Grant succeeded.SQL> GRANT CREATE SEQUENCE TO bz_adm;Grant succeeded.SQL> GRANT CREATE SESSION TO bz_adm;Grant succeeded.SQL> GRANT CREATE SYNONYM TO bz_adm;Grant succeeded.SQL> GRANT CREATE TABLE TO bz_adm;Grant succeeded.SQL> GRANT CREATE VIEW TO bz_adm;Grant succeeded.SQL> GRANT CREATE CLUSTER TO bz_adm;Grant succeeded.SQL> GRANT CREATE INDEXTYPE TO bz_adm;Grant succeeded.SQL> GRANT CREATE OPERATOR TO bz_adm;Grant succeeded.SQL> GRANT CREATE PROCEDURE TO bz_adm;Grant succeeded.SQL> GRANT CREATE SEQUENCE TO bz_adm;Grant succeeded.SQL> GRANT CREATE TABLE TO bz_adm;Grant succeeded.SQL> GRANT CREATE TRIGGER TO bz_adm;Grant succeeded.SQL> GRANT CREATE TYPE TO bz_adm;Grant succeeded.SQL> GRANT aq_administrator_role TO bz_adm;Grant succeeded.SQL> GRANT EXECUTE ON dbms_aq TO bz_adm;Grant succeeded.SQL> GRANT EXECUTE ON dbms_aqadm TO bz_adm;Grant succeeded.SQL> SQL> SQL> REM =======================================================SQL> REM Create a user account for schema bzSQL> REM =======================================================SQL> SQL> CREATE USER bz IDENTIFIED BY &bz_pass;User created.SQL> GRANT CREATE SESSION TO bz;Grant succeeded.SQL> SQL> GRANT EXECUTE ON dbms_aq to bz;Grant succeeded.SQL> GRANT ExECUTE ON dbms_aqadm to bz;Grant succeeded.SQL> GRANT aq_user_role to bz;Grant succeeded.SQL> SQL> REM =======================================================SQL> REM Set AQ system parameters - JOB_QUEUE_PROCESSES andSQL> REM AQ_TM_PROCESSESSQL> REM =======================================================SQL> declare 2 n number; 3 begin 4 select value into n from v$parameter where name = 'job_queue_processes'; 5 if (n = 0) then 6 execute immediate 'alter system set job_queue_processes = 2'; 7 end if; 8 select value into n from v$parameter where name = 'aq_tm_processes'; 9 if (n = 0) then 10 execute immediate 'alter system set aq_tm_processes = 2'; 11 end if; 12 end; 13 /PL/SQL procedure successfully completed.SQL> REM =======================================================SQL> REM Create objects - message, queuetable, queueSQL> REM =======================================================SQL> SQL> CONNECT bz_adm/&bz_adm_passConnected.SQL> @@bz_cr_msgtyp.sqlSQL> REM script name: bz_cr_msgtyp.sqlSQL> REM creates the bzcardorder_typ Object typeSQL> REMSQL> REM version: 9iSQL> SQL> REM =======================================================SQL> REM cleanup sectionSQL> REM =======================================================SQL> SQL> DROP TYPE bzcardorder_typ;DROP TYPE bzcardorder_typ*ERROR at line 1:ORA-04043: object BZCARDORDER_TYP does not exist SQL> SQL> REM =======================================================SQL> REM Creates the bzcardorder_type. Users using this type wouldSQL> REM need execute privilege on this typeSQL> REM =======================================================SQL> SQL> CREATE OR REPLACE TYPE bzcardorder_typ AS OBJECT ( 2 employee_id NUMBER(6), 3 first_name VARCHAR2(20), 4 last_name VARCHAR2(25), 5 ordtyp VARCHAR(10)); 6 /Type created.SQL> @@bz_cr_q.sqlSQL> REM script name: bz_cre.sqlSQL> REM Creates queue tables, queues - bzcardorders_qSQL> REM Starts the queueSQL> REMSQL> REM version: 9iSQL> REMSQL> SQL> REM =======================================================SQL> REM cleanup sectionSQL> REM =======================================================SQL> BEGIN 2 dbms_aqadm.stop_queue(queue_name => 'bzcardorders_q'); 3 dbms_aqadm.drop_queue ( 4 queue_name => 'bzcardorders_q'); 5 dbms_aqadm.drop_queue_table ( 6 queue_table => 'bzcardorders_qt'); 7 END; 8 /BEGIN*ERROR at line 1:ORA-24010: QUEUE BZ_ADM.BZCARDORDERS_Q does not exist ORA-06512: at "SYS.DBMS_AQADM_SYS", line 3125 ORA-06512: at "SYS.DBMS_AQADM", line 237 ORA-06512: at line 2 SQL> SQL> REM =======================================================SQL> REM Create queue tables, queues for BZADMSQL> REM =======================================================SQL> SQL> execute dbms_aqadm.create_queue_table( -> queue_table => 'bzcardorders_qt', -> comment => 'Business Card Orders queue table', -> multiple_consumers => true, -> queue_payload_type => 'bzcardorder_typ',-> primary_instance => 1,-> secondary_instance => 2);PL/SQL procedure successfully completed.SQL> SQL> SQL> REM =======================================================SQL> REM Create a queueSQL> REM =======================================================SQL> BEGIN 2 dbms_aqadm.create_queue ( 3 queue_name => 'bzcardorders_q', 4 queue_table => 'bzcardorders_qt'); 5 END; 6 /PL/SQL procedure successfully completed.SQL> SQL> REM =======================================================SQL> REM start queueSQL> REM =======================================================SQL> BEGIN 2 dbms_aqadm.start_queue ( 3 queue_name => 'bzcardorders_q'); 4 END; 5 /PL/SQL procedure successfully completed.SQL> SQL> REM Grant required privileges to user bz to perform AQ operationsSQL> @@bz_priv.sqlSQL> REM script name: bz_priv.sqlSQL> REM grants privileges to enqueue and dequeue to user bzSQL> REMSQL> REM version: 9.0.1SQL> REMSQL> SQL> REM ========================================================SQL> REM Grant Enqueue and Dequeue privilege on bzcardorders_q to queueSQL> REM to bz userSQL> REM ========================================================SQL> SQL> grant execute on bzcardorder_typ to bz;Grant succeeded.SQL> SQL> begin 2 dbms_aqadm.grant_queue_privilege(privilege => 'ALL', 3 queue_name => 'bzcardorders_q', 4 grantee => 'bz', 5 grant_option => TRUE); 6 end; 7 /PL/SQL procedure successfully completed.SQL> SQL> CONNECT bz_adm/&bz_adm_passConnected.SQL> @@bz_add_subscriber.sqlSQL> REM script name: bz_add_subscriber.sqlSQL> REM This script adds a subscriber to bzcardorders_qSQL> REMSQL> REM version: 9iSQL> SQL> REM =======================================================SQL> REM cleanup sectionSQL> REM =======================================================SQL> execute dbms_aqadm.remove_subscriber ( -> queue_name => 'BZCARDORDERS_Q', -> subscriber => sys.aq$_agent('SHIPPING',null,null)-> );BEGIN dbms_aqadm.remove_subscriber ( queue_name => 'BZCARDORDERS_Q', subscriber => sys.aq$_agent('SHIPPING',null,null) ); END;*ERROR at line 1:ORA-24035: AQ agent SHIPPING is not a subscriber for queue BZ_ADM.BZCARDORDERS_Q ORA-06512: at "SYS.DBMS_AQADM_SYS", line 4475 ORA-06512: at "SYS.DBMS_AQADM", line 387 ORA-06512: at line 1 SQL> SQL> execute dbms_aqadm.remove_subscriber ( -> queue_name => 'BZCARDORDERS_Q', -> subscriber => sys.aq$_agent('BILLING',null,null)-> );BEGIN dbms_aqadm.remove_subscriber ( queue_name => 'BZCARDORDERS_Q', subscriber => sys.aq$_agent('BILLING',null,null) ); END;*ERROR at line 1:ORA-24035: AQ agent BILLING is not a subscriber for queue BZ_ADM.BZCARDORDERS_Q ORA-06512: at "SYS.DBMS_AQADM_SYS", line 4475 ORA-06512: at "SYS.DBMS_AQADM", line 387 ORA-06512: at line 1 SQL> SQL> execute dbms_aqadm.remove_subscriber ( -> queue_name => 'BZCARDORDERS_Q', -> subscriber => sys.aq$_agent('RUSH_ORDER',null,null)-> );BEGIN dbms_aqadm.remove_subscriber ( queue_name => 'BZCARDORDERS_Q', subscriber => sys.aq$_agent('RUSH_ORDER',null,null) ); END;*ERROR at line 1:ORA-24035: AQ agent RUSH_ORDER is not a subscriber for queue BZ_ADM.BZCARDORDERS_Q ORA-06512: at "SYS.DBMS_AQADM_SYS", line 4475 ORA-06512: at "SYS.DBMS_AQADM", line 387 ORA-06512: at line 1 SQL> REM =======================================================SQL> REM Add subscriber 'SHIPPING'and 'BILLING' to BZCARDORDERS_QSQL> REM =======================================================SQL> execute dbms_aqadm.add_subscriber ( -> queue_name => 'BZCARDORDERS_Q', -> subscriber => sys.aq$_agent('SHIPPING',null,null)-> );PL/SQL procedure successfully completed.SQL> SQL> quit;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -