begin
declare
table_ VARCHAR(200) DEFAULT 'ETL_TASK_DEBUG_LOG';
USER_ VARCHAR(200) DEFAULT 'APP';
base clob;
end_ int;
a int;
MPP_COL VARCHAR(50);
ERR INT DEFAULT 0;
kuo varchar(2) default '';
BEGIN
dbms_metadata.set_transform_parAm(DBMS_METADATA.SESSION_TRANSFORM,'SEGMENT_ATTRIBUTES',FALSE);
dbms_metadata.set_transform_parAm(DBMS_METADATA.SESSION_TRANSFORM,'PARTITIONING',FALSE);
dbms_metadata.set_transform_parAm(DBMS_METADATA.SESSION_TRANSFORM,'CONSTRAINTS',FALSE);
dbms_metadata.set_transform_parAm(DBMS_METADATA.SESSION_TRANSFORM,'REF_CONSTRAINTS',FALSE);
FOR RS IN(
--在这里定义我们要导出的表,执行这个存储过程;会print出涉及到的表上的所有索引定义
select * from all_indexes where owner||'.'||table_name in ('username.tablename',
'username.tablename')
) LOOP
TABLE_ :=RS.index_NAME;
USER_ :=RS.OWNER;
begin
--DBMS_OUTPUT.PUT_LINE('--start');
SELECT DBMS_METADATA.GET_DDL('INDEX',table_,user_) into base FROM DUAL ;
dbms_output.put_line(REPLACE(REPLACE(base,'\n',''),'\r','')||' online;');
EXCEPTION WHEN OTHERS then
DBMS_OUTPUT.PUT_LINE('------>');
DBMS_OUTPUT.PUT_LINE(TABLE_||'__'||user_);
DBMS_OUTPUT.PUT_LINE(sqlcode||'__'||sqlerrm);
DBMS_OUTPUT.PUT_LINE(dbms_utility.format_error_backtrace);
ERR:=ERR+1;
DBMS_OUTPUT.PUT_LINE('<------');
end;
END LOOP;
DBMS_OUTPUT.PUT_LINE('--ERR: '||ERR);
END;
end;
文章
阅读量
获赞