--声明一个变量,并给它赋值
declare 

v_bonus number(8);

begin

select id*6 into v_bonus from A where Id=5;

DBMS_OUTPUT.PUT_LINE('奖金'||to_char(v_bonus));

end;

select * from emp

--拷贝一个字段的类型结构

declare

 v_ename emp.ename%type;

 v_sal emp.sal%type;

 c_tax_rate constant number(3,2) :=0.03;

 v_sal_tax v_sal%type;

 begin

    select ename,sal into v_ename,v_sal from emp where empno=&eno;

    v_sal_tax :=v_sal * c_tax_rate;

    dbms_output.put_line('雇员名称:' || v_ename);

    dbms_output.put_line('工资:' || v_sal);

    dbms_output.put_line('所得税' || v_sal_tax);

    end;

    

    select * from emp

declare

  v_emp emp%rowtype; --与emp表中的各个列相同

  begin

     select * into v_emp from emp where empno=&eno;  --将emp表中的所有记录赋值给 v_emp, &表示输入一个新的值

     dbms_output.put_line('雇员名称:'|| v_emp.ename);

     dbms_output.put_line('工资:' || v_emp.sal);

     end;

     

 -- 拷贝一条记录中几个字段的数据结构

declare 

   type emp_record_type is record(

      name emp.ename%type,salary emp.sal%type,job emp.job%type

   );

   v_emp_record emp_record_type;

   begin

     select ename,sal,job into v_emp_record from emp where empno=&eno;

     dbms_output.put_line('雇员名称:' || v_emp_record.name);

     dbms_output.put_line('工资:'|| v_emp_record.salary);

     dbms_output.put_line('职位:' || v_emp_record.job);

  end;

  

  insert into emp select * from emp

  

  --拷贝整个表的表结构,逐行拷贝

  

  declare 

    type emp_table_type is table of emp%rowtype

    index by binary_integer;

    v_emp_table emp_table_type;

    begin

       select ename,sal into v_emp_table(1).ename,v_emp_table(1).sal from emp where empno=7369;

       select ename,sal into v_emp_table(2).ename,v_emp_table(2).sal from emp where empno=7370;

       dbms_output.put_line('雇员名称:'||v_emp_table(1).ename || '工资:' || v_emp_table(1).sal);

       dbms_output.put_line('雇员名称:' || v_emp_table(2).ename || '工资:' || v_emp_table(2).sal);

   end;

   

   --使用when loop 循环

   declare 

     v_i number:=1;

     v_s number:=0;

    begin

        loop

          exit when v_i>100;

           v_s:=v_s+v_i;

           v_i:=v_i+1;

        end loop;

        dbms_output.put_line('100之内的整数和:' || v_s);

    end;

    

    --使用while loop 循环;

  declare

     v_i number:=1;

     v_s number:=0;

     begin

     while v_i<=100 loop

      v_s:=v_s+v_i;

      v_i:=v_i+1;

      end loop;

      dbms_output.put_line('100以内的整数和:  '|| v_s);

  end;

  

  --求100以内的自然数

  declare 

     v_s number:=0;

     begin

        for v_i in 1..100 loop

           v_s:=v_s+v_i;

        end loop;

        dbms_output.put_line('100以内的自然数:'|| v_s);

   end;

   

   --求100-110之间的素数

   declare

       v_m number:=101;

       v_i number;

       v_n number:=0;

   begin

      while v_m<110 loop

        v_i:=2;

        loop

          exit when v_i>v_m-1;

          if mod(v_m,v_i)=0 then

            v_i:=0;

            exit;

           end if;

           v_i:=v_i+1;

          

        end loop;

        if v_i>0 then

          v_n:=v_n+1;

          dbms_output.put_line('第'|| v_n || '个素数是' || v_m);

        end if;

         v_m:=v_m+2;

      end loop;

    end;

Oracle练习的更多相关文章

  1. Oracle分析函数入门

    一.Oracle分析函数入门 分析函数是什么?分析函数是Oracle专门用于解决复杂报表统计需求的功能强大的函数,它可以在数据中进行分组然后计算基于组的某种统计值,并且每一组的每一行都可以返回一个统计 ...

  2. Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级

    Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 5.安装Database软件 5. ...

  3. Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作

    Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 1.实施前准备工作 1.1 服务器安装操 ...

  4. Oracle 的基本操作符

    != 不等于 select empno,ename,job from scott.emp where job!='manager' ^= 不等于 select empno,ename,job from ...

  5. 使用Zabbix监控Oracle数据库

    Orabbix介绍 监控Oracle数据库我们需要安装第三方提供的Zabbix插件,我们先测试比较有名的Orabbix,http://www.smartmarmot.com/product/orabb ...

  6. 基于Oracle安装Zabbix

    软件版本 Oracle Enterprise Linux 7.1 64bit Oracle Enterprise Edition 12.1.0.2 64bit Zabbix 3.2.1 准备工作 上传 ...

  7. Oracle Database 12c Data Redaction介绍

    什么是Data Redaction Data Redaction是Oracle Database 12c的高级安全选项之中的一个新功能,Oracle中国在介绍这个功能的时候,翻译为“数据编纂”,在EM ...

  8. 使用Oracle官方巡检工具ORAchk巡检数据库

    ORAchk概述 ORAchk是Oracle官方出品的Oracle产品健康检查工具,可以从MOS(My Oracle Support)网站上下载,免费使用.这个工具可以检查Oracle数据库,Gold ...

  9. 利用Oracle RUEI+EM12c进行应用的“端到端”性能诊断

    概述 我们知道,影响一个B/S应用性能的因素,粗略地说,有以下几个大的环节: 1. 客户端环节 2. 网络环节(可能包括WAN和LAN) 3. 应用及中间层环节 4. 数据库层环节 能够对各个环节的问 ...

  10. 使用技术手段限制DBA的危险操作—Oracle Database Vault

    概述 众所周知,在业务高峰期,某些针对Oracle数据库的操作具有很高的风险,比如修改表结构.修改实例参数等等,如果没有充分评估和了解这些操作所带来的影响,这些操作很可能会导致故障,轻则导致应用错误, ...

随机推荐

  1. OSGi 学习之路(4) - osgi的模块化 java在模块化的局限性

    底层代码可见性控制 Java提供了private,public,protected和package private(无修饰符)这四种访问控制级别,不过这仅仅提供了底层的OO数据封装特性.包这个概念确实 ...

  2. 【数据库摘要】12_Sql_存储过程

    SQL 存储过程 存储过程创建语法: create or replace procedure 存储过程名(param1 in type,param2 out type) as 变量1 类型(值范围); ...

  3. eclipse Maven plugin 配置

    1. eclipse -> help -> marketpalce -> search 在输入框中输入Maven,回车. 在搜索结果列表中往下拉几个安装 Maven Integrat ...

  4. Swift - 各种手势检测大全(UIGestureRecognizer及其子类)

    UIGestureRecognizer有许多子类,用于监听一些常见的手势事件,这些子类主要有: 1,UISwipeGestureRecognizer:滑动(快速移动) 1 2 3 4 5 6 7 8 ...

  5. Java.util.zip adding a new file overwrites entire jar?(转)

    ZIP and TAR fomats (and the old AR format) allow file append without a full rewrite. However: The Ja ...

  6. 高效 Java Web 开发框架 JessMA v3.2.3 beta-1 发布

    JessMA(原名:Portal-Basic)是一套功能完备的高性能 Full-Stack Web 应用开发框架,内置可扩展的 MVC Web 基础架构和 DAO 数据库访问组件(内部已提供了 Hib ...

  7. 数字证书, 数字签名, SSL(TLS) , SASL .

    因为项目中要用到TLS + SASL 来做安全认证层. 所以看了一些网上的资料, 这里做一个总结. 1. 首先推荐几个文章: 数字证书: http://www.cnblogs.com/hyddd/ar ...

  8. Dvtm -- 平铺式终端

    Dvtm -- 平铺式终端_Linux伊甸园开源社区-24小时滚动更新开源资讯,全年无休! Dvtm -- 平铺式终端 关注我们: 如果你使用过 Dwn 或 Awesome 这种平铺式窗口管理器,一定 ...

  9. SilkTest高级进阶系列10 – bitmap工具bitview

    SilkTest 提供了一个bitmap的工具,它可以帮助我们捕捉,比较bitmap文件.该bitmap工具的位置是~/SilkTest/bitview.exe 运行该工具后,你会发现它提供了捕捉控件 ...

  10. C#同步SQL Server数据库中的数据--数据库同步工具[同步新数据]

    C#同步SQL Server数据库中的数据 1. 先写个sql处理类: using System; using System.Collections.Generic; using System.Dat ...