Hola
Si entendimos tu pregunta inicial por eso que indicamos revises la vista v$controlfile_record_section, con esto podria hacer esos calculos. No es tan directo como esperas pero si te cuento los conceptos puedes crear algo interesante
1) Dentro de la v$controlfile_record_section se guardan dos columnas importantes para lo que necesitas: record_size y records_total
2) Dentro de un mismo controlfile siempre la informacion se guarda en duplicado por contingencia.
3) El tamano de bloque del controlfile es el mismo de la base de datos
4) Siempre hay que agregar un "overhead" por cabecera de archivo y dependiendo de la version varia. No hay mucha informacion respecto a este "overhead" interno que maneja Oracle.
Haciendo una consulta (query) podrias obtener aproximadamente el tamano del controlfile. Te pongo una de ejemplo:
select db_block_size * (1 + 2 * sum(ceil(record_size * records_total / (db_block_size – 24)))) bytes
from v$controlfile_record_section;
NOTA: No esperes que te muestre el valor exacto como lo vez via Windows Explorer pero si aproximado. Ese "overhead" es un tema interno y no he visto informacion de eso.
PREGUNTA: Podrias explicarme porque el interes de saber el tamano del controlfile via SQL, no basta con la informacion del Windows Explorer?
Saludos
