oracle学习之(PL/SQL)

PL/SQL

PL/SQL的结构

DECLARE 
/**
声明部分:在此声明PL/SQL用到的变量,类型,游标,以及局部的存储过程和函数
*/
BEGIN
/**
执行部分:过程以及SQL语句,即程序的主要部分
*/
EXCEPTION
/**
异常部分:错误处理
*/
END;

输出helloworld


begin
  
dbms_output.put_line('hello world');

end;

查询固定的数据放到定义的变量中并打印

declare
 v_xm varchar(200);
begin
  select xm into v_xm from aq_czy where czyid='BUSOPER1';
  dbms_output.put_line(v_xm);
end;

查询用户的薪水并打印

declare
 -- v_sal      number(8, 2) := 0;
 -- v_emp_id   number(10);
 --- v_email    varchar2(20);
 -- v_hiredate date;
type emp_record is record(
  v_sal      number(8, 2) := 0,
  v_emp_id   number(10),
  v_email    varchar2(20),
  v_hiredate date
  );
  v_emp_record emp_record;
begin
  select salary, employee_id, email, hire_date
   -- into v_sal, v_emp_id, v_email, v_hiredate
   into v_emp_record
    from employees
   where employee_id = '203';
  dbms_output.put_line('employee_id:' || v_emp_record.v_emp_id || 'salary:' || v_emp_record.v_sal ||
                       'email:' || v_emp_record.v_email || 'hire_date:' || v_emp_record.v_hiredate);
end;

%type

declare

  -- type salary_record is record(
  --    v_name   varchar2(20),
  --    v_salary number(10, 2));

--%type  动态获取数据类型
  type salary_record is record(
    v_name  employees.first_name%type,
    v_salary employees.salary%type);
  v_sal_record salary_record;

begin
  v_sal_record.v_name   := '刘德华';
  v_sal_record.v_salary := '12000';
  dbms_output.put_line('name:' || v_sal_record.v_name || 'salary:' ||
                       v_sal_record.v_salary);
end;

%rowtype

declare
v_sal_record employees%rowtype;

begin
 select * into v_sal_record  from employees where employee_id='203';
  dbms_output.put_line('name:' || v_sal_record.first_name || 'salary:' ||
                       v_sal_record.salary);
end;
posted @ 2021-12-18 09:26  King-DA  阅读(25)  评论(0)    收藏  举报