--声明一个变量,并给它赋值
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. 基于Predictive Parsing的ABNF语法分析器(十)——AbnfParser文法解析器之数值类型(num-val)

    ANBF语法中的数值类型有3种:二进制.十进制和十六进制,可以是一个以点号分隔的数列,也可以是一个数值的范围.例如,%d11.22.33.44.55表示五个有次序的十进制数字“11.22.33.44. ...

  2. UVA 11054 Wine trading in Gergovia 葡萄酒交易 贪心+模拟

    题意:一题街道上很多酒店,交易葡萄酒,正数为卖出葡萄酒,负数为需要葡萄酒,总需求量和总售出量是相等的,从一家店到另外一家店需要路费(路费=距离×运算量),假设每家店线性排列且相邻两店之间距离都是1,求 ...

  3. android binder机制之——(创建binder服务)

      Binder机制编程 前面的几篇文章具体介绍了android中binder机制的方方面面,相信你对binder机制已经有了较深刻的理解.俗话说得好"学以致用",以下我们就通过在 ...

  4. Win7和VS2013上使用Intel的TBB

    源地址:http://www.th7.cn/system/win/201505/103966.shtml http://wenku.baidu.com/link?url=zH7vwmWltWF5R-9 ...

  5. Linux搭建Tomcat环境

    安装Tomcat 1)下载apache-tomcat-7.0.42.tar.gz        http://tomcat.apache.org/download-70.cgi 2)#tar -zxv ...

  6. git for windows (又名 msysgit)如何记住用户名和密码

    创建存储用户名密码的文件 在home文件夹,一般是 C:\Documents and Settings\Administrator 下建立文件 .git-credentials (windows下不允 ...

  7. jquery学习之AJAX

    1,关于AJAX的简单介绍 AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML). AJAX 不是新的编程语言,而是一种使用现有标准 ...

  8. qt qml中PropertyAnimation的几种使用方法

    qml文章 qt qml中PropertyAnimation的几种使用方法 动画应用场景有以下几种: 首先如果一个Rectangle.动画是要改变它的x和y值 1,Rectangle一旦被创建,就要移 ...

  9. Pyhon安装media模块

    都是教科书惹的祸,它没有说清楚.media看着很标准,其实不是python自带的库.需要安装第三方软件后才能用. 在这里http://pythonhosted.org/PyGraphics/insta ...

  10. C#整理

    输入输出--数据类型--变量与常量--运算符表达式--语句(顺序.分支.循环)--数组--函数--结构体一.输入与输出.Console.ReadLine();Console.WriteLine();C ...