@hubery
OK~!我明白了,查了下資料,原來是需要給用戶授予一個角色:
SQL> grant EXECUTE_CATALOG_ROLE to hubery;
授權成功。
我使用其他自己創建的用戶則報:
SQL> exec dbms_redefinition.can_redef_table(user,'t',dbms_redefinition.cons_use_pk);
BEGIN dbms_redefinition.can_redef_table(user,'t',dbms_redefinition.cons_use_pk); END;
*
第 1 行出現錯誤:
ORA-06550: 第 1 行, 第 50 列:
PLS-00201: 必須聲明標識符 'DBMS_REDEFINITION'
ORA-06550: 第 1 行, 第 7 列:
PL/SQL: Statement ignored
弱弱的問下,這個例子是在什么用戶下操作的,我用sysdba用戶操作了報錯:
SQL> exec dbms_redefinition.can_redef_table(user,'t',dbms_redefinition.cons_use_pk);
BEGIN dbms_redefinition.can_redef_table(user,'t',dbms_redefinition.cons_use_pk); END;
*
第 1 行出現錯誤:
ORA-12087: 在 "SYS" 擁有的表上不允許聯機重新定義
ORA-06512: 在 "SYS.DBMS_REDEFINITION", line 137
ORA-06512: 在 "SYS.DBMS_REDEFINITION", line 1478
ORA-06512: 在 line 1
很好,贊一個!
老大說了看到好文要評論,更好贊一個!