User Tools

Site Tools


dba:oracle:howtos:rename_table_mini-howto

[HOWTO] Rename a table in oracle

Descripción

Este procedimiento permite renombrar una tabla cuando:

RENAME TABLE1 TO TABLE2 ;

Falla, por ejemplo con ORA-03001: unimplemented feature.

Instrucciones

ALTER TABLE

Mediante un ALTER TABLE se puede hacer:

ALTER TABLE T1 RENAME TO T2 ;

Debería funcionar.

Crear el siguiente procedure

CREATE OR REPLACE PROCEDURE RENAME_OTHERS_TAB (ORIG_TAB_NAME IN VARCHAR2, NEW_TAB_NAME IN VARCHAR2)
AS
	LV_SQL_STR VARCHAR2(100);
	LV_EXISTS NUMBER(1);
	BEGIN
		SELECT COUNT(*) INTO LV_EXISTS FROM USER_TABLES WHERE TABLE_NAME=ORIG_TAB_NAME;
		IF LV_EXISTS = 1 THEN
			LV_SQL_STR := 'RENAME '|| ORIG_TAB_NAME ||' TO '||NEW_TAB_NAME;
			DBMS_OUTPUT.PUT_LINE (LV_SQL_STR);
			EXECUTE IMMEDIATE LV_SQL_STR;
		ELSE
			DBMS_OUTPUT.PUT_LINE('ERROR:'||ORIG_TAB_NAME||' DOES NOT EXISTS!');
		END IF;
	END;
/

Ejecutar el procedimiento

exec rename_others_tab('TABLE1','TABLE2');

thanks to

dba/oracle/howtos/rename_table_mini-howto.txt · Last modified: 2023/01/31 08:28 by dodger