oracle笔记4

--求半径2米,高3米的圆柱体体积。
declare
r number(4):= 2;
h number(4):=3;
begin
  dbms_output.put_line('面积:'||3.14*h*power(r,2));
  end;
  --求字符串‘abcdefg’的长度。
 declare
 a varchar2(10):='abcdefg';
 b number(4);
 begin
   dbms_output.put_line(length(a));
   end;
   
   --显示pubs数据库中所有作家的au_lname的开头两个字母,大写显示。(字符函数)
  declare
 a varchar2(10);
 str varchar2(10) :='au_lname';
 begin
   select (UPPER(substr(str,1,1))||UPPER( substr(str,2,1))) into a from emp where empno = 7369;
   dbms_output.put_line(a);
   end;
   
   --取字符串‘ abcdefg ’ 的第 2 到第 5 个字母。(字符函数)
declare
      a varchar2(5);
begin       
select substr('abcdefg',2,5) into a  from dual;
 dbms_output.put_line('字符为:  ' || a);
end;

   select to_char(sysdate, 'yyyymmdd') from dual
   --计算 2001年 9 月 11日到今天已经多少天了。(日期函数)
 declare
      a number(20);
begin       
select sysdate - to_date('20010911', 'yyyymmdd')   into a from dual;
 dbms_output.put_line('相差天数:  ' || a);
end;

   
   --查询emp表,找出编号为 7395 的记录,如果名字为 SCOTT  显示“找到了”否则显示“没找到”。(if语句)
   declare
   cursor cur_emp is
   select ename from emp where empno=7395;
   v_ename emp.ename%type;
   v_name varchar2(20) := 'SCOTT';
   begin
     open cur_emp;
       if not(cur_emp%isopen) then
         open cur_emp;  
       dbms_output.put_line('没有打开游标');
       end if;
        fetch cur_emp into v_ename;
       if  v_ename= v_name then
          dbms_output.put_line('找到了');
   
       else    dbms_output.put_line('没找到');
       end if;

       close cur_emp;
    end;
   --编写一个程序,用以接受用户输入的数字。将该数左右反转,然后显示反转后的数
declare
    a varchar2(20);
    v_n varchar2(20);
begin
    a := '&n';
     select reverse(a) into v_n from dual;
    dbms_output.put_line(v_n);
    
end;
--.编写一个程序,在emp表中根据empno 查询职员信息。如果代码引发 NO_DATA_FOUND 异常,则显示一则消息.

declare
  v_emp emp%rowtype;
  v_empno number(12);
  begin
    v_empno := &empno;
    select * into v_emp from emp where empno = v_empno;
    exception
    when NO_DATA_FOUND then
      raise_application_error(-20002,'没有该人员');
      end;
   --编写一个程序,用以接受用户输入的DEPTCODE ,并从employee 表中检索该雇员的 EMPNO 。
--如果代码引发 TOO_MANY_ROWS 异常,则显示消息“返回多行”.
declare
         v_input varchar2(20);
         v_empno emp.empno%type;
begin
         select empno into v_input from emp where deptno = &v_input;
         exception
         when too_many_rows then
           dbms_output.put_line('返回多行');
end;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值