Oracle在PL/SQL中嵌入SQL语句

PL/SQL块中只能直接嵌入SELECT、DML(INSERT,UPDATE,DELETE)以及事务控制语句(COMMIT,ROLLBACK,SAVEPOINT),

而不能直接嵌入DDL语句(CREATE,ALTER,DROP)和DCL语句(GRANT,REVOKE)

1、嵌入SELECT语句

使用SELECT INTO语句时,必须要返回一条数据,并且只能返回一条数据。

v_ename emp.ename%type;
v_sal   emp.sal%type;
select ename,sal into v_ename,v_sal from emp where empno=&no;

2、嵌入insert子句。

v_deptno emp.deptno%type:=&no;
insert into employee select * from emp where deptno=v_deptno;

3、更新数据

v_ename emp.ename%type:='&name';
update emp set (sal,comm) = (select sal,comm from emp where ename=v_ename) where job = (select job from emp where ename=v_ename)

4、删除数据

v_ename emp.ename%type:='&name';
  delete from emp where deptno=(select deptno from emp where ename=v_ename);

到此这篇关于Oracle在PL/SQL中嵌入SQL语句的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Oracle中PL/SQL复合数据类型

    一.PL/SQL记录:一条记录 可简化单行多列的数据的处理.当使用pl/sql记录时,应用开发人员即可以自定义记录类型和记录变量,也可以使用%rowtype属性直接定义记录变量. 1.当使用自定义的pl/sql记录时,需要分别定义pl/sql记录类型和记录变量. declare type emp_record_type is record( name emp.ename%type,salary emp.sal%type ); emp_record emp_record_type; begin s

  • PL/SQL Developer连接64位的Oracle图文教程

    由于硬件技术的不断更新,Win7系统逐渐成为主流,而且计算机内存逐渐增大,为了充分的利用内存资源(因为32为系统最多只能用到3G左右的内存),提高系统性能,很多人开始使用Win7(64Bit)的系统.在64位系统上安装64位的Oracle数据库,但是没有对应的64位PL/SQL Developer,此时就不能使用PL/SQL Developer来进行直接连接的,所以要想实现连接还得需要其他途径来完成. 下面就来说明如何实现连接. 一.下载Oracle客户端 下载地址:http://www.ora

  • Oracle如何使用PL/SQL调试存储过程

    调试过程对找到一个存过的bug或错误是非常重要的,Oracle作为一款强大的商业数据库,其上面的存过少则10几行,多则上千行,免不了bug的存在,存过上千行的话,找bug也很费力,通过调试可以大大减轻这种负担. 工具/原料 PL\SQL Oracle 方法/步骤 首先在PL/SQL的左侧资源栏中展开Procedures项(图中位置1),然后再其上面的搜索框中(图中位置2)输入存过名称的关键词,按回车键搜索要调试的存过,不停的回车,直到找到想要调试的存过. 找到想要调试的存过,左键单击选中该存过(

  • 利用PL/SQL从Oracle数据库导出和导入数据

    本文实例为大家分享了使用PL/SQL从Oracle数据库导出和导入数据的方法,供大家参考,具体内容如下 1.导出数据: 方式一:工具->导出用户对象->导出.sql文件 注:这种方式导出的是建表语句和存储过程语句 方式二:工具->导出表 注: 这里是导出表的结构和数据 第一种方式导出.dmp格式的文件,.dmp是二进制文件,可跨平台,还能包含权限,效率不错,用的最为广泛. 第二种方式导出.sql格式的文件,可用文本编辑器查看,通用性比较好,效率不如第一种,适合小数据量导入导出.尤其注意的

  • Oracle中PL/SQL的块与表达式

    一.块(Block) 是PL/SQL的基本执行单元,由定义部分,执行部分(必须)和例外处理部分组成. Declare /*定义部分――定义常量.变量.游标.例外.复杂数据类型*/ Begin /*执行部分――要执行的pl/sql语句和sql语句*/ Exception /*例外处理部分――处理运行的各种错误*/ end; 例: declare v_ename varchar2(5); v_sal number(7,2); begin select ename,sal into v_ename,v

  • Oracle工具PL/SQL的基本语法

    在本章中,我们将学习PL/SQL的基本语法,PL/SQL是块结构语言; PL/SQL程序划分成几个部分,并在每个部分中写入逻辑代码块.每个块由三个子部分组成 - 声明部分 - 此部分是以关键字DECLARE开头.这是一个可选部分,并定义了程序中要使用的所有变量,游标,子程序和其他元素. 可执行命令部分 - 此部分包含在关键字BEGIN和END之间,这是一个强制性部分.它由程序的可执行PL/SQL语句组成.它应该有至少一个可执行代码行,它可以只是一个NULL命令,表示不执行任何操作. 异常处理部分

  • PL/SQL中编写Oracle数据库分页的存储过程

    其实 Oracle数据库的分页还是比较容易理解的.此文以oracle数据库中的SCOTT用户的EMP表为例,用PL/SQL Developer编写一个分页存储过程,要求是:可以输入表名,每页显示记录数,当前页,返回总记录数,总页数和返回的结果集. 由于需要返回查询出来的结果集,需要在PL/SQL中创建一个package,这个包里面定义一个refcursor类型,用于记录sql语句查询出来的结果集.创建包的代码如下: create or replace package pagingPackage

  • Oracle数据库之PL/SQL使用流程控制语句

    目录 一.条件分支语句 1.if判断 2.if else判断 3.if elsif  else判断 4.CASE 表达式 二.循环语句 1.loop简单循环(至少执行一次) 2.  WHILE 循环 3.For数字式循环 三.标号和GOTO语句 嵌套循环和标号 四. NULL 语句 一.条件分支语句 1.if判断 IF <布尔表达式> THEN PL/SQL 和 SQL语句 END IF; 2.if else判断 IF <布尔表达式> THEN PL/SQL 和 SQL语句 ELS

  • Oracle在PL/SQL中嵌入SQL语句

    PL/SQL块中只能直接嵌入SELECT.DML(INSERT,UPDATE,DELETE)以及事务控制语句(COMMIT,ROLLBACK,SAVEPOINT), 而不能直接嵌入DDL语句(CREATE,ALTER,DROP)和DCL语句(GRANT,REVOKE) 1.嵌入SELECT语句 使用SELECT INTO语句时,必须要返回一条数据,并且只能返回一条数据. v_ename emp.ename%type; v_sal emp.sal%type; select ename,sal in

  • 如何优化sql中的orderBy语句

    目录 全字段排序 RowId 排序 orderby的优化 总结 在使用数据库进行数据查询时,难免会遇到基于某些字段对查询的结果集进行排序的需求.在sql中通常使用orderby语句来实现.将需要排序的字段放到 该关键词后,如果有多个字段的话,就用","分割. select * from table t order by t.column1,t.column2; 上面的sql表示查询表table中数据,然后先按照column1排序,如果column1相同的话,在按照column2排序,排

  • SQL中代替Like语句的另一种写法

    比如查找用户名包含有"c"的所有用户, 可以用 use mydatabase select * from table1 where username like'%c%" 下面是完成上面功能的另一种写法: use mydatabase select * from table1 where charindex('c',username)>0 这种方法理论上比上一种方法多了一个判断语句,即>0, 但这个判断过程是最快的, 我想信80%以上的运算都是花在查找字 符串及其它

  • mybatis 查询sql中in条件用法详解(foreach)

    foreach属性主要有item,index,collection,open,separator,close 1.item表示集合中每一个元素进行迭代时的别名, 2.index指定一个名字,用于表示在迭代过程中,每次迭代到的位置, 3.open表示该语句以什么开始, 4.separator表示在每次进行迭代之间以什么符号作为分隔符, 5.close表示以什么结束, 6.collection属性,该属性是必须指定的,但是在不同情况下,该属性的值是不一样的, 主要有一下3种情况: a.如果传入的是单

  • Oracle PL/SQL中异常高级特性示例解析

    PL/SQL(Procedural Language/SQL,过程语言/SQL)是结合了Oracel过程语言和结构化查询语言(SQL)的一种扩展语言. 优点: (1)PL/SQL具有编程语言的特点,它能把一组SQL语句放到一个模块中,使其更具模块化种序的特点. (2)PL/SQL可以采用过程性语言控制程序的结构. (3)PL/SQL有自动处理的异常处理机制. (4)PL/SQL程序块具有更好的可移植性,可移植到另一个Oracle数据库中. (5)PL/SQL程序减少了网络的交互,有助于提高程序性

  • Oracle对PL/SQL中的异常处理

    目录 一.异常处理 1.三种的异常类型: 2.异常的SQLCode 和 SQLERRM 二.处理预定义例外 常见错误预定义的名称 三.处理非预定义例外(exception_init) 四.处理自定义例外(通过Raise ) 五.应用程序的异常处理.(通过Raise_Application_Error ) 一.异常处理 PL/SQL提供了良好的异常处理机制,当程序运行出现错误时就会触发异常.异常被触发时,程序执行即终止,在PL/SQL块中提供了异常处理的部分,从而可以捕获一个异常进行特殊处理. 1

  • Oracle在PL/SQL中使用子查询

    目录 一.概述 1.单行子查询(子查询只返回一行) 2.多行单列子查询(子查询返回多行) 3.多列子查询 二.在DDL语句中使用子查询 1.create table 2.create View 3.create materialized view 建立实体化视图 三.在DML语句中使用子查询 1.INSERT 2.UPDATE 3.DELETE 四.WITH语句 五.相关子查询. 一.概述 在一个SQL语句中嵌套另一个SQL语句成为子查询.包括单行子查询,多行子查询,多列子查询. 注意,当在DD

  • Oracle在PL/SQL中使用存储过程

    目录 一.概述 二.存储过程详解 1.创建过程语法: 2.创建存储过程 3.调用存储过程 4.C# 调用: 三.存储过程返回记录集SYS_REFCURSOR 1.返回单行语法 2.返回多行语法 四.维护存储过程 1.删除过程 2.显示过程代码 3.查看过程状态 4.重新编译过程 五. 过程与函数比较 1.相同点: 2.不同点: 六. 与过程相关数据字典 一.概述 过程和函数统称为PL/SQL子程序,他们是被命名的PL/SQL块,均存储于数据库中. 并通过输入.输出和输入输出参数与其调用者交换信息

  • oracle中动态SQL使用详细介绍

    1.静态SQLSQL与动态SQL Oracle编译PL/SQL程序块分为两个种:其一为前期联编(early binding),即SQL语句在程序编译期间就已经确定,大多数的编译情况属于这种类型:另外一种是后期联编(late binding),即SQL语句只有在运行阶段才能建立,例如当查询条件为用户输入时,那么Oracle的SQL引擎就无法在编译期对该程序语句进行确定,只能在用户输入一定的查询条件后才能提交给SQL引擎进行处理.通常,静态SQL采用前一种编译方式,而动态SQL采用后一种编译方式.

随机推荐