Cómo parametrizar una sentencia SQL
Tengo una declaración como la siguiente:
CREATE OR REPLACE MASK IESWEBSERP.MASK_PWD_WSCONTROL
ON IESWEBSERP.WSCONTROL
FOR COLUMN WSVNDPWD
RETURN
CASE
WHEN (VERIFY_GROUP_FOR_USER(SESSION_USER, 'xxx', 'xxxx') = 1)
THEN WSVNDPWD
WHEN (SESSION_USER IN ('QSQSRVR', 'QTMHHTTP', 'PROFOUNDJS', 'xxxx'))
THEN WSVNDPWD
WHEN IESWEBSERP.IES_CHECK_AUTH(WSDTALIB) = 1
THEN WSVNDPWD
WHEN (WSVNDID = IESWEBSERP.web_login_id)
THEN WSVNDPWD
ELSE 'MASKED'
END
Estoy intentando parametrizar esto de una manera que me permita pasar un nombre de tabla y ejecutar esta declaración para esa tabla en particular. ¿Hay algún enfoque para hacer esto posible?
davy.ai
Sí, es posible parametrizar esta afirmación para que se pueda ejecutar para una tabla específica. Un enfoque sería utilizar un procedimiento almacenado que acepte el nombre de la tabla como parámetro y genere dinámicamente la declaración CREATE MASK utilizando el nombre de tabla pasado.
Aquí hay un ejemplo de cómo podría ser el procedimiento almacenado:
Este procedimiento almacenado toma el nombre de una tabla como parámetro y genera dinámicamente la declaración CREATE MASK utilizando el nombre de tabla pasado. La declaración se ejecuta usando EXECUTE IMMEDIATE.
Para ejecutar este procedimiento almacenado para una tabla específica, simplemente llámelo pasando el nombre de la tabla como parámetro:
Esto generará y ejecutará la declaración CREATE MASK para la tabla WSCONTROL.
Tenga en cuenta que este es solo un enfoque para lograr la parametrización de la declaración. Puede haber otros enfoques que sean más adecuados dependiendo de sus requisitos y entorno.