Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

O que significa %Type no Oracle sql?


Oracle (e PostgreSQL) tem:
  • %TYPE
  • %ROWTYPE

%TYPE


%TYPE é usado para declarar variáveis ​​em relação ao tipo de dados de uma coluna em uma tabela existente:
DECLARE v_id ORDERS.ORDER_ID%TYPE

O benefício aqui é que, se o tipo de dados for alterado, o tipo de dados variável permanecerá em sincronia.

Referência:http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14261/fundamentals.htm#i6080

%ROWTYPE


Isso é usado em cursores para declarar uma única variável para conter um único registro do conjunto de resultados de um cursor ou tabela sem a necessidade de especificar variáveis ​​individuais (e seus tipos de dados). Ex:
DECLARE
  CURSOR c1 IS
     SELECT last_name, salary, hire_date, job_id 
       FROM employees 
      WHERE employee_id = 120;

  -- declare record variable that represents a row fetched from the employees table
  employee_rec c1%ROWTYPE; 

BEGIN
 -- open the explicit cursor and use it to fetch data into employee_rec
 OPEN c1;
 FETCH c1 INTO employee_rec;
 DBMS_OUTPUT.PUT_LINE('Employee name: ' || employee_rec.last_name);
END;
/