segunda-feira, 4 de maio de 2009

TYPE% VS % ROWTYPE - Qual é a diferença?

Ambos são usados para definir variáveis no PL/SQL da mesma forma como está definido na base de dados. Se o tipo ou precisão de uma coluna for alterada, o bloco/programa PL/SQL automaticamente pega a nova definição da coluna na base de dados.

O type% e ROWTYPE% ajuda a reduzir custos de manutenção permitindo que os programas se adaptem ao banco de dados com as alterações realizadas nas colunas.


TYPE% é utilizado para declarar uma variável com o mesmo tipo de uma determinada coluna da tabela:
DECLARE

v_EmpName emp.ename%TYPE;

BEGIN

SELECT ename INTO v_EmpName FROM emp WHERE ROWNUM = 1; DBMS_OUTPUT.PUT_LINE('Name = ' v_EmpName);

END;/

ROWTYPE% é usado para declarar uma variavel contendo todos os campos de uma tabela, ou seja, é usado para armazenar uma linha da tabela:

DECLARE v_emp emp%ROWTYPE;

BEGIN

v_emp.empno := 10;

v_emp.ename := 'XXXXXXX';

END;/

T+

Nenhum comentário: