En muchas ocasiones, en las tablas que utilizamos para almacenar datos, debemos guardar el usuario que realizó una tarea específica, tal como, incluir un nuevo registro, o modificar alguno de los datos existentes.

Tradicionalmente, estamos acostumbrados a utilizar el valor de la variable Oracle USER, sin embargo, si hacemos uso de esta variable en una aplicación Apex, siempre vamos a registrar el mismo valor, sin importar cual usuario estemos utilizando, este valor es «APEX_PUBLIC_USER».

Ahora bien, cuando definimos estructuras y código, no lo hacemos pensando solo en utilizarlos dentro de Apex, podemos también querer usarlos por ejemplo en Sql*plus, Forms, funciones, procedimientos, paquetes, o cualquier otro lugar, por lo que también podemos necesitar el valor de la variable USER.

Para definir una sentencia que siempre nos funcione y guarde el usuario correcto, debemos utilizar el siguiente código:

  • nvl(htmldb_application.g_user,user)

Con lo anterior, nos aseguramos de que si estamos realizando una tarea dentro de Apex, vamos a registrar el valor de la variable global htmldb_application.g_user, y si estamos utilizando el código fuera de Apex, entonces registraremos en valor de la variable USER.

Espero que este tip, les sea de utilidad.

Los espero en la próxima entrega.

Share This