01_记录类型

  1 3.1 自定义记录类型
  2 
  3 declare
  4   --定义一个记录类型
  5   type customer_type is record(
  6     v_cust_name varchar2(20),
  7     v_cust_id number(10));
  8 
  9   --声明自定义记录类型的变量
 10   v_customer_type customer_type;
 11 begin
 12   v_customer_type.v_cust_name := '刘德华';
 13   v_customer_type.v_cust_id := 1001;
 14   
 15   dbms_output.put_line(v_customer_type.v_cust_name||','||v_customer_type.v_cust_id);
 16 end;
 17 
 18 
 19 3.2 自定义记录类型
 20 
 21 declare
 22   --定义一个记录类型
 23   type emp_record is record(
 24     v_name varchar2(25),
 25     v_email varchar2(25),
 26     v_salary number(8, 2),
 27     v_job_id varchar2(10));
 28     
 29   --声明自定义记录类型的变量
 30   v_emp_record emp_record;
 31 begin
 32   --通过 select ... into ... 语句为变量赋值
 33  select last_name, email, salary, job_id into v_emp_record
 34  from employees
 35  where employee_id = 186;
 36  
 37  -- 打印变量的值
 38  dbms_output.put_line(v_emp_record.v_name || ', ' || v_emp_record.v_email || ', ' ||  
 39                                         v_emp_record.v_salary || ', ' ||  v_emp_record.v_job_id);
 40 end;
 41 
 42 4. 使用 %type 定义变量,动态的获取数据的声明类型
 43 
 44 declare
 45   --定义一个记录类型
 46   type emp_record is record(
 47     v_name employees.last_name%type,
 48     v_email employees.email%type,
 49     v_salary employees.salary%type,
 50     v_job_id employees.job_id%type);
 51     
 52   --声明自定义记录类型的变量
 53   v_emp_record emp_record;
 54 begin
 55   --通过 select ... into ... 语句为变量赋值
 56  select last_name, email, salary, job_id into v_emp_record
 57  from employees
 58  where employee_id = 186;
 59  
 60  -- 打印变量的值
 61  dbms_output.put_line(v_emp_record.v_name || ', ' || v_emp_record.v_email || ', ' ||  
 62                                         v_emp_record.v_salary || ', ' ||  v_emp_record.v_job_id);
 63 end;
 64 
 65 
 66 
 67 5. 使用 %rowtype
 68 
 69 declare
 70 --声明一个记录类型的变量
 71   v_emp_record employees%rowtype;
 72 begin
 73   --通过 select ... into ... 语句为变量赋值
 74  select * into v_emp_record
 75  from employees
 76  where employee_id = 186;
 77  
 78  -- 打印变量的值
 79  dbms_output.put_line(v_emp_record.last_name || ', ' || v_emp_record.email || ', ' ||  
 80                                         v_emp_record.salary || ', ' ||  v_emp_record.job_id  || ', ' ||  
 81                                         v_emp_record.hire_date);
 82 end;
 83 
 84 6.1 赋值语句:通过变量实现查询语句
 85 
 86 declare
 87   v_emp_record employees%rowtype;
 88   v_employee_id employees.employee_id%type;
 89 begin
 90   --使用赋值符号位变量进行赋值
 91   v_employee_id := 186;
 92 
 93   --通过 select ... into ... 语句为变量赋值
 94  select * into v_emp_record
 95  from employees
 96  where employee_id = v_employee_id;
 97  
 98  -- 打印变量的值
 99  dbms_output.put_line(v_emp_record.last_name || ', ' || v_emp_record.email || ', ' ||  
100                                         v_emp_record.salary || ', ' ||  v_emp_record.job_id  || ', ' ||  
101                                         v_emp_record.hire_date);
102 end;
103 
104 6.2  通过变量实现DELETE、INSERT、UPDATE等操作
105 
106 declare
107   v_emp_id employees.employee_id%type;
108 
109 begin
110   v_emp_id := 109;
111   delete from employees
112   where employee_id = v_emp_id;
113   --commit;
114 end; 

 


 

posted @ 2021-02-15 11:54  路修索  阅读(31)  评论(0编辑  收藏  举报