--声明一个变量,并给它赋值
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. 积累的VC编程小技巧之图标、光标及位图

    1.图标透明 (1).Windows中的图标其实是有两个图像组成的,其中一个用于与它要显示的位置的图像做“AND”操作,另一个作“XOR”操作. 透明:用“白色”AND,用“黑色”XOR 反色:用“白 ...

  2. VC++ WIN32 sdk实现按钮自绘详解 之二.

    网上找了很多,可只是给出代码,没有详细解释,不便初学者理解.我就抄回冷饭.把这个再拿出来说说. 实例图片:    首先建立一个标准的Win32 Application 工程.选择a simple Wi ...

  3. Delphi的TService的輸入桌面切換(服务程序)(windows登录界面如何截图)(使用了OpenDesktop和GetThreadDesktop等API)

    dfm: object CopyDeskService: TCopyDeskService  OldCreateOrder = False  OnCreate = ServiceCreate  OnD ...

  4. 推荐一个第三方Qt库的集合

    https://inqlude.org/ Stable libraries | Development versions | Unreleased | Commercial | All attica ...

  5. 几款屏幕录制软件 ActivePresente

    几款屏幕录制软件,最强大是  ActivePresenter ,免费版, 足以应对我们日常需求.列表如下 支持系统:W-Windows,L-Linux,M-Mac 软件 格式 W L M 免费 说明 ...

  6. android在假设绘制自己定义的bitmap,然后返回给ImageView

    先来说一下FontMetrics这个类.这个类是关于字符属性和測量的类 用图能够更精确的知道各个属性的含义: 我们在Layout中有一个ImageView,我们能够通过: <span style ...

  7. 使用gdb调试游戏服务器

    前言 谈论gdb重要性 一般来说.提gdb,命令用于调试."命令",用户是几乎相同的复杂话.而事实确实如此,实际的开发调试必须用到gdb. 如今.大多数Linux系统是存在于ser ...

  8. Qt 向word中插入文字(使用QAxWidget和QAxObject)

    pro 文件中要加入 CONFIG += qaxcontainer 2. main.cpp #include <QApplication> #include <QAxWidget&g ...

  9. 此三层非彼三层——MVC&amp;UBD

    学习了三年编程了,到如今这个阶段,開始接触架构,開始认识架构,怎样设计一个程序的结构,学名称"架构模式"(architectural pattern).个人经历告诉我这在编程中是一 ...

  10. 60s 经济学探奇

    理解经济学 什么是经济学.对于学习金融的同学,一定会给你搬出一大堆定义.例证.学派.说经济学是一门研究研究价值的生产.流通.分配.消费的规律的理论. 非常高大上的感觉,可是对于我这样没有什么金融学理论 ...