--plsql块结构,计算a,b的和
declare
a int:=10;
b int:=20;
c int;
begin
c:=a+b;
dbms_output.put_line(c);
end;
--%type数据类型,输出员工名称和职务信息
declare
var_ename scott.emp.ename%type;
var_job scott.emp.job%type;
begin
select ename,job
into var_ename,var_job
from scott.emp
where empno=7369;
dbms_output.put_line(var_ename||'的职务是:'||var_job);
end;
--record类型
declare
type emp_type is record
(
var_ename varchar2(50),
var_job varchar2(20),
var_sal number
);
empinfo emp_type;
begin
select ename,job,sal
into empinfo
from scott.emp
where empno=7369;
dbms_output.put_line(empinfo.var_ename);
end;
--%rowtype数据类型
declare
rowVar_emp scott.emp%rowtype;
begin
select *
into rowVar_emp
from scott.emp
where empno=7369;
dbms_output.put_line(rowVar_emp.ename);
end;
----------------------------------------------------------------流程控制------------------------------------------------------------
--if ...then 比较字符串长短,输出长的字符串
declare
var_name1 varchar2(50);
var_name2 varchar2(50);
begin
var_name1:='dog100';
var_name2:='dog232332';
if
length(var_name1)>length(var_name2)
then
dbms_output.put_line(var_name1);
else
dbms_output.put_line(var_name2);
end if;
end; --case 输出季节的月份
declare
season int:=2;
info varchar2(100);
begin
case season
when 1 then
info:='1,2,3';
when 2 then
info:='4,5,6';
when 3 then
info:='7,8,9';
when 4 then
info:='10,11,12';
else
info :='dog';
end case;
dbms_output.put_line(info);
end;
-------------------------------------------------------------------循环语句---------------------------------------------------------
--loop 计算1到100自然数之和
declare
sum_i int:=0;
i int:=0;
begin
loop
i:=i+1;
sum_i:=sum_i+i;
exit when i=100;
end loop;
dbms_output.put_line(sum_i);
end; --while
declare
sum_i int:=0;
i int:=0;
begin
while
i<=100
loop
sum_i:=sum_i+i;
i:=i+1;
end loop;
dbms_output.put_line(sum_i);
end;
--for
declare
sum_i int:=0;
begin
for i in reverse 1..100
loop
sum_i:=sum_i+i;
end loop;
dbms_output.put_line(sum_i);
end;
--------------------------------------------------------------------游标-------------------------------------------------
--显式游标,读取雇员信息
declare
cursor cur_emp(var_job in varchar2:='SALESMAN')
is select empno,ename,sal
from scott.emp
where job=var_job;
type record_emp is record
(
var_empno scott.emp.empno%type,
var_ename scott.emp.ename%type,
var_sal scott.emp.sal%type
);
emp_row record_emp;
begin
open cur_emp('MANAGER');
fetch cur_emp into emp_row;
while cur_emp%found
loop
dbms_output.put_line(emp_row.var_ename);
fetch cur_emp into emp_row;
end loop;
close cur_emp;
end;
--隐式游标,工资上调20%
begin
update scott.emp
set sal=sal*(1+0.2)
where job='SALESMAN';
if sql%notfound then
dbms_output.put_line('No');
else
dbms_output.put_line(sql%rowcount);
end if;
end;
--通过for循环语句循环游标,隐式游标
begin
for emp_record in (select * from scott.emp where job='SALESMAN')
loop
dbms_output.put_line(emp_record.ename);
end loop;
end;
--通过for循环语句循环游标,显式游标
declare
cursor cursor_emp is
select * from scott.emp where job='SALESMAN';
begin
for emp_record in cursor_emp
loop
dbms_output.put_line(emp_record.ename);
end loop;
end;
---------------------------------------------------------------------------------------------

Oracle PL/SQL编程语法的更多相关文章

  1. ORACLE PL/SQL编程详解

    ORACLE PL/SQL编程详解 编程详解 SQL语言只是访问.操作数据库的语言,并不是一种具有流程控制的程序设计语言,而只有程序设计语言才能用于应用软件的开发.PL /SQL是一种高级数据库程序设 ...

  2. [强烈推荐]ORACLE PL/SQL编程详解之七:程序包的创建与应用(聪明在于学习,天才在于积累!)

    原文:[强烈推荐]ORACLE PL/SQL编程详解之七:程序包的创建与应用(聪明在于学习,天才在于积累!) [强烈推荐]ORACLE PL/SQL编程详解之七: 程序包的创建与应用(聪明在于学习,天 ...

  3. ORACLE PL/SQL编程之八:把触发器说透

    原文:ORACLE PL/SQL编程之八:把触发器说透 ORACLE PL/SQL编程之八: 把触发器说透 大家一定要评论呀,感谢!光发表就花了我将近一个下午. 本篇主要内容如下: 8.1 触发器类型 ...

  4. [推荐]ORACLE PL/SQL编程之五:异常错误处理(知已知彼、百战不殆)

    原文:[推荐]ORACLE PL/SQL编程之五:异常错误处理(知已知彼.百战不殆) [推荐]ORACLE PL/SQL编程之五: 异常错误处理(知已知彼.百战不殆) 继上三篇:ORACLE PL/S ...

  5. ORACLE PL/SQL编程之六:把过程与函数说透(穷追猛打,把根儿都拔起!)

    原文:ORACLE PL/SQL编程之六:把过程与函数说透(穷追猛打,把根儿都拔起!) ORACLE PL/SQL编程之六: 把过程与函数说透(穷追猛打,把根儿都拔起!)   继上篇:ORACLE P ...

  6. [推荐]ORACLE PL/SQL编程详解之三:PL/SQL流程控制语句(不给规则,不成方圆)

    原文:[推荐]ORACLE PL/SQL编程详解之三:PL/SQL流程控制语句(不给规则,不成方圆) [推荐]ORACLE PL/SQL编程详解之三: PL/SQL流程控制语句(不给规则,不成方圆) ...

  7. [推荐]ORACLE PL/SQL编程之四:把游标说透(不怕做不到,只怕想不到)

    原文:[推荐]ORACLE PL/SQL编程之四:把游标说透(不怕做不到,只怕想不到) [推荐]ORACLE PL/SQL编程之四: 把游标说透(不怕做不到,只怕想不到) 继上两篇:ORACLE PL ...

  8. [推荐]ORACLE PL/SQL编程详解之一:PL/SQL 程序设计简介(千里之行,始于足下)

    原文:[推荐]ORACLE PL/SQL编程详解之一:PL/SQL 程序设计简介(千里之行,始于足下) [推荐]ORACLE PL/SQL编程详解之一: PL/SQL 程序设计简介(千里之行,始于足下 ...

  9. [顶]ORACLE PL/SQL编程详解之二:PL/SQL块结构和组成元素(为山九仞,岂一日之功)

    原文:[顶]ORACLE PL/SQL编程详解之二:PL/SQL块结构和组成元素(为山九仞,岂一日之功) [顶]ORACLE PL/SQL编程详解之二: PL/SQL块结构和组成元素(为山九仞,岂一日 ...

随机推荐

  1. Java基础--单例类创建和测试

    单例模式的主要作用是保证在Java程序中,某个类只有一个实例存在.单例模式有很多好处,它能够避免实例对象的重复创建,不仅可以减少每次创建对象的时间开销,还可以节约内存空间:能够避免由于操作多个实例导致 ...

  2. (转)详解C#中的反射

    本文转载自:http://blog.csdn.net/educast/article/details/2894892 两个现实中的例子:1.B超:大家体检的时候大概都做过B超吧,B超可以透过肚皮探测到 ...

  3. 引用 WCF 服务后,没有生成任何 .datasource?

    如题WCF服务生成成功,在添加服务引用的时候也不报错,但是添加完成之后不能正常调用服务借口. 在重新引用服务的时候,或者是是更新引用服务的时候,点“高级”按钮,在服务引用设置对话框中,将“重新使用引用 ...

  4. Mysql 关键字-保留字

    ADD ALL ALTER ANALYZE AND AS ASC ASENSITIVE BEFORE BETWEEN BIGINT BINARY BLOB BOTH BY CALL CASCADE C ...

  5. spring中JavaConfig相关的注解

    在spring3.0中增加配置spring beans的新方式JavaConfig,可以替换spring的applicataion.xml配置.也即@Configuration对等<beans/ ...

  6. Oracle 高可用作业测试

    1.RAC 是一种: A 分布式数据库B 内存共享多节点数据库C 能够保护数据安全的架构 2.RAC 和CRS 的区别是: A 前者表示一种架构,后者是一套软件B 前者表示一套软件,后者是一种架构 C ...

  7. 2011-03-17免Oracle客户端连远程Oracle的方法

    1.http://www.oracle.com/technetwork/topics/winsoft-085727.html上下载对应版本的instanctclinet zip包 34M 解压后92M ...

  8. NodeJs之文件合并(某一文件的内容发生变化与之相关的内容重新合并)

    首先,一个文件里面的内容是由多个文件共同组成的.例如一个文件夹包含有多文件(文件夹) 然后,当其中一个发生变化时所用与之有直接作用的文件(文件夹)都会重新组合. /*注意:该例子需要在同级目录下完成及 ...

  9. Datapump tips

    同时导出多个schema下的表 $ expdp system/manager dumpfile=test.dmp logfile=test.log directory=TESTDIR schemas= ...

  10. intellij idea打包springboot项目

    一.可执行jar包 注意点: maven的package类型需要为jar 配置了spring-boot-mavne-plugin插件 1.1.pom.xml <?xml version=&quo ...