Estoy usando la siguiente secuencia de comandos para generar un DDL para crear espacios de tablas en la base de datos.

select 'create tablespace ' || df.tablespace_name || chr(10)
 || ' datafile ''' || df.file_name || ''' size ' || df.bytes 
 || decode(autoextensible,'N',null, chr(10) || ' autoextend on maxsize ' 
 || maxbytes) 
 || chr(10) 
 || 'default storage ( initial ' || initial_extent 
 || decode (next_extent, null, null, ' next ' || next_extent )
 || ' minextents ' || min_extents
 || ' maxextents ' ||  decode(max_extents,'2147483645','unlimited',max_extents) 
 || ') ;' "Script To Recreate Tablespaces"
 from dba_data_files df, dba_tablespaces t
 where df.tablespace_name=t.tablespace_name;

Funciona bien. Pero cuando un espacio de tabla contiene dos ficheros de datos, a continuación, también se crea separada de comandos con crear espacios de tabla. Simplemente crea dos, crear espacios de tabla de comandos si una tabla contiene dos ficheros de datos. Por favor comparta sus pensamientos.

Saludos,

Srinivasan Thirunavukkarasu.

3 Comentarios

  1. 5

    Si usted está tratando de ingeniería inversa existente en un espacio de tablas para generar una secuencia de comandos, ¿por qué no usar simplemente DBMS_METADATA?

    select dbms_metadata.get_ddl('TABLESPACE','yourTablespaceNameOfInterest') 
    from dual;

    Puede generar uno de estos estados para cada espacio de tabla en la base de datos con un simple contenedor de si usted los quiere a todos.

    • Hola, creo que DBMS_METADATA sólo está disponible en 10g. La mía es 9i de la base de datos. Saludos, Srinivasan Thirunavukkarasu.
    • Estoy bastante seguro de que un 9i instalación incluye DBMS_METADATA – tal vez usted no tiene permisos en el paquete?
    • Sí la hay. Gracias hombre.
    • Srinivasan, si se estaban preguntando acerca de 9i, ¿por qué la pones 10g en la pregunta del título ?
  2. 0
    SET LONG 1000000
    
    select dbms_metadata.get_ddl('TABLESPACE','tablespace_name')||';' from dual;

Dejar respuesta

Please enter your comment!
Please enter your name here