Al utilizar el procedimiento almacenado, es posible crear índices de texto en vistas. Sin embargo, un inconveniente importante es que no se pueden crear activadores en las vistas y los cambios en las tablas base subyacentes no se reconocen.
Por lo tanto, en caso de actualizaciones incrementales de índice, el usuario debe conocer qué documento se ha añadido, actualizado o suprimido para poder sincronizar el índice de texto con la base de datos. Para ello, debe añadir todos los cambios a la tabla de anotaciones cronológicas. Este proceso se muestra en el ejemplo siguiente:
db2 "create table sample (key INTEGER not null PRIMARY KEY, name VARCHAR(50) not null, comment VARCHAR(90))"
db2 "insert into ejemplo values(1,'Claus','trabaja en la habitación 301')" db2 "insert into sample values(2,'Manja','está en la misma oficina que Juergen')" db2 "insert into sample values(2,'Juergen','es quien está más lejos de Raiko')" db2 "insert into ejemplo values(3,'Raiko','está sentado en la oficina junto a Claus ')"
db2 "create view vistaejemplo as select key, comentario from ejemplo"
db2text "create index vistaíndice for text on hde.sampleview(comentario) cache table (comentario) maximum cache size 1 key columns for index on view (clave)" db2text "update index vistaíndice for text" db2text "activate cache for index vistaíndice for text"
Nota |
---|
Debe especificar la tabla de antememoria para poder crear un índice de texto en una vista. Para crear la tabla de anotaciones cronológicas correcta, deberá especificar las columnas clave para el índice de la vista. En un entorno DB2 distribuido, debe especificar explícitamente un espacio de tabla para las tablas de administración en un solo nodo y realizar llamadas explícitamente en este nodo. Para asegurarse de que se conecta al nodo adecuado, utilice la variable de entorno DB2NODE. |
db2 "insert into sample values(4,'Bernhard','está trabajando en la misma planta que Manja, pero no que Claus')" db2 "insert into sample values(5,'Guenter','comparte la oficina con Raiko')"
db2 "select INDSCHEMA,INDNAME,LOGVIEWSCHEMA,LOGVIEWNAME from db2ext.textindexes"Éste es el diseño de la tabla de anotaciones cronológicas:
sqltype sqllen sqlname.data sqlname.length -------------------- ------ ----------------------- -------------- 496 INTEGER 4 OPERATION 9 392 TIMESTAMP 26 TIME 4 497 INTEGER 4 PK01 4Para añadir entradas a la tabla de anotaciones cronológicas, utilice los mandatos siguientes:
db2 "insert into ejemplo values(0,CURRENT TIMESTAMP,4)" db2 "insert into ejemplo values(0,CURRENT TIMESTAMP,5)"El primer valor describe la operación (0= insertar, 1 = actualizar, 2 = suprimir). El segundo siempre debería ser CURRENT TIMESTAMP y el último valor es la clave que se ha insertado.
db2text "update index vistaíndice for text"
Ahora podrá realizar búsquedas con el procedimiento almacenado en los valores nuevos.