Pregunta para un aspirante a un puesto de DBA (parte II)


Viene de la parte 1.

En este proyecto era muy importante para el cliente el número de palabras de cada pregunta (debía oscilar entre 350-500). Por mi parte lo consideré excesivo. Suelo dedicar a cada exposición el texto que creo conveniente. Por eso tengo entradas larguísimas (cómo montar un RAC o la replicación con GoldenGate) y otras muy cortas.

Así que propuse el siguiente ejemplo (120 palabras aproximadamente) en que, según mi entender, no es preciso extenderse más con la pregunta ni la exposición de las respuestas.

QUESTION: 
Which of the following SQL commands will raise an error when executed on a table named TEST placed in a READ ONLY tablespace?
POSSIBLE ANSWERS:
A:AUDIT INSERT ON test;
B:TRUNCATE TABLE test;
C:DROP TABLE test;

D:ALTER TABLE test MOVE TABLESPACE system;



¿Qué tal? ¿Sabéis la respuesta?

Comments

  1. Ricardo Vidal
    • 12 marzo, 2014
    • 10:09 am
    • Reply

    Apuesto mi meñique por la D. Es la única que toca los datos de verdad. (He dicho mi meñique porque solo me queda uno, el otro lo perdí en otra apuesta XD )

  2. Javier Morales
    • 12 marzo, 2014
    • 10:10 am
    • Reply

    Querido Ricardo… Siento decirte que has perdido el meñique que te quedaba! 😉 jajaja

  3. Ricardo Vidal
    • 12 marzo, 2014
    • 11:21 am
    • Reply

    No aguanto la incertidumbre! Por favor dinos la respuesta para poder ir al hospital y que me curen lo que queda de mano.

  4. Javier Morales
    • 12 marzo, 2014
    • 11:25 am
    • Reply

    Ahí va !!!!

    SOLUTION:

    B

    EXPLANATION:

    A is incorrect because audit operations are registered in dictionary, not in table segment definition.

    B is correct because DML operations including TRUNCATE statement are not allowed on read only tablespaces. TRUNCATE statement empties the table segment and sets the HWM to firsts blocks of the table.

    C is incorrect because drop operations are allowed on read only tablespaces.

    D is incorrect because moving a table implies a CREATE statement over the new tablespace (system) and DROP statement over the current one.

  5. Ricardo Vidal
    • 12 marzo, 2014
    • 11:02 pm
    • Reply

    Buenas noches! Ya he vuelto del hospital y se han reído mucho con la anécdota sobre cómo lo perdí. Muy buena pregunta, realmente me ha costado leer 3 veces tu explicación para darme cuenta de mi error.

    Grande Javier!

Deja una respuesta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.