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.