DECLARE cursorname [ BINARY ] [ INSENSITIVE ] [ SCROLL ] CURSOR FOR query [ FOR { READ ONLY | UPDATE [ OF column [, ...] ] ] |
El nombre del cursor a ser usado en subsecuentes operaciones FETCH..
Provoca que el cursor traiga datos en formato binario en vez de formato texto.
SQL92 palabra clave indicando que los datos recuperados del cursor no deben ser afectados por actualizaciones desde otros procesos o cursores. Ya que la operaci�n de los cursores ocurre dentro de las transacciones, en Postgres este siempre es el caso. Esta palabra clave no tiene efecto.
SQL92 palabra clave indicando que los datos deben ser recuperados en m�ltiples filas por cada operaci�n FETCH. Ya que esto es siempre permitido por Postgres esta palabra clave no tiene efecto.
Una consulta SQL la cual proveera las filas a ser governadas por el cursor. Referirse al comando SELECT para mayor informaci�n acerca de los argumentos v�lidos.
SQL92 palabra clave indicando que el cursor sera usado en modo solo lectura. Ya que este es el �nico modo de acceso de cursor disponible en Postgres esta palabra clave no tiene efecto.
SQL92 palabra clave indicando que el cursor sera usado para actualizar tablas. Ya que la actualizaci�n de cursores no esta actualmente soportada en Postgres esta palabra clave provoca un mensaje de error informativo.
Columna(s) a ser actualizadas. Ya que la actualizaci�n de cursores no esta actualmente soportada en Postgres la clausula UPDATE provoca un mensaje de error informativo.
El mensaje devuelto si el SELECT es ejecutado exitosamente.
Este error ocurre si cursorname ya esta declarado.
Este error ocurre si el cursor no esta declarado dentro de un transaction block.
DECLARE permite a un usuario crear cursores, los cuales pueden ser usados para recuperar un pequeno n�mero de filas a la vez provenientes de una consulta mas extensa. Los cursores pueden devolver datos ya sea en formato de texto o en foemato binario FETCH.
Los cursores comunes retornan datos en formato texto, ya sea ASCII u otro esquema de codificacion dependiendo en como el Postgres backend fue creado. Ya que los datos estan guardados nativamente en formato binario, el sistema debe hacer una conversi�n para producir formato texto. Ademas, los formatos de texto son a menudo mayores en tamano que sus correspondientes en formato binario. Una vez que la informaci�n viene en formato texto, la aplicaci�n cliente podria necesitar convertirlos a un formato binario para manipularlos. los cursores BINARY devuelven los datos en una representaci�n binaria nativa.
Como ejemplo, si una consulta devuelve un valor de uno desde una columna integer, usted obtendria un string de '1' con un cursor default mientras que con un cursor binario usted obtendria un valor 4-byte igual a un control-A ('^A').
Los cursores BINARY deben ser usados cuidadosamente. Aplicaciones de usuario tales como psql no son conscientes de los cursores binarios y esperan que los datos vengan en formato texto.
La representaci�n de los string es neutral respecto a la arquitectura, mientra que la representaci�n binaria puede diferir entre diferentes arquitecturas de m�quinas y Postgres no resuelve el ordenamiento de bytes o las cuestines de representacion para los cursores binarios. Por consiguiente, si su m�quina cliente y su m�quina servidor usa diferentes representaciones (e.g. "big-endian" contra "little-endian"), probablemente usted no deseara sus datos devueltos en formato binario. Sin embargo, los cursores binarios pueden ser un poco m�s eficientes ya que hay menos overhead debido a la conversi�n en la transferencias de datos del servidor al cliente.
Si usted pretende mostrar los datos en ASCII, recuperarlos en ASCII le ahorraran un poco de esfuerzo del lado cliente. |
Los cursores solo estan disponibles en las transacciones. Usar para BEGIN, COMMIT y ROLLBACK para definir un transaction block.
En SQL92 los cursores estan disponibles solo en aplicaciones SQL (ESQL) embebidas. EL Postgres backend no implementa un comando explicito OPEN cursor ; un cursor se considera abierto cuando este es declarado. Sin embargo, ecpg, el preprosesador embebido de SQL para Postgres, soporta la convenci�n de cursores SQL92 , incluyendo aquellos que involucran los comandos DECLARE y OPEN.
SQL92 permite cursores solo en SQL embebido y en modulos. Postgres permite cursores para ser usados en forma interactiva. SQL92 permite cursores embebidos o modulares para actualizar informaci�n de la base de datos. Todos los cursores Postgres son de solo lectura. La palabra clave BINARY es una extensi�n de Postgres.