• 6 julio 2018
  • Enrique Flores
  • 1

Columnas invisibles

Las columnas invisibles sirven para evitar mostrar ciertas columnas cuando se hace un select *  , son útiles para ocultar información que no queremos que el usuario vea, y si las ponemos dentro de un select directamente si van a aparecer.

Yo en las tablas utilizo columnas de auditoria para vigilar los cambios que se han realizado por parte del usuario, es ahí donde más he sacado provecho.

Mejor vamos al ejemplo:

Creamos una tabla de ejemplo y un trigger

-- create tables
create table tabla_ejemplo (
    id                             number generated by default on null as identity  
                                   constraint tabla_ejemplo_id_pk primary key,
    campo1                         varchar2(4000),
    campo2                         varchar2(20),
    created                        date invisible,
    created_by                     varchar2(255) invisible,
    updated                        date invisible,
    updated_by                     varchar2(255) invisible
)
;


-- triggers
create or replace trigger tabla_ejemplo_biu
    before insert or update 
    on tabla_ejemplo
    for each row
begin
    if inserting then
        :new.created := sysdate;
        :new.created_by := nvl(sys_context('APEX$SESSION','APP_USER'),user);
    end if;
    :new.updated := sysdate;
    :new.updated_by := nvl(sys_context('APEX$SESSION','APP_USER'),user);
end tabla_ejemplo_biu;
/

Llenamos la tabla

-- load data
 
insert into tabla_ejemplo (
    id,
    campo1,
    campo2
) values (
    1,
    'Sit amet lectus. Nulla placerat iaculis aliquam. Vestibulum lacinia arcu in massa pharetra, id mattis risus rhoncus.  Cras vulputate porttitor ligula. Nam semper diam suscipit elementum sodales. Proin sit amet massa eu lorem commodo ullamcorper.  Interdum et malesuada fames ac ante ipsum primis in faucibus. Ut id nulla ac sapien.',
    'Luctus'
);

insert into tabla_ejemplo (
    id,
    campo1,
    campo2
) values (
    2,
    'Phasellus vitae ligula commodo, dictum lorem sit amet, imperdiet.',
    'Interdum'
);

insert into tabla_ejemplo (
    id,
    campo1,
    campo2
) values (
    3,
    'Eget rhoncus non,  molestie sit amet lectus. Nulla placerat iaculis aliquam. Vestibulum lacinia arcu in massa pharetra, id mattis risus rhoncus.  Cras vulputate porttitor ligula. Nam semper.',
    'Lectus'
);

insert into tabla_ejemplo (
    id,
    campo1,
    campo2
) values (
    4,
    'Proin viverra lacinia  lectus, quis consectetur mi venenatis.',
    'Id'
);

commit;

Vemos los la tabla creada, los campos CREATED, CREATED_BY, UPDATED y UPDATED_BY no se muestran pero si existen.

Si hacemos un select * los datos no se muestran

Pero si consultamos campo por campo si los podremos ver

Espero te sirva esta información, si es así, no olvides darle clic a los anuncios que aparecen en el blog.

Si tienes una duda o comentarios por favor házmelo saber, me ayudaría muchísimo para poder crear más entradas. 😎

1 comment on “Columnas invisibles

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

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