Re: Columnas afectadas en Postgresql

From: Eric Aponte <eaponte(at)usb(dot)ve>
To:
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Columnas afectadas en Postgresql
Date: 2004-07-26 16:29:33
Message-ID: 4105316D.9030001@usb.ve
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Gracias, ya logre hacerlo, el problema era la forma como le mandaba la
instruccion ya que estaba condicionando un campo varchar, faltaban dos
comillas simples, ahora si hace lo que quiero, gracias de nuevo

Jaime Casanova escribió:

>Hi Eric,
>
>Puedes intentar esto en la funcion en la que deseas
>saber si existe el registro:
>
>perform select * from mitabla;
>if found then
> existe, haz esto;
>else
> no existe, haz lo otro;
>end if;
>
>Atentamente,
>Anl. Jaime Casanova
>Asesor de Sistemas - Diteca
>
>
>--- Eric Aponte <eaponte(at)usb(dot)ve> escribió: > Eso es lo
>que espero, pero yo le estoy mandando un
>
>
>>select ya que
>>necesito saber si el registro existe en la base de
>>datos, si existe hago
>>una operacion y sino hago otra, voy a seguir
>>intentando, muchas gracias
>>
>>Jaime Casanova escribió:
>>
>>
>>
>>>Hi Eric,
>>>
>>>Tengo esto hecho:
>>>
>>>CREATE TABLE tmp_prueba (
>>> col1 integer
>>> );
>>>
>>>insert into tmp_prueba values (1);
>>>insert into tmp_prueba values (2);
>>>insert into tmp_prueba values (3);
>>>insert into tmp_prueba values (4);
>>>insert into tmp_prueba values (5);
>>>
>>>CREATE OR REPLACE FUNCTION tmp_query (varchar)
>>>
>>>
>>RETURNS numeric AS'
>>
>>
>>>declare
>>>var_sw numeric;
>>>registros numeric;
>>>begin
>>> execute $1;
>>> get diagnostics registros = row_count;
>>> if registros = 1 then
>>> var_sw := 1;
>>> else
>>> var_sw := 0;
>>> end if;
>>> return var_sw;
>>>end;
>>>'LANGUAGE 'plpgsql';
>>>
>>>select tmp_query('update tmp_prueba set col1 =
>>>
>>>
>>col1 + 1 where col1 > 3');
>>
>>
>>>Cuando lo ejecuto: la funcion me devuelve cero
>>>
>>>
>>porque se afectaron
>>
>>
>>>varias filas (2)
>>>
>>>Y si hago
>>>select tmp_query('update tmp_prueba set col1 =
>>>
>>>
>>col1 + 1 where col1 < 2');
>>
>>
>>>la funcion me devuelve 1 porque se afecta 1 sola
>>>
>>>
>>fila, eso es lo que
>>
>>
>>>la funcion dice que hace.
>>>
>>>Ese es el comportamiento correcto o esperabas otra
>>>
>>>
>>cosa?
>>
>>
>>>
>>>Atentamente,
>>>Jaime Casanova
>>>
>>>
>>>Eric Aponte <eaponte(at)usb(dot)ve> wrote:
>>>
>>> Hice los cambios, pero no le asigna valor a la
>>>
>>>
>>variable registros
>>
>>
>>> CREATE OR REPLACE FUNCTION query (text)
>>>
>>>
>>RETURNS numeric AS'
>>
>>
>>> declare
>>> var_sw numeric;
>>> registros integer;
>>> begin
>>> execute $1;
>>> get diagnostics registros = row_count;
>>> if registros > 0 then
>>> var_sw := 1;
>>> else
>>> var_sw := 0;
>>> end if;
>>> return var_sw;
>>> end;
>>> 'LANGUAGE 'plpgsql';
>>>
>>> Gracias
>>>
>>>
>>>
>>>
>>>
>------------------------------------------------------------------------
>
>
>>>Do You Yahoo!?
>>>
>>>
>>>
><http://espanol.yahoo.com/mail_tagline/*http://espanol.news.yahoo.com>
>
>
>>>Todo lo que quieres saber de Estados Unidos,
>>>
>>>
>>América Latina y el resto
>>
>>
>>>del Mundo.
>>>Visíta Yahoo! Noticias
>>>
>>>
>>>
><http://espanol.yahoo.com/mail_tagline/*http://espanol.news.yahoo.com>.
>
>
>>
>>
>>
>
>_________________________________________________________
>Do You Yahoo!?
>Información de Estados Unidos y América Latina, en Yahoo! Noticias.
>Visítanos en http://noticias.espanol.yahoo.com
>
>
>

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Jaime Casanova 2004-07-26 16:35:09 Re: otras dudas
Previous Message olivia jurado 2004-07-26 16:09:38 help