------------------------------PL SQL --1,PL/SQL块 --PL/SQL 块是在SQL 语言之上发展起来的一种应用,可以集中的处理各种复杂的SQL操作。 --组成: DECLARE: --声明部分 BEGIN --编写主题 EXCEPTION --捕获异常 END ; /* 看一个简单的PL/SQL 块 DECLARE i NUMBER ; BEGIN i := 30 ; DBMS_OUTPUT.put_line('I 的内容为:'||i) ; END ; */ --此时,直接执行程序即可。 --执行之后发现没有任何的输出。因为Oracle 在系统设置中默认设置了输出不显示,如果要 --显示的话,输入以下命令: set serveroutput on DECLARE i NUMBER ; BEGIN i:= 1/0; EXCEPTION when ZERO_DIVIDE then dbms_output.put_line('error'); END ; / --PL/SQL 块还可以接收用户的输入信息,例如:现在要求用户输入一个雇员编号,之后根 --据输入的内容进行查询,查询雇员的姓名。 --用户的输入信息使用“&”完成。 DECLARE eno NUMBER ; en VARCHAR2(30) ; BEGIN -- 输入的信息保存在eno 里 eno := &no ; -- 之后根据eno 的值,对数据库进行查询操作 SELECT ename INTO en FROM emp WHERE empno=eno ; DBMS_OUTPUT.put_line('编号为:'||eno||'雇员的姓名为:'||en) ; EXCEPTION WHEN no_data_found THEN DBMS_OUTPUT.put_line('没有此雇员') ; END ; / DECLARE eno number; en varchar2(30); dn varchar2(20); BEGIN --输入的信息保存在eno中 eno := &no; --根据eno的值查询ename,dname select ename into en from emp where empno = eno; select dname into dn from dept where empno = eno and deptno=dept.deptno; Dbms_Output.put_line('编号为:'||eno||'的雇员的姓名为:'||en||'在'||ed||'部门上班。'); Exception when no_data_found then Dbms_Output.put_line('没有此雇员'); END; / --在以上的查询中再进一步:可以根据雇员的编号查出姓名及其领导的姓名和所在部门 --并进行显示 DECLARE eno emp.empno%TYPE; en emp.ename%TYPE; mn emp.ename%TYPE; dn dept.dname%TYPE; BEGIN --输入的雇员编号保存在eno中 eno:=&no; --之后根据输入的固原编号进行查询 SELECT e.ename,m.ename,d.dname INTO en,mn,dn FROM emp e,dept d,emp m WHERE e.empno=eno AND e.mgr = m.empno AND e.deptno = d.deptno; Dbms_Output.put_line('编号为'||eno||'的雇员的姓名为:'||en); Dbms_Output.put_line('编号为'||eno||'的上级的姓名为:'||mn); Dbms_Output.put_line('编号为'||eno||'的雇员的部门为:'||dn); EXCEPTION WHEN no_data_found THEN Dbms_Output.put_line('没有此雇员!'); END; / ----------------------------------------Loop循环(do...while) --PL/SQL中也包含了循环分支等条件控制语句 /*Loop 循环(do…while) 格式: LOOP 循环的语句 ; EXIT WHEN 终止条件 ; 循环条件必须更改 ; END LOOP ; */ --循环输出1~10。 DECLARE cou NUMBER ; BEGIN --必须给一个初始值 cou:=1; Loop DBMS_OUTPUT.put_line('cou='||cou); EXIT WHEN cou>=10; cou:=cou+1; END LOOP; END; / -----------------------------------while循环 /* 格式: while(判断循环的条件) loop 循环的语句 ; 循环条件的改变 ; End loop ; */ --使用while修改上面的程序 DECLARE cou NUMBER; BEGIN cou:=1; WHILE(cou<=10)LOOP DBMS_OUTPUT.put_line('cou='||cou); cou:=cou+1; END LOOP; END; / ----------------------------------for循环 /* 格式: FOR 变量名称in 变量的初始值..结束值LOOP 循环语句 ; END LOOP ; */ DECLARE cou NUMBER; BEGIN for cou in 1..10 LOOP DBMS_OUTPUT.put_line('cou='||cou); END LOOP; END; -----------------------------------if语句 /* 条件判断 格式: IF 条件THEN 满足条件时,执行此语句 END IF ; */ DECLARE cou NUMBER; BEGIN cou:=11; if(cou>0)THEN cou:=cou-1; DBMS_OUTPUT.put_line('cou='||cou); END if; END; ------------------------------if.....else语句 /* 如果if满足了则执行else */ DECLARE cou1 NUMBER; cou2 NUMBER; BEGIN cou2:=&cou1; IF cou2>10 THEN DBMS_OUTPUT.put_line('cou2='||cou2||'大于10.'); ELSE DBMS_OUTPUT.put_line('cou2='||cou2||'小于或等于10.'); END IF; END; -----------------------------if....elseif.......else; DECLARE cou1 NUMBER; cou2 NUMBER; BEGIN cou2:=&cou1; IF cou2>10 THEN DBMS_OUTPUT.put_line('cou2='||cou2||'大于10.'); ELSE IF cou2<10 THEN DBMS_OUTPUT.put_line('cou2='||cou2||'小于10.'); ELSE DBMS_OUTPUT.put_line('cou2='||cou2||'等于10.'); END IF; END IF; END; -----------------------------goto语句 无条件跳转语句 DECLARE eno emp.empno%type; sal emp.sal%type; BEGIN eno:=&en; SELECT sal INTO sal FROM emp WHERE empno=eno; IF sal>3500 THEN goto po1; ELSIF sal>2000 THEN goto po2; else goto po3; END IF; <<po1>> DBMS_OUTPUT.put_line('高工资。。。。'); <<po2>> DBMS_OUTPUT.put_line('中工资。。。。'); <<po3>> DBMS_OUTPUT.put_line('低工资。。。。'); END; /
发表评论
-
PL/SQL 经典总结(一)习题
2011-02-21 16:12 1505------------------------------- ... -
truncate,delete,drop的异同
2011-02-16 09:47 710注意:这里说的delete是指不带where子句的delete ... -
oracle创建表空间 用户授权
2011-02-15 10:42 858SYS用户在CMD下以DBA身份登陆: 在CMD中打sq ... -
oracle 高级查询及相关示例
2011-02-14 17:44 810------------------------------- ... -
oracle 子查询 经典总结
2011-02-14 16:56 2055------------------------------- ... -
oracle 集合查询及相关操作
2011-02-14 16:55 999------------------------------- ... -
oracle 多表查询
2011-02-14 16:54 843------------------------------- ... -
oracle 分组函数及相关测试
2011-02-14 16:52 915------------------------------- ... -
oracle 通用函数及相关测试
2011-02-14 16:50 1462------------------------------- ... -
oracle 数值函数、日期函数、转换函数
2011-02-14 16:47 1177------------------------------- ... -
Oracle 单行函数
2011-02-14 16:44 760------------------------------- ... -
emp表初试
2011-02-14 16:43 845--1,选择部门号30的所有员工 select * from ... -
亚信的数据库面试
2011-02-14 16:39 1411以下示例皆采取scott用户下的系统自带表 ,一切从基础开始 ...
相关推荐
通过上述对Oracle 9i PL/SQL程序设计笔记的总结,我们可以看到PL/SQL作为一种强大的数据库编程语言,提供了丰富的功能来支持数据处理、事务控制及业务逻辑的实现。掌握PL/SQL的不同块类型及其使用方法对于开发高效、...
总结来说,"PL/SQL VCS插件安装包+PL/SQL"提供了一种高效的方式来管理Oracle数据库中的PL/SQL代码,通过整合VSS或其他VCS系统,实现了版本控制功能,促进了团队协作,增强了代码的可维护性。无论是在小型项目还是...
- **最佳实践**:总结出一系列实用的建议和技巧,帮助读者更好地理解和掌握PL/SQL的应用场景。 ### 结论 《Oracle PL/SQL程序设计(第5版)》是一本全面介绍Oracle 11g中PL/SQL特性的书籍,适合数据库开发人员、管理...
Oracle PL/SQL是一种强大的编程语言,它结合了SQL的数据库操作能力和PL/SQL的结构化编程特性,使得数据库开发者能够创建复杂的应用程序和数据库逻辑。在"Oracle PL/SQL实例精解 数据库建立代码"中,我们将深入探讨...
本文主要总结了 PL/SQL 的一些基本语句和操作,特别关注在 ORACLE 报表开发和 FROM 开发中的应用。 1. 日期处理: 在 PL/SQL 中,日期通常需要进行格式转换和截取操作。例如,`trunc()` 函数用于截取日期至指定时间...
PL/SQL Developer 7.0 是一款专为Oracle数据库设计的高效集成开发环境(IDE),致力于简化和优化存储程序单元的开发过程。该工具对于构建客户端/服务器应用程序的后端部分,即服务器端逻辑,提供了强大的支持。在...
#### 一、PL/SQL概述 PL/SQL,全称为Procedural Language for SQL,是Oracle数据库特有的高级程序设计语言。它结合了SQL的数据处理能力和传统编程语言的控制结构,使开发者能够在数据库环境中编写复杂的应用程序。...
总结,PL/SQL提供了丰富的编程工具,如过程、函数、触发器和包,使开发者能更灵活地管理和操作数据库。通过学习和掌握这些概念,你可以创建高效、可维护的数据库应用程序。这份"pl/sql程序设计ppt"可能包含了对这些...
对于需要频繁编写、测试和维护PL/SQL代码的项目来说,PL/SQL Developer 64位版是一个不可或缺的工具。它可以帮助开发人员更高效地完成日常任务,并且通过其强大的性能分析工具确保应用程序的高性能运行。 #### 4. ...
"PLSQL.zip_oracl_oracle pl/sql ppt_pl sql ppt tutorial_pl/sql plsql.ppt"这个压缩包提供了学习PL/SQL的基础材料,通过"第一章 pl-sql介绍.ppt"开始你的学习之旅,逐步探索这个强大而灵活的数据库编程语言。
下面是PL/SQL数据库学习笔记的知识点总结。 一、基本原则 *瀑布模型:需求分析→设计(概要设计,详细设计:SQL语句,变量(初始值是多少,最终值如何得到))→编码→测试→上线 二、Select into语句 *用于创建...
《Oracle PL/SQL Programming》(第五版)是一本全面而深入的指南,旨在帮助读者掌握Oracle PL/SQL编程语言的核心技术和最佳实践。无论是对于初学者还是有经验的开发人员,这本书都是一个宝贵的资源。通过阅读本书,...
从给定的文件信息中,我们可以提炼出一系列与Oracle PL/SQL相关的知识点,涉及变量声明、数据查询、条件语句、异常处理以及数据库更新等核心概念。以下是对这些知识点的详细解析: ### 1. 变量声明与赋值 在PL/SQL...
1. **定义**:PL/SQL(Procedural Language for SQL)是一种过程化语言,它结合了 SQL 命令和过程式编程语句,使得开发人员能够编写更复杂的数据库应用程序。 2. **功能**: - 过程化代码执行:允许在数据库中执行...
总结起来,PL/SQL Developer是一款强大的Oracle数据库开发工具,其32位和64位版本的提供,满足了不同用户的需求,汉化及注册码的包含使得使用更加便捷。通过它,用户可以高效地进行PL/SQL编程,提升数据库管理和开发...
总结,要在64位Windows系统上使用PL/SQL Developer连接64位Oracle数据库,关键在于下载并配置32位的Oracle客户端,以及正确设置PL/SQL Developer的连接参数。遵循上述步骤,你就能在64位环境中顺利地使用PL/SQL ...
PL/SQL Developer是一款专为Oracle数据库设计的强大开发工具,它支持PL/SQL语言的开发、调试与管理。该工具不仅能够帮助开发者高效地编写和维护PL/SQL代码,还提供了诸如代码格式化、重构、性能分析等多种高级功能。...
总结来说,解决Oracle PL/SQL连接问题通常涉及检查和调整Oracle网络配置文件,尤其是`listener.ora`和`tnsnames.ora`。了解这些文件的结构和内容对于有效管理Oracle数据库连接至关重要。在开发和维护Oracle数据库...