19 agosto, 2013
RunSql. Ejecutar Sentencias SQL directamente desde el sistema operativo.
Con la llegada de la última versión del sistema operativo de IBM, nos hemos encontrado con un mandato bastante interesante llamado RUNSQL.
Este mandato, como su nombre indica, nos permite ejecutar sentencias SQL desde una línea de mandatos (que puede no tener mucho sentido si hacemos un STRSQL) o desde un programa CL.
Esta última opción es muy interesante, ya que antes, por ejemplo para planificar un trabajo que actualizara la base de datos, tenías que hacer un programa o crear un RPG con SQL incrustado. Ahora basta crear el trabajo que llama al mandato RUNSQL para planificarlo directamente.
El mandato no puede ser más simple. Introducimos la sentencia a ejecutar y pulsamos Intro. Obviamente hay ciertas instrucciones que no se pueden ejecutar, y son aquellas que producen una salida a pantalla como un SELECT. Si lo ejecutamos dará error como que la sentencia no está permitida.
Hay que tener en cuenta el parámetro COMMIT de control de compromiso. Dependiendo de como tengamos configurada nuestra Base de Datos tendremos que ajustarlo para que no de errores. A mi, normalmente me funciona con la opción *NONE.
Si lo usais dentro de un programa CL, podéis montar una variable CL con parámetros o funciones y pasarlo como sentencia SQL, de esta manera podéis hacer un SQL dinámico fácilmente.