| Documentation PostgreSQL 7.2 | ||
|---|---|---|
| <<< Previous | Next >>> | |
DECLARE cursorname [ BINARY ] [ INSENSITIVE ] [ SCROLL ]
CURSOR FOR query
[ FOR { READ ONLY | UPDATE [ OF column [, ...] ] ]
|
Le nom du curseur à utiliser dans les opérations FETCH subséquentes.
Le curseur récupérera les données en binaire plus qu'en mode texte.
SQL92 indiquant que les données retrouvées par le curseur ne seront pas affectées par les mises à jour depuis d'autres processus ou curseurs. Depuis que les opérations de curseur ont lieu dans les transactions dans Postgres, ceci est toujours le cas. Ce mot-clé n'a pas d'effet.
Mot-clé SQL92 indiquant que les données peuvent être retrouvées dans de multiples lignes par l'opération FETCH. Depuis que c'est admis à tout moment par Postgres, ce mot-clé n'a pas d'effet.
Une requête SQL qui fournira les lignes régies par le curseur. Voir la commande SELECT pour plus d'information sur les arguments valides.
Mot-clé SQL92 indiquant que le curseur sera utilisé en mode lecture seulement. Depuis qu'il y a le mode accès curseur seul disponible dans Postgres ce mot-clé n'a pas d'effet.
Mot-clé SQL92 indiquant que le curseur sera utilisé pour mettre à jour les tables. Depuis que les mises à jour curseur ne sont pas supportés par Postgres ce mot-clé provoque un message d'erreur informel.
Colonnes a mettre à jour. Depuis que les mises à jour curseur ne sont pas supportés par Postgres ce mot-clé provoque un message d'erreur informel.
Message retourné si le SELECT est lancé avec succés.
Message apparaissant si le même nom de curseur a déja été déclaré dans le bloc de transaction en cours. La définition précédente est écartée.
Message apparaissant si le curseur n'est pas déclaré dans un bloc de transaction.
DECLARE permet à un utilisateur de créer des curseurs, qui peuvent être utilisés pour retrouver un petit nombre de lignes à un moment d'une grosse requête. Les curseurs peuvent retourner des données en format texte ou binaire en utilisant FETCH.
Les curseurs normaux retournent les données au format texte, un schéma ASCII ou autre schéma d'encodage dépendant de la construction du serveur Postgres. Depuis que les données sont stockées nativement en format binaire, le système doit faire une conversion pour produire du format texte. De plus, les formats texte sont souvent plus gros en taille que leur correspondant au format binaire. Une fois l'information retournée en format texte, l'application client peut avoir a la convertir en format binaire pour la manipuler. Les curseurs BINARY retournent les données en représentation binaire native.
Par exemple, si une requête retourne une valeur de un depuis une colonne entier, vous obtiendrez une chaîne de 1 avec un curseur par défaut, tandis qu'avec un curseur binaire vous obtiendrez une valeur de 4-octets égale à (^A).
Les curseurs binaires seront utilisés avec prudence. Les applications utilisateur comme psql n'ont pas connaissance des curseurs binaires et attendent des données en format texte.
Cependant, la représentation de chaîne est neutre architecturalement, tandis que la représentation binaire peut différer entre différentes architectures machines. PostgreSQL ne résout pas l'ordre des des octets ou la représentation des sorties pour les curseurs binaires. si votre machine cliente et votre machine serveur utilisent différentes représentation (ex., "big-endian" contre "little-endian"), vos données ne seront probablement pas retournées en binaire. Cependant, les curseurs binaires peuvent être un peu efficaces car il y a moins de conversion à faire en transfert entre le serveur et le client.
![]() | Si vous avez l'intention d'afficher vos données en ASCII, obtenir de l'ASCII en retour vous économisera des efforts côté client. |
Les curseurs sont disponibles seulement dans les transactions. Utilisez BEGIN, COMMIT et ROLLBACK pour définir un bloc de transaction.
en SQL92 les curseurs sont seulement disponibles dans les applications SQL (ESQL) embarquées. Le serveur PostgreSQL n'implémente pas d'instruction OPEN cursor explicite; un curseur est considéré ouvert lorsqu'il est déclaré. Cependant, ecpg, le préprocesseur SQL embarqué de PostgreSQL, supporte les conventions de curseur SQL92 incluant celles qui comprennent les instructions DECLARE et OPEN.
SQL92 admet les curseurs uniquement dans le SQL intégré et dans les modules. Postgres permet aux curseurs d'être utilisés interactivement. SQL92 admet les curseurs intégrés ou modulaires pour mettre à jour les informations de la base. Tous les curseurs Postgres sont en mode lecture seule. Le mot-clé BINARY est une extension Postgres.
| <<< Previous | Home | Next >>> |
| CREATE VIEW | Up | DELETE |