Este video le enseñará a usted como trabajar con scripts (secuencias de comandos) en DB2 Cubriremos dos tipos de scripts, scripts SQL y del Sistema Operativo Los scripts SQL, como veremos pronto, son bastante fáciles de entender. y son independientes de la plataforma, es decir, son portables sin ninguna modificación entre distintas plataformas, como Windows o Linux. Sin embargo, los scripts SQL no permiten utilizar parámetros. Por lo tanto, para obtener realmente beneficio de los scripts SQL debes combinarlos con scripts del Sistema Operativo. Echemos un vistazo a script SQL muy básico. Supongamos que ha creado el archivo script1.db2 El nombre y la extensión no importan, se puede usar la extensión que desee. Sin embargo, cuando se trabaja con IBM Data Studio como mostraré más adelante es mejor utilizar la extensión de SQL. Echemos un vistazo al contenido de este archivo. Como puedes ver, contiene varias sentencias SQL. Observa que cada una de las sentencias termina con un punto y coma Este es el fin de sentencia por defecto en DB2. Esto permite a DB2 saber dónde termina una instrucción dada. En este ejemplo, primero se conecta a la base de datos SAMPLE, a continuación elimina la tabla arfchong.mytable, la crea nuevamente. Estas son las columnas de esa tabla selecciona todas las filas de la tabla, finalmente ejecuta la sentencia COMMIT. Observa que la instrucción DROP TABLE se incluye a fin de dejar limpio e iniciar de cero. Agregando la instrucción DROP TABLE nos da un error la primera vez que ejecutamos el script indicando que la tabla arfchong.mytable no existe las ejecuciones posteriores de la misma sentencia serán sin problemas eliminando primero la tabla arfchong.mytable, para luego crearla nuevamente. Incluir sentencias DROP es una práctica común entre los DBA y desarrolladores y es común colocarlos al inicio del script para iniciar con todo limpio. Para ejecutar el script se puede utilizar IBM Data Studio o la ventana de comandos DB2 en Windows o el shell de Linux. Para ejecutarlo desde la ventana de comandos o el shell de Linux ejecuta el siguiente comando: db2 -t -v -f script1.db2 -z script1.log Vamos a explicar lo que significa todo esto en unos pocos minutos. En primer lugar, escribe un "db2" para invocar el procesador de línea de comandos de DB2 que tendrá las siguientes opciones como describimos. -t significa que se habilitará el fin de sentencia el valor por defecto para el fin de sentencia es el punto y coma -v produce una salida "verbosa". Esto significa que queremos un eco de la sentencia que se está ejecutando antes de que produzca la salida. -f seguido de un nombre de archivo (en este caso "script1.db2") significa que las sentencias que se ejecutan proceden del archivo “script1.db2”. -z seguido de un nombre de archivo (en este caso "script1.log") significa que toda la salida será escrita en ese archivo. Recapitulemos, deja que te explique las cosas que he descripto hasta ahora primero abro la ventana de comandos DB2 Entonces puedo invocar cualquier editor de textos como Notepad tipeando luego script1.db2 y presionando enter esto abrirá el archivo en el editor, como nuevo archivo entonces pude escribir mi script. para ahorrar tiempo ya lo tenía escrito y solo copio y pego en este archivo ahora voy a guardar el archivo y cerrarlo voy a ejecutarlo, así que voy a hacer un db2 -tvf script1.db2 -z script1.log ahora te darás cuenta porqué estoy usando -tvf juntos, podría haber utilizado -t, -f, separados así también funciona Pero permíteme dejarlo de nuevo como lo tenía, voy a presionar enter Y el script se ejecutará y generará la salida en el archivo script1.log pero al mismo tiempo, me muestra la salida aquí. ahora nota que hay un mensaje de error pero este mensaje de error se esperaba debido a que estamos intentando eliminar una tabla que no existe Esto fue hecho a propósito, como se mencionó antes, normalmente se colocan las instrucciones drop al comienzo de los scripts para comenzar de cero Ya que vas a crear los objetos de nuevo. Echemos un vistazo al archivo script1.log que también debería tener la misma salida. Así que estamos conectados a la base de datos, hemos eliminado la tabla nuevamente Y obtuvimos el mensaje de error según lo esperado entonces creamos la tabla y luego ejecutamos un select de esa tabla, en la cual no hay filas ya que está recién creada y finalmente el commit. Así todo funciona como se esperaba.