Advertisement
sarkozi_dori

online_redef_11204

May 5th, 2016
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.13 KB | None | 0 0
  1. SQL> create user dorothy account unlock identified by oracle;
  2.  
  3. User created.
  4.  
  5. SQL> grant connect to dorothy;
  6.  
  7. Grant succeeded.
  8.  
  9. SQL> grant create session to dorothy;
  10.  
  11. Grant succeeded.
  12.  
  13. SQL> conn dorothy
  14. Enter password:
  15. Connected.
  16. SQL> CREATE TABLE redef_tab (
  17. id NUMBER,
  18. description VARCHAR2(50),
  19. CONSTRAINT redef_tab_pk PRIMARY KEY (id)
  20. ); 2 3 4 5
  21.  
  22. Table created.
  23.  
  24. SQL> insert into redef_tab values(123,'valami');
  25.  
  26. 1 row created.
  27.  
  28. SQL> insert into redef_tab values(321,'lol');
  29.  
  30. 1 row created.
  31.  
  32. SQL> CREATE VIEW redef_tab_v AS
  33. SELECT * FROM redef_tab; 2
  34.  
  35. View created.
  36.  
  37. SQL> CREATE SEQUENCE redef_tab_seq;
  38.  
  39. Sequence created.
  40.  
  41. SQL> CREATE OR REPLACE PROCEDURE get_description (
  42. p_id IN redef_tab.id%TYPE,
  43. p_description OUT redef_tab.description%TYPE) AS
  44. BEGIN
  45. SELECT description
  46. INTO p_description
  47. FROM redef_tab
  48. WHERE id = p_id;
  49. END;
  50. / 2 3 4 5 6 7 8 9 10
  51.  
  52. Procedure created.
  53.  
  54. SQL> CREATE OR REPLACE TRIGGER redef_tab_bir
  55. BEFORE INSERT ON redef_tab
  56. FOR EACH ROW
  57. WHEN (new.id IS NULL)
  58. BEGIN
  59. :new.id := redef_tab_seq.NEXTVAL;
  60. END;
  61. / 2 3 4 5 6 7 8
  62.  
  63. Trigger created.
  64.  
  65. SQL> COLUMN object_name FORMAT A20
  66. SELECT object_name, object_type, status FROM user_objects ORDER BY object_name;SQL>
  67.  
  68. OBJECT_NAME OBJECT_TYPE STATUS
  69. -------------------- ------------------- -------
  70. GET_DESCRIPTION PROCEDURE VALID
  71. REDEF_TAB TABLE VALID
  72. REDEF_TAB_BIR TRIGGER VALID
  73. REDEF_TAB_PK INDEX VALID
  74. REDEF_TAB_SEQ SEQUENCE VALID
  75. REDEF_TAB_V VIEW VALID
  76.  
  77. 6 rows selected.
  78.  
  79. SQL> exit
  80. Disconnected from Oracle Database 11g Release 11.2.0.4.0 - 64bit Production
  81. [oracle@localhost dbhome_2]$ sqlplus / as sysdba
  82.  
  83. SQL*Plus: Release 11.2.0.4.0 Production on Thu May 5 12:07:31 2016
  84.  
  85. Copyright (c) 1982, 2013, Oracle. All rights reserved.
  86.  
  87.  
  88. Connected to:
  89. Oracle Database 11g Release 11.2.0.4.0 - 64bit Production
  90.  
  91. SQL> conn sys as sysdba
  92. Enter password:
  93. Connected.
  94. SQL> EXEC DBMS_REDEFINITION.can_redef_table('DOROTHY', 'REDEF_TAB');
  95.  
  96. PL/SQL procedure successfully completed.
  97.  
  98. SQL> CREATE TABLE dorothy.redef_tab2 AS
  99. SELECT *
  100. FROM dorothy.redef_tab WHERE 1=2; 2 3
  101.  
  102. Table created.
  103.  
  104. SQL> ALTER SESSION FORCE PARALLEL DML PARALLEL 8;
  105.  
  106. Session altered.
  107.  
  108. SQL> ALTER SESSION FORCE PARALLEL QUERY PARALLEL 8;
  109.  
  110. Session altered.
  111.  
  112. SQL> EXEC DBMS_REDEFINITION.start_redef_table('DOROTHY', 'REDEF_TAB', 'REDEF_TAB2');
  113.  
  114. PL/SQL procedure successfully completed.
  115.  
  116. SQL> EXEC DBMS_REDEFINITION.sync_interim_table('DOROTHY', 'REDEF_TAB', 'REDEF_TAB2');
  117.  
  118. PL/SQL procedure successfully completed.
  119.  
  120. SQL> ALTER TABLE dorothy.redef_tab2 ADD (CONSTRAINT redef_tab2_pk PRIMARY KEY (id));
  121.  
  122. Table altered.
  123.  
  124. SQL> EXEC DBMS_REDEFINITION.finish_redef_table('DOROTHY', 'REDEF_TAB', 'REDEF_TAB2');
  125.  
  126. PL/SQL procedure successfully completed.
  127.  
  128. SQL> DROP TABLE dorothy.redef_tab2;
  129.  
  130. Table dropped.
  131.  
  132. SQL> ALTER TABLE dorothy.redef_tab RENAME CONSTRAINT redef_tab2_pk TO redef_tab_pk;
  133.  
  134. Table altered.
  135.  
  136. SQL> disconn
  137. Disconnected from Oracle Database 11g Release 11.2.0.4.0 - 64bit Production
  138. SQL> conn dorothy
  139. Enter password:
  140. Connected.
  141. SQL> COLUMN object_name FORMAT A20
  142. SQL> SELECT object_name, object_type, status FROM user_objects ORDER BY object_name;
  143.  
  144. OBJECT_NAME OBJECT_TYPE STATUS
  145. -------------------- ------------------- -------
  146. GET_DESCRIPTION PROCEDURE VALID
  147. REDEF_TAB TABLE VALID
  148. REDEF_TAB2_PK INDEX VALID
  149. REDEF_TAB_SEQ SEQUENCE VALID
  150. REDEF_TAB_V VIEW VALID
  151.  
  152. --Hogy ne vesszen el a trigger:
  153.  
  154. SQL>
  155. SQL>
  156. SQL>
  157. SQL> CREATE OR REPLACE TRIGGER redef_tab_bir
  158. BEFORE INSERT ON redef_tab
  159. FOR EACH ROW
  160. WHEN (new.id IS NULL)
  161. BEGIN
  162. :new.id := redef_tab_seq.NEXTVAL;
  163. END;
  164. / 2 3 4 5 6 7 8
  165.  
  166. Trigger created.
  167.  
  168. SQL> disconn
  169. Disconnected from Oracle Database 11g Release 11.2.0.4.0 - 64bit Production
  170. SQL> conn sys as sysdba
  171. Enter password:
  172. Connected.
  173. SQL> EXEC DBMS_REDEFINITION.can_redef_table('DOROTHY', 'REDEF_TAB');
  174.  
  175. PL/SQL procedure successfully completed.
  176.  
  177. SQL> CREATE TABLE dorothy.redef_tab2 AS
  178. SELECT *
  179. FROM dorothy.redef_tab WHERE 1=2; 2 3
  180.  
  181. Table created.
  182.  
  183. SQL> ALTER SESSION FORCE PARALLEL DML PARALLEL 8;
  184.  
  185. Session altered.
  186.  
  187. SQL> ALTER SESSION FORCE PARALLEL QUERY PARALLEL 8;
  188.  
  189. Session altered.
  190.  
  191. SQL> EXEC DBMS_REDEFINITION.start_redef_table('DOROTHY', 'REDEF_TAB', 'REDEF_TAB2');
  192.  
  193. PL/SQL procedure successfully completed.
  194.  
  195. SQL> EXEC DBMS_REDEFINITION.sync_interim_table('DOROTHY', 'REDEF_TAB', 'REDEF_TAB2');
  196.  
  197. PL/SQL procedure successfully completed.
  198.  
  199. SQL> SET SERVEROUTPUT ON
  200. DECLARE
  201. l_num_errors PLS_INTEGER;
  202. BEGIN
  203. DBMS_REDEFINITION.copy_table_dependents(
  204. uname => 'DOROTHY',
  205. orig_table => 'REDEF_TAB',
  206. int_table => 'REDEF_TAB2',
  207. copy_indexes => 1, -- Default
  208. copy_triggers => TRUE, -- Default
  209. copy_constraints => TRUE, -- Default
  210. copy_privileges => TRUE, -- Default
  211. ignore_errors => FALSE, -- Default
  212. num_errors => l_num_errors,
  213. copy_statistics => FALSE, -- Default
  214. copy_mvlog => FALSE); -- Default
  215.  
  216. DBMS_OUTPUT.put_line('num_errors=' || l_num_errors);
  217. END;
  218. /SQL> 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
  219. num_errors=0
  220.  
  221. PL/SQL procedure successfully completed.
  222.  
  223. SQL> EXEC DBMS_REDEFINITION.finish_redef_table('DOROTHY', 'REDEF_TAB', 'REDEF_TAB2');
  224.  
  225. PL/SQL procedure successfully completed.
  226.  
  227. SQL> DROP TABLE dorothy.redef_tab2;
  228.  
  229. Table dropped.
  230.  
  231. SQL> disconn
  232. Disconnected from Oracle Database 11g Release 11.2.0.4.0 - 64bit Production
  233. SQL> conn dorothy
  234. Enter password:
  235. Connected.
  236. SQL> COLUMN object_name FORMAT A20
  237. SELECT object_name, object_type, status FROM user_objects ORDER BY object_name;SQL>
  238.  
  239. OBJECT_NAME OBJECT_TYPE STATUS
  240. -------------------- ------------------- -------
  241. GET_DESCRIPTION PROCEDURE VALID
  242. REDEF_TAB TABLE VALID
  243. REDEF_TAB2_PK INDEX VALID
  244. REDEF_TAB_BIR TRIGGER INVALID
  245. REDEF_TAB_SEQ SEQUENCE VALID
  246. REDEF_TAB_V VIEW INVALID
  247.  
  248. 6 rows selected.
  249.  
  250. SQL> ALTER TRIGGER redef_tab_bir COMPILE;
  251.  
  252. Trigger altered.
  253.  
  254. SQL> ALTER VIEW redef_tab_v COMPILE;
  255.  
  256. View altered.
  257.  
  258. SQL> COLUMN object_name FORMAT A20
  259. SELECT object_name, object_type, status FROM user_objects ORDER BY object_name;SQL>
  260.  
  261. OBJECT_NAME OBJECT_TYPE STATUS
  262. -------------------- ------------------- -------
  263. GET_DESCRIPTION PROCEDURE VALID
  264. REDEF_TAB TABLE VALID
  265. REDEF_TAB2_PK INDEX VALID
  266. REDEF_TAB_BIR TRIGGER VALID
  267. REDEF_TAB_SEQ SEQUENCE VALID
  268. REDEF_TAB_V VIEW VALID
  269.  
  270. 6 rows selected.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement