Alterar campos de uma tabela

OLa,

Estou tentando fazer uma funçao no POSTGRESQL para alterar os valores de uma coluna da tabela, mas gostaria de usar um cursor para aprender a lidar com eles.

Tenho uma tabela de empregados que tem como pk empno e uma fk (na mesma tabela emp) é mgr.

Gostaria de alterar os valores da coluna mgr e para isso comecei a fazer a funçao. Alguém me ajuda?

[code]
CREATE TABLE emp
(
empno int4 NOT NULL,
ename varchar(30) NOT NULL,
job varchar(30) NOT NULL,
deptno int4 NOT NULL,
mgr int4);

ALTER TABLE emp
ADD CONSTRAINT “PKemp” PRIMARY KEY(empno);[/code]


empno | ename | job | deptno | mgr |
-------±--------±----------±-------±-----+
7839 | KING | P | 10 | |
7698 | BLAKE | M | 30 | 7839 |
7900 | JAMES | CL | 30 | 7698 |
7990 | JOHNSON | S | 30 | 7698 |
7654 | MARTIN | S | 30 | 7698 |
7844 | TURNER | S | 30 | 7900 |

Gostaria de quando solicitar para alterar o diretor (coluna mgr) 7698 para 7900 … alterar todos os valores 7698 para 7900.

[code]CREATE OR REPLACE FUNCTION mudar_diretor(diretor_novo IN INTEGER , diretor_velho IN INTEGER)
RETURNS VOID
AS $$

DECLARE

modificar CURSOR IS SELECT * FROM emp WHERE mgr = diretor_velho;

BEGIN

UPDATE emp
SET mgr=diretor_novo;

END;
$$ LANGUAGE ‘plpgsql’;[/code]

OBRIGADA,
veronica