DEV Community

Query Filter
Query Filter

Posted on

rebuild2

rebuild_indexes_for_table() {
local tablename="$1"
sqlplus -s "$ORACLE_USER/$ORACLE_PASS@$ORACLE_SID" <<EOF
WHENEVER SQLERROR EXIT SQL.SQLCODE
SET SERVEROUTPUT ON
DECLARE
v_sql VARCHAR2(1000);
BEGIN
FOR r IN (
SELECT INDEX_NAME
FROM USER_INDEXES
WHERE TABLE_NAME = UPPER('$tablename')
AND INDEX_TYPE NOT IN ('LOB', 'DOMAIN')
AND INDEX_NAME NOT LIKE 'SYS_IL%'
AND INDEX_NAME NOT LIKE 'SYS_IOT_OVER_%'
AND INDEX_NAME NOT LIKE 'SYS_C%'
)
LOOP
v_sql := 'ALTER INDEX "' || r.INDEX_NAME || '" REBUILD';
DBMS_OUTPUT.PUT_LINE(v_sql);
EXECUTE IMMEDIATE v_sql;
END LOOP;
END;
/
EXIT
EOF
}

Top comments (0)