DECLARE
V_SQL_DROP_TABLE VARCHAR2(50) := ‘DROP TABLE MY_TEST2‘;
V_SQL_CREATE_TABLE VARCHAR2(100) := ‘CREATE TABLE MY_TEST2(NOT_NULL VARCHAR2(20) NOT NULL, ONLY_INT INTEGER)‘;
BEGIN
EXECUTE IMMEDIATE V_SQL_CREATE_TABLE; -- 创建测试表
EXCEPTION
-- 如果表已存在,则会引发异常
WHEN OTHERS THEN
EXECUTE IMMEDIATE V_SQL_DROP_TABLE; -- 先删除
EXECUTE IMMEDIATE V_SQL_CREATE_TABLE; -- 再创建
END;
/
--2.用我们刚创建的测试表进行测试
DECLARE
V_COUNT INTEGER; -- 表中记录的行数
V_INT_VAL MY_TEST.ONLY_INT%TYPE; -- 使用%TYPE关键字参照某表某字段类型声明变量
BEGIN
V_INT_VAL := 123456;
-- 插入一条正确的数据
INSERT INTO MY_TEST2 VALUES (‘TEST_SUCCESS‘, V_INT_VAL);
-- 查询条数为1条,我们发现插入成功了
SELECT COUNT(*) INTO V_COUNT FROM MY_TEST;
DBMS_OUTPUT.put_line(‘MY_TEST表中有‘ || V_COUNT || ‘条记录‘);
-- 插入一条错误的数据,因为第二个字段为int型,插入字符数据肯定会出错
/* INSERT INTO MY_TEST VALUES (‘TEST_FAIL‘, ‘ABC‘); */
-- 最后提交更改
COMMIT;
EXCEPTION
-- 异常处理
WHEN OTHERS THEN
ROLLBACK; -- 异常时回滚,这样第一次插入的正确数据也不会保存到数据库
DBMS_OUTPUT.put_line(‘[PL/SQL 事务]中出现异常,错误代码:ORA‘ || sqlcode);
-- 我们验证一下表里的数据为0条
SELECT COUNT(*) INTO V_COUNT FROM MY_TEST;
DBMS_OUTPUT.put_line(‘回滚后,MY_TEST表中有‘ || V_COUNT || ‘条记录‘);
END; -- 可执行语句结束
/ -- 该符号表示执行这段PL/SQL代码
oracle执行多个pl/sql块
时间: 2024-10-09 09:04:43
oracle执行多个pl/sql块的相关文章
PL/SQL(二)PL/SQL块
PL/SQL是一种块结构的语言,一个PL/SQL程序包含了一个或者多个逻辑块,逻辑块中可以声明变量,变量在使用之前必须先声明.除了正常的执行程序外,PL/SQL还提供了专门的异常处理部分进行异常处理.每个逻辑块分为三个部分,语法是: 语法结构:PL/SQL块的语法 [DECLARE --declaration statements] ① BEGIN --executable statements ② [EXCEPTION --exception statements] ③ END; 语法解析:
Oracle数据库之开发PL/SQL子程序和包
Oracle数据库之开发PL/SQL子程序和包 PL/SQL块分为匿名块与命名块,命名块又包含子程序.包和触发器. 过程和函数统称为PL/SQL子程序,我们可以将商业逻辑.企业规则写成过程或函数保存到数据库中,以便共享. 过程和函数均存储在数据库中,并通过参数与其调用者交换信息.过程和函数的唯一区别是函数总向调用者返回数据,而过程不返回数据. 1. 存储过程概念 存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL语句集,存储在数据库中.经过第一次编译后
PL/SQL语法简介(匿名PL/SQL块)
PL/SQL PL/SQL是Oracle在关系数据库结构化查询语言SQL基础上扩展得到的一种过程化查询语言. SQL与编程语言之间的不同在于,SQL没有变量,SQL没有流程控制(分支,循环).而PL/SQL是结构化的和过程化的结合体,而且最为重要的是,在用户执行多条SQL语句时,每条SQL语句都是逐一的发送给数据库,而PL/SQL可以一次性将多条SQL语句一起发送给数据库,减少网络流量 SQL执行 PL/SQL执行 匿名Pl/SQL块 – 动态构造,只能执行一次 一次性完成,没有名字 存储过程,
Oracle学习(十一):PL/SQL
1.知识点:可以对照下面的录屏进行阅读 PL/SQL程序结构 declare 说明部分 (变量说明,光标申明,例外说明 ] begin 语句序列 (DML语句]- exception 例外处理语句 End; / ------------------------------------------------------------------ --第一个PL/SQL程序:HelloWorld set serveroutput on --如果要在屏幕上输出信息,需要将serveroutput开关打
oracle PL\SQL块和复合类型
2018-12-04 PL\SQL程序块由三个部分组成:声明部分.执行部分.异常处理部分. 其结构如下: declare /*声明部分:说明要用到得变量,类型及游标,以及局部存储过程和函数*/ /*变量的定义和系统保留字要区分开(sql server 中可用@ PL\SQL不能用@)*/ begin /*执行部分:过程及SQL语句*/ /*必须有*/ exception /*异常处理部分:错误处理*/ end; PL/SQL中除了一些常见的变量类型外,还有复合类型 复合类型分为记录和表 记录:由
Oracle笔记 八、PL/SQL跳转/判断/循环语句块
--goto跳转语句 --在goto 后,跳转到相应的语句,然后执行该语句和后面所有语句 begin dbms_output.put_line('goto开始了'); goto c; --不被执行 dbms_output.put_line('goto'); dbms_output.put_line('goto'); dbms_output.put_line('goto'); dbms_output.put_line('goto'); <<a>> dbms_output.put_li
ORACLE数据库笔记之PL/SQL
PL/SQL PL/SQL是一种块结构的语言,它是将一组语句放在一个块中,一次性发送给服务器.它是结合Oracle过程语言和结构化查询语言的一种扩展语言 PL/SQL代码块的构成 declare --标记声明部分用来声明一些变量,位于begin之前 begin --主程序体开始的标志 主程序体块: [exception when 异常名 then 异常处理的方法; when 异常名 then 异常处理的方法; ... when other then 异常处理的方法;] end; --主程序
[Oracle系列整理01]PL/SQL 基本查询与排序
本课重点: 1.写SELECT语句进行数据库查询 2.进行数学运算 3.处理空值 4.使用别名ALIASES 5.连接列 6.在SQL PLUS中编辑缓冲,修改SQL SCRIPTS 7.ORDER BY进行排序输出. 8.使用WHERE 字段. 一.写SQL 命令: 不区分大小写. SQL 语句用数字分行,在SQL PLUS中被称为缓冲区. 最后以:或 / 结束语句. 也可以用RUN来执行语句 二.例1:
oracle 学习笔记之PL/SQL程序设计
1.PL/SQL的定义: PL/SQL(Procedure Language/SQL) PLSQL是Oracle对sql语言的过程化扩展 指在SQL命令语言中增加了过程处理语句(如分支.循环等),使SQL语言具有过程处理能力. 把SQL语言的数据操纵能力与过程语言的数据处理能力结合起来,使得PLSQL面向过程但比过程语言简单.高效.灵活和实用. Plsql(oracle),Transact-sql(SQL server) 2.入门程序-->打印hello world; set serverout