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语句的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
Oracle工具PL/SQL的基本语法
在本章中,我们将学习PL/SQL的基本语法,PL/SQL是块结构语言; PL/SQL程序划分成几个部分,并在每个部分中写入逻辑代码块.每个块由三个子部分组成 - 声明部分 - 此部分是以关键字DECLARE开头.这是一个可选部分,并定义了程序中要使用的所有变量,游标,子程序和其他元素. 可执行命令部分 - 此部分包含在关键字BEGIN和END之间,这是一个强制性部分.它由程序的可执行PL/SQL语句组成.它应该有至少一个可执行代码行,它可以只是一个NULL命令,表示不执行任何操作. 异常处理部分
-
Oracle如何使用PL/SQL调试存储过程
调试过程对找到一个存过的bug或错误是非常重要的,Oracle作为一款强大的商业数据库,其上面的存过少则10几行,多则上千行,免不了bug的存在,存过上千行的话,找bug也很费力,通过调试可以大大减轻这种负担. 工具/原料 PL\SQL Oracle 方法/步骤 首先在PL/SQL的左侧资源栏中展开Procedures项(图中位置1),然后再其上面的搜索框中(图中位置2)输入存过名称的关键词,按回车键搜索要调试的存过,不停的回车,直到找到想要调试的存过. 找到想要调试的存过,左键单击选中该存过(
-
PL/SQL中编写Oracle数据库分页的存储过程
其实 Oracle数据库的分页还是比较容易理解的.此文以oracle数据库中的SCOTT用户的EMP表为例,用PL/SQL Developer编写一个分页存储过程,要求是:可以输入表名,每页显示记录数,当前页,返回总记录数,总页数和返回的结果集. 由于需要返回查询出来的结果集,需要在PL/SQL中创建一个package,这个包里面定义一个refcursor类型,用于记录sql语句查询出来的结果集.创建包的代码如下: create or replace package pagingPackage
-
利用PL/SQL从Oracle数据库导出和导入数据
本文实例为大家分享了使用PL/SQL从Oracle数据库导出和导入数据的方法,供大家参考,具体内容如下 1.导出数据: 方式一:工具->导出用户对象->导出.sql文件 注:这种方式导出的是建表语句和存储过程语句 方式二:工具->导出表 注: 这里是导出表的结构和数据 第一种方式导出.dmp格式的文件,.dmp是二进制文件,可跨平台,还能包含权限,效率不错,用的最为广泛. 第二种方式导出.sql格式的文件,可用文本编辑器查看,通用性比较好,效率不如第一种,适合小数据量导入导出.尤其注意的
-
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
-
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使用流程控制语句
目录 一.条件分支语句 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
-
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中嵌入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采用后一种编译方式.
随机推荐
- VBS中解决带空格路径的三种方法
- vbs的字符串操作效率分析总结
- 设计模式中的迭代器模式在Cocoa Touch框架中的使用
- 极力推荐10个短小实用的JavaScript代码段
- JS模拟键盘打字效果的方法
- asp.net在iframe中弹出信息并执行跳转问题探讨
- PHP Laravel 上传图片、文件等类封装
- PHP中$GLOBALS['HTTP_RAW_POST_DATA']和$_POST的区别分析
- C#实现listview Group收缩扩展的方法
- js判断url是否有效的两种方法
- switch语句的妙用(必看篇)
- Vim中列出TODO与FIXME等备注的方法
- C语言的语法风格与代码书写规范指南
- Java并发编程示例(八):处理线程的非受检异常
- ASP.NET 2.0 中收集的小功能点(转)
- springMVC图片上传的处理方式详解
- C读txt到二维数组的实现方法
- Python中的Classes和Metaclasses详解
- python3+PyQt5实现拖放功能
- Django之提交表单与前后端交互的方法