From: | Alvaro Herrera <alvherre(at)commandprompt(dot)com> |
---|---|
To: | Juan Carlos Barranco de Paz <jcb(at)greccosoft(dot)es> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: update ... current of |
Date: | 2008-06-17 19:01:46 |
Message-ID: | 20080617190146.GD10140@alvh.no-ip.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Juan Carlos Barranco de Paz escribió:
> Hola , he instalado la 8.3, estoy intentando hacer un update a través de un
> cursor, nueva característica que incorpora esta versión.
>
> Ya he conseguido que no me de error a la hora de cargar, pero si me da a la
> hora de ejecutar.
>
> Este es el error
>
> ERROR: el cursor «<unnamed portal 1>» no es un recorrido simplemente
> actualizable de la tabla «dw21vent»
Hmm, hay que reconocer que la traducción es bastante rara. Estoy
abierto a mejores sugerencias. El original dice
cursor "unnamed portal 1" is not a simply updatable scan of table "dw21vent"
Quizás baste con ponerle comillas, o sea algo así:
ERROR: el cursor «<unnamed portal 1>» no es un «recorrido simplemente actualizable» de la tabla «dw21vent»
Lo que quiere decir es que el UPDATE WHERE CURRENT OF sólo se puede usar
cuando el cursor es "simple". Esta medida de simplicidad está definida
por el estándar (creo). En todo caso lo puedes ver acá:
> FETCH dw0_0012_1_c INTO dw21;
> EXIT WHEN NOT FOUND;
>
> update dw21vent set beneficio_ult = beneficio_ult + 1
> where current of dw0_0012_1_c;
Creo que debería funcionar si reemplazas el WHERE CURRENT OF por un
WHERE de las columnas que componen la llave primaria de la tabla.
--
Alvaro Herrera http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.
From | Date | Subject | |
---|---|---|---|
Next Message | Gabriel Hermes Colina Zambra | 2008-06-17 20:56:22 | Re: Alterar tabla |
Previous Message | Juan Carlos Barranco de Paz | 2008-06-17 17:56:44 | update ... current of |