CREATE INDEX我們有表所有者名稱和索引所有者名稱不匹配。我們需要刪除索引以及與其相關的約束,並在特定模式中重新創建索引以匹配索引所有者和表所有者名稱。我們有不同的列數,每個索引從1到4不等。 我需要創建一個同時刪除n個重新創建的過程。DROP,並在同一時間
declare
total number(10);
table_name varchar2(255);
index_name varchar2(255);
column_name varchar2(255);
begin
select a.table_name, a.index_name,count(a.column_name) into table_name, index_name,total
from all_ind_columns a, all_indexes b where a.index_name = b.index_name
and b.table_owner = 'SIM'and b.owner like 'TIM'
group by a.table_name,a.index_name
order by a.table_name,a.index_name,count(a.column_name);
select c.column_name into column_name from all_ind_columns c,all_indexes d
where c.index_name=d.index_name
and d.table_owner='SIM' and d.owner like 'TIM';
for i in (select a.table_name, a.index_name,count(a.column_name) from all_ind_columns a, all_indexes b where a.index_name = b.index_name
and b.table_owner = 'SIM'and b.owner like 'TIM'
group by a.table_name,a.index_name
order by a.table_name,a.index_name,count(a.column_name))
loop
If i.count(a.column_name)=1 then
DBMS_OUTPUT.PUT_LINE ('Create index'||index_name|| 'on' ||table_name||'('||Column_name||')');
else total>=2
then
DBMS_OUTPUT.PUT_LINE ('Create index'||index_name|| 'on' ||table_name||'('||Column_name,Column_name||')');
end if;
end loop;
end;
這是什麼問題? – DoctorMick 2014-12-05 14:34:31