zoukankan      html  css  js  c++  java
  • 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; 

  • 相关阅读:
    利用Node.js的Net模块实现一个命令行多人聊天室
    JS判断鼠标进入容器方向的方法和分析window.open新窗口被拦截的问题
    Node.js:进程、子进程与cluster多核处理模块
    Node.js:理解stream
    Node.js:Buffer浅谈
    Node.js:OS模块
    一个unsigned int 数的二进制表示中有多少个1
    一个栈的入栈序列为ABCDEF,则不可能的出栈序列是
    文件操作:获取一个文件行数的方法
    利用sourceinsight宏(Quicker.em)提高编码效率和质量
  • 原文地址:https://www.cnblogs.com/shici/p/14403468.html
Copyright © 2011-2022 走看看