---------------------------------------------

--1.存储过程之if

clear;

create or replace procedure mydel(

in_a in integer)

as

begin

if in_a<100 then

dbms_output.put_line('小于100.');

elsif in_a<200 then

dbms_output.put_line('大于100小于200.');

else

dbms_output.put_line('大于200.');

end if;

end;

/

set serveroutput on;

begin

mydel(1102);

end;

/

---------------------------------------------

--2.存储过程之case1

clear;

create or replace procedure mydel(

in_a in integer)

as

begin

case in_a

when 1 then

dbms_output.put_line('小于100.');

when 2 then

dbms_output.put_line('大于100小于200.');

else

dbms_output.put_line('大于200.');

end case;

end;

/

set serveroutput on;

begin

mydel(2);

end;

/

------------------------------------------------

--1.存储过程之loop1

clear;

create or replace procedure mydel(

in_a in integer)

as

a integer;

begin

a:=0;

loop

dbms_output.put_line(a);

a:=a+1;

exit when

a>301;

end loop;

end;

/

set serveroutput on;

begin

mydel(2);

end;

/

--------------------------------------------------

--1.存储过程之loop2

clear;

create or replace procedure mydel(

in_a in integer)

as

a integer;

begin

a:=0;

while a<300 loop

dbms_output.put_line(a);

a:=a+1;

end loop;

end;

/

set serveroutput on;

begin

mydel(2);

end;

--------------------------------------------------

--1.存储过程之loop3

clear;

create or replace procedure mydel(

in_a in integer)

as

a integer;

begin

for a in 0..300

loop

dbms_output.put_line(a);

end loop;

end;

/

set serveroutput on;

begin

mydel(2);

end;

/

clear;

select ename,cc:=(case

when comm=null then sal*12;

else (sal+comm)*12;

end case from emp order by salpersal;

----------------------------------------------------

clear;

create or replace procedure getstudentcomments(

i_studentid in int,o_comments out varchar)

as

exams_sat int;

avg_mark int;

tmp_comments varchar(100);

begin

select count(examid) into exams_sat from studentexam

where studentid=i_studentid;

if exams_sat=0 then

tmp_comments:='n/a-this student did not attend the exam!';

else

select avg(mark) into avg_mark from studentexam

where studentid=i_studentid;

case

when avg_mark<50 then tmp_comments:='very bad';

when avg_mark<60 then tmp_comments:='bad';

when avg_mark<70 then tmp_comments:='good';

end case;

end if;

o_comments:=tmp_comments;

end;

/

set serveroutput on;

declare

pp studentexam.comments%type;

begin

getstudentcomments(8,pp);

dbms_output.put_line(pp);

end;

/

--------------------------------------------------------

delete from emp where empno<6000;

clear;

create or replace procedure insertdata(

in_num in integer)

as

myNum int default 0;

emp_no emp.empno%type:=1000;

begin

while myNum

insert into emp values(emp_no,'hui'||myNum,'coder',7555,current_date,8000,6258,30);

emp_no:=emp_no+1;

myNum:=myNum+1;

end loop;

end;

/

set serveroutput on;

begin

insertdata(10);

end;

/

select * from emp;

------------------------------------------------------------------

clear;

select studentname,averageMark,case

when averageMark<60 then '不及格'

when averageMark<70 then '考得好'

when averageMark<80 then '考得很好'

end case

from (select (

select b.name from student b where b.studentid=a.studentid) as studentname,

round(avg(mark),2) as averageMark from studentexam a group by a.studentid);

oracle存储过程语法累加,Oracle 存储过程语法总结及练习相关推荐

  1. oracle 多列 累加,oracle 累加功能,累加百分比

    最近做数据分析,需要用到累加功能,发现强大的oracle还真有,用over(order by field) 例子: 数据表中最后一列就是累加的效果 累加sql: select t.acc_pedal_ ...

  2. oracle游标语法举例,PL/SQL语句块基本语法(ORACLE存储过程,函数,包,游标)

    1.PL/SQL语句块 PL/SQL语句块只适用于Oracle数据库,使用时临时保存在客户端,而不是保存在数据库. 基本语法: declare 变量声明.初始化 begin 业务处理.逻辑代码 exc ...

  3. oracle 存储过程红叉,oracle 存储过程基本语法及问题

    存储过程 注 : (1)在procedure中想用ddl,就必须用execute   immediat 'create table text1(id int not null primary key) ...

  4. sqlserver 存储过程 转oracle存储过程,SqlServer存储过程转换成Oracle储存过程语法常见问题...

    1. top order by 转换成 rownum order by 的问题 (子查询实现) 同级情况下的优先处理顺序: sqlserver: 先order by 再top oracle: 先row ...

  5. oracle存储while用mysql_oracle存储过程while

    Oracle下我个人认为有些事情不一定用存储过程,但还是说一下 oracle 存储过程的基本语法 1.基本结构 CREATE OR REPLACE PROCEDURE 存储过程名字 ( 参数1 IN ...

  6. oracle创建包 和调用,oracle创建函数和调用存储过程和调用函数的例子(区别)...

    创建函数: 格式:create or replace function func(参数 参数类型) Return number Is Begin --------业务逻辑--------- End; ...

  7. oracle数据库存储函数,Oracle数据库存储过程

    一.定义 所谓存储过程,就是一组用于完成特定数据库功能的SQL语句集,该SQL语句集经过编译后存储在数据库系统中.使用的时候,用户通过指定已经定义的存储过程名字并给相应的存储过程参数来调用并执行它,从 ...

  8. 存储过程与函数oracle

    存储在数据库中供所有用户程序调用的子程序叫做存储过程,存储函数. 存储过程是在大型数据库系统中,用PL/SQL语言编写的能完成一定处理功能的存储在数据库字典中的程序,它是一个命名的 PL/SQL 块, ...

  9. oracle中创建游标,oracle 存储过程创建游标

    Oracle与Sql Server差异点详解 1.create函数或存储过程异同点 Oracle 创建函数或存储过程一般是 create or replace -- SQL SERVER 则是在创建之 ...

  10. oracle如何调试sql,调试oracle与调试sql server存储过程

    [IT168 技术]关于存储过程的调试,知道方法以后很简单,但在不知道的时候,为了测试一个存储过程的正性,print,插入临时表等可谓是使出了浑身解数,烦不胜烦.下面就把我工作中调试oracle存储过 ...

最新文章

  1. SAP 同一个序列号可以同时出现在2个不同的HU里?
  2. 机器学习(MACHINE LEARNING) 【周志华版-”西瓜书“-笔记】 DAY2-模型评估与选择
  3. 什么是集成测试?非渐增式和渐增式有什么区别
  4. c语言学习题,C语言学习题目
  5. 海量数据处理-Trie树
  6. String和Date、Timestamp之间的转换
  7. 得到按钮句柄后如何点集_RepPoint:可形变卷积生成的目标轮廓点集
  8. PolandBall and Forest(并查集)
  9. 任何时候,写下一个类,一定要有三个函数
  10. python import 问题
  11. 手机蓝绿厂终于转正了,已有“名分”!
  12. BFC --- Block Formatting Context --- 块级格式化上下文
  13. 中文词语自动纠错_编辑距离
  14. MSDEV.EXE-应用程序错误解决办法(转)
  15. Python爬取妹子图
  16. Ubuntu下制作deb包的方法详解
  17. 中国哲学史(先秦部分)-------简答
  18. linux( sudo bmon ) 流量监控工具----类似于 moniter interface
  19. 【知识图谱】大数据环境下知识工程的机遇和挑战
  20. am5728通过DM框架配置GPIO管脚

热门文章

  1. 解决ROS常遇到的Couldn’t find executable named报错
  2. 2022年场(厂)内专用机动车辆安全管理考试模拟100题模拟考试平台操作
  3. STM32F103采集光照传感器BH1750程序,测试可以用
  4. java es nested_关于nested类型的使用
  5. 3种CSS3实现的网页过度效果代码,可独立用于网页设计展示
  6. 路由器信号总是无法与手机连接服务器,手机搜不到路由器信号_手机无法搜到路由器信号怎么办?-192路由网...
  7. 3月16日----3月20日二年级课程表
  8. 为什么说龙妈能活到最后?
  9. 关于微服务中用户身份认证的一点愚见
  10. python圆形_利用 Python 实现裁剪圆形头像