Dentro de un procedimiento almacenado de Snowflake JavaScript, me gustaría recuperar el nombre de la base de datos del procedimiento de ejecución (y preferiblemente también el nombre del esquema). Se puede hacer esto? Y si es así, ¿cómo?
¿Por qué?
Nota: No puede depender de la sesión actual, ya que podría ser con una base de datos diferente, mientras se llama al procedimiento almacenado de una base de datos diferente utilizando el nombre completo. (es decir <database>.<schema>.<procedure> )
También tenga en cuenta: no es tan simple como definirlo estáticamente dentro del procedimiento, ya que esto es algo que podría implementarse en múltiples bases de datos (es decir, diferentes entornos), y no es práctico cambiar el cuerpo del SP para cada uno.
Algunos enfoques conceptuales podrían ser...
Usando un objeto JavaScript incorporado como este (que obtiene solo el nombre del procedimiento):
var proc_name = Object.keys(this)[0];Usando una función SQL incorporada como esta (que recupera la base de datos de la sesión, no la base de datos del procedimiento):
var result = snowflake.execute({sqlText: 'select current_database()'}); result.next(); var db_name = result.getColumnValue(1);¿O, otra solución creativa?
Si no es posible, ¿tal vez alguien pueda indicarme una solicitud de función de Snowflake existente?