现在的位置: 首页 > 综合 > 正文

oracle笔记4

2014年02月10日 ⁄ 综合 ⁄ 共 2023字 ⁄ 字号 评论关闭

--求半径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;

抱歉!评论已关闭.