Oracle匿名块

--输出编号3500的员工的姓名和职务
select * from emp;
--匿名块
--1
declare
  v_ename varchar2(20);
  v_job varchar2(20);
begin
  select ename,job into v_ename,v_job from emp;
  exception
    when others then
      select ename,job into v_ename,v_job from emp where empno=7369;    
  v_ename := '哈哈' || v_ename;                              
  dbms_output.put_line(v_ename || '-------' || v_job);
end;
--2
declare
  v_ename varchar2(20);
  v_job varchar2(20);
  --给变量赋初值的方法
  v_num number(5) := 10;
begin
  select ename,job into v_ename,v_job from emp;
  exception
    when others then
      select ename,job into v_ename,v_job from emp where empno=7369;    
  --给字段加拼接内容
  v_ename := '哈哈' || v_ename || '哈哈';    
  --输出语句                            
  dbms_output.put_line(v_num || ':' || v_ename || '-------' || v_job);
end;

--3
declare
  v_ename varchar2(20);
  v_job varchar2(20);
  --给变量赋初值的方法
  v_num number(5) := 10;
begin
  select ename,job into v_ename,v_job from emp;
  exception
    when others then
      select ename,job into v_ename,v_job from emp where empno=7369;    
  --给字段加拼接内容
  v_ename := '哈哈' || v_ename || '哈哈';    
  --输出语句                            
  dbms_output.put_line(v_num || ':' || v_ename || '-------' || v_job);
  --判断控制语句--选择流程
  if v_job='CLERK' then
      dbms_output.put_line('程序员==程序猿');
  else
      dbms_output.put_line('程序员!=程序猿');      
  end if;
end;


--4
declare
  v_ename varchar2(20);
  v_job varchar2(20);
  --给变量赋初值的方法
  v_num number(5) := 1;
begin
  select ename,job into v_ename,v_job from emp;
  exception
    when others then
      select ename,job into v_ename,v_job from emp where empno=7369;    
  --给字段加拼接内容
  v_ename := '哈哈' || v_ename || '哈哈';    
  --输出语句                            
  dbms_output.put_line(v_num || ':' || v_ename || '-------' || v_job);
  --判断控制语句--选择流程
  if v_job='CLERK' then
      dbms_output.put_line('程序员==程序猿');
  else
      dbms_output.put_line('程序员!=程序猿');      
  end if;
  dbms_output.put_line('--------------------------');
  --循环流程
  loop 
      dbms_output.put_line(v_num);
      v_num := v_num+1;    
      --表示当 v_num=10 的时候结束循环 
      exit when v_num=10;
  end loop;
  dbms_output.put_line('--------------------------');      
end;


--5
declare
  v_ename varchar2(20);
  v_job varchar2(20);
  --给变量赋初值的方法
  v_num number(5) := 1;
  v_i number;
begin
  select ename,job into v_ename,v_job from emp;
  exception
    when others then
      select ename,job into v_ename,v_job from emp where empno=7369;    
  --给字段加拼接内容
  v_ename := '哈哈' || v_ename || '哈哈';    
  --输出语句 
  dbms_output.put_line('------------普通查询--------------------');                          
  dbms_output.put_line(v_num || ':' || v_ename || '-------' || v_job);
  --判断控制语句--选择流程
  dbms_output.put_line('------------选择流程--------------------');
  if v_job='CLERK' then
      dbms_output.put_line('程序员==程序猿');
  else
      dbms_output.put_line('程序员!=程序猿');      
  end if;
  dbms_output.put_line('-------------普通循环--------------------');
  --循环流程
  loop 
      dbms_output.put_line(v_num);
      v_num := v_num+1;    
      --表示当 v_num=10 的时候结束循环 
      exit when v_num=10;
  end loop;
  dbms_output.put_line('------------for循环--------------');    
  --v_i:表示定义一个int类型的变量 i; 1..10:表示i的双闭区间的取值范围(注意此处的格式,没有end for;标记; reverse:表示倒序输出)
  for v_i in reverse 1..10
    loop
      dbms_output.put_line(v_i);      
    end loop;    
end;

--6
declare
  --构造新类型
  type emp_entity_type is record(
        ena emp.ename%type,
        eno emp.empno%type
  );
  v_ename varchar2(20);
  v_job varchar2(20);
  --给变量赋初值的方法
  v_num number(5) := 1;
  v_i number;
  emp_entity emp_entity_type;
begin
  select ename,job into v_ename,v_job from emp;
  exception
    when others then
      select ename,job into v_ename,v_job from emp where empno=7369;    
  --给字段加拼接内容
  v_ename := '哈哈' || v_ename || '哈哈';    
  --输出语句 
  dbms_output.put_line('------------普通查询--------------------');                          
  dbms_output.put_line(v_num || ':' || v_ename || '-------' || v_job);
  --判断控制语句--选择流程
  dbms_output.put_line('------------选择流程--------------------');
  if v_job='CLERK' then
      dbms_output.put_line('程序员==程序猿');
  else
      dbms_output.put_line('程序员!=程序猿');      
  end if;
  dbms_output.put_line('-------------普通循环--------------------');
  --循环流程
  loop 
      dbms_output.put_line(v_num);
      v_num := v_num+1;    
      --表示当 v_num=10 的时候结束循环 
      exit when v_num=10;
  end loop;
  dbms_output.put_line('------------for循环--------------');    
  --v_i:表示定义一个int类型的变量 i; 1..10:表示i的双闭区间的取值范围(注意此处的格式,没有end for;标记; reverse:表示倒序输出)
  for v_i in reverse 1..10
    loop
      dbms_output.put_line(v_i);      
    end loop;    
  dbms_output.put_line('------------自定义类型的查询--------------');    
  select ename,empno into emp_entity.ena,emp_entity.eno from emp where empno=7369;
  dbms_output.put_line(emp_entity.ena || '---' || emp_entity.eno);    
end;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一掬净土

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值