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: