ORACLE——匿名块、变量、if

--pl/sql匿名块
--匿名块(声明、执行体、异常处理)

declare
  v_a integer;
  v_b integer;
begin
  v_a:=10;
  v_b:=&请输入第二个数:;
  dbms_output.put_line('商:'||v_a/v_b);
  dbms_output.put_line('积:'||v_a*v_b);
  dbms_output.put_line('和:'||(v_a+v_b));
end;

--if
if 条件 then  
 语句  
end if;

--if else
if 条件 then  
 语句 
else    --注意这里没有then
 语句  
end if;

-- if  elsif  else语法 (注意 elsif 而不是elseif)
if 条件 then
语句
elsif 条件 then
语句
elsif 条件 then
语言
else
语句
end if;

--1、select mod(10,3) from dual;
--2、逻辑运算符
--而且 and
--或者 or
--取非 not
mod(year,400)=0 
或者 (mod(year,4)=0 and mod(year,100)!=0 ) 
--3、输入一个年份,判断是不是闰年

declare
  v_year integer;
begin
  v_year:=&请输入一个年份:;
  if mod(v_year,400)=0 or
   mod(v_year,4)=0 and mod(v_year,100)!=0
   then
    dbms_output.put_line('是闰年!');
  else
    dbms_output.put_line('不是闰年!');
  end if;
end;

--作业
--输入部门编号,按照下列加薪比例执行(用if-elsif实现)。

deptno    raise(%)
    10    5%
    20    10%
    30    15%
    40    20%
--加薪比例以现有的sal为标准。
declare
no emp.deptno%type;
rais number;
begin
no:=(&请输入部门编号);
if no=10 then
rais:=1.05;

elsif no=20 then
rais:=1.1;

elsif no=30 then
rais:=1.15;

else 
rais:=1.2;

end if;
update emp set sal=sal*rais where deptno=no;
end;

--1、接受2个数相除,并显示结果,如果除数为0,则显示错误提示。
--2、自己创建一张userinfo表,包含两个字段username,password,表中的记录信息取自emp表ename,empno字段,写一个PL/SQL程序,模拟登陆的过程,用户分别输入用户名和密码,对于登陆成功和失败分别给出提示信息.declare

m_id manageinfo.mid%type; 
m_pass manageinfo.mpass%type;
m_count integer;
begin
m_id:='&m_id';
m_pass:='&m_pass';
select count(*)
into m_count
from manageinfo
where mid=m_id and mpass=m_pass;
if m_count!=0 then
dbms_output.put_line('登陆成功');
else 
dbms_output.put_line('登陆失败');
end if;
end;
--3、用userinfo表,写一个PL/SQL程序,模拟注册的过程,用户分别输入用户名和密码,对于登陆成功和失败分别给出提示信息.
declare
m_id manageinfo.mid%type; 
m_name manageinfo.mname%type;
m_pass manageinfo.mpass%type;

m_count integer;
begin
m_id:='&m_id';
m_name:='&m_name';
m_pass:='&m_pass';
insert into manageinfo values(m_id,m_name,m_pass);
select count(*) into m_count from manageinfo where mid=m_id and mpass=m_pass;
if m_count!=0 then
dbms_output.put_line('登陆成功');
else 
dbms_output.put_line('登陆失败');
end if;
end;


 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值