Registros Oracle PLSQL
- Registros PLSQL são tipos de dados compostos. É um grupo de itens de dados relacionados como campos, cada um com seu próprio nome e tipo de dados.
- Os registros PL/SQL são semelhantes em estrutura a uma linha em uma tabela de banco de dados. Cada tipo de dados escalar no registro contém um valor.
- Um registro consiste em componentes de qualquer escalar, registro PL/SQL ou tipo de tabela PL/SQL.
- Eles podem ser manipulados como uma única unidade. Os registros podem ter quantos campos forem necessários.
Como declarar os registros Oracle PLSQL
( A)Registro PLSQL definido pelo usuário
DECLARE TYPE employee_record_type IS RECORD (emp_id NUMBER(10) NOT NULL, dept_no dept.deptno%TYPE, nаme varchar2(20), hire_dаte DATE := SYSDATE Last_name varchar2(20) ); employee_record employee_record_type;
(1) Não há tipos de dados pré-definidos para Record como existem para o tipo de dados escalar. Então você precisa criar primeiro e depois atribuir
(2) Cada campo no registro tem um nome exclusivo e um tipo de dados específico
(3) %TYPE é usado para declarar uma variável que é do mesmo tipo que a coluna de uma tabela especificada.
(4) usamos o TIPO . . . A instrução RECORD para criar seu próprio tipo de registro é quando um campo do seu registro precisa ser um tipo específico de PL/SQL, como BOOLEAN. Se você usar %ROWTYPE, os tipos de dados de todos os campos serão restritos aos tipos SQL
(5) Os registros são, eles próprios, tipos de dados específicos de PL/SQL, portanto, outro recurso interessante dos tipos de registro definidos pelo usuário é que você pode definir um tipo de registro como um campo em outro tipo de registro
DECLARE TYPE emp_phone IS RECORD ( Stdcode PLS_INTEGER, phn_number PLS_INTEGER, extension PLS_INTEGER ); TYPE contact_phone IS RECORD ( day_phone# emp_phone, eve_phone# emp_phone, cell_phone# emp_phone ); sales_rep contact_phone;
B) Também podemos definir o registro como tipo de linha de tabela
DECLARE sales_data_rec apps.sales_data%ROWTYPE; |
1) Isso nos permite declarar um registro com base na coleção da coluna na tabela ou visão
2) Usamos o prefixo %ROWTYPE com a tabela do banco de dados para declará-lo
3) Os campos no registro levam seu nome e tipo de dados da coluna da tabela
C) Também podemos usar %ROWTYPE para declarar um registro que tenha a mesma estrutura de uma instrução SELECT em um cursor.
Isso é especialmente útil para buscar um subconjunto de colunas de uma tabela ou colunas de várias tabelas.
DECLARE CURSOR emp_cur IS SELECT lastname, age,firstname FROM employees; l_employee emp_cur%ROWTYPE;
Sempre que estiver buscando dados de um cursor para variáveis PL/SQL, você deve declarar um registro baseado nesse cursor com %ROWTYPE e buscá-lo nesse registro. Desta forma, quando e se a lista SELECT do cursor mudar, o número e o tipo de campos no registro mudarão de acordo e tudo ficará em sincronia.
Como passar valores para registros Oracle PLSQL
Sintaxe | Uso |
rec_name.col_name :=valor; | Para atribuir diretamente um valor a uma coluna específica de um registro. |
rec_name.column_name :=valor; | Para atribuir diretamente um valor a uma coluna específica de um registro, se o registro for declarado usando %ROWTYPE. |
SELECT column1, column2 INTO rec_name.col_name1, rec_name.col_name2 FROM table_name [cláusula WHERE]; | Para atribuir valores a cada campo de um registro da tabela do banco de dados. |
SELECT * INTO record_name FROM table_name [cláusula WHERE]; | Para atribuir um valor a todos os campos no registro de uma tabela de banco de dados. |
variable_name :=record_name.col_name; | Para obter um valor de uma coluna de registro e atribuí-lo a uma variável. |
Você deve ler estas outras postagens PLSQL
Estrutura e tipos de blocos Oracle PLSQL
Perguntas da entrevista sobre Oracle plsql
Tutoriais rápidos sobre Oracle sql e plsql