1、创建执行语句
declare
cursor venList is select * from tbl_venue ;
begin
--for循环
for ven in venList loop
dbms_output.put_line('部门名称:'||VEN.id);
end loop;
--COMMIT;
end ;
2、创建触发器
create or replace trigger 触发器名称
after/before INSERT OR UPDATE OR DELETE on 表名
for each row
declare
mesg varchar2(100);
begin
case
when inserting then
begin
mesg := '赋值';
用 :new来取新属性值,如: :new.id
EXception when others then
dbms_output.put_line('部门名称:' ||:old.id);
end;
when updating then
begin
mesg := '赋值';
用 :new来取新属性值,如: :new.id
用 :old来取旧属性值,如: :old.id
EXception when others then
dbms_output.put_line('部门名称:' ||:old.id);
end;
when deleting then
begin
mesg := '赋值';
用 :old来取旧属性值,如: :old.id
EXception when others then
dbms_output.put_line('部门名称:' || :old.id);
end;
end case;
end;
3、创建函数
(1)、单个属性
create or replace function getReportDate(param in varchar2 .. .)
return varchar2 is --返回类型
accept_time varchar2(1000);
v_acc_nbr date;
CURSOR cur_1 is select sysdate from daul; --定义游标
begin
open cur_1; --打开游标
loop
fetch cur_1
into v_acc_nbr; --单个属性值
exit when cur_1%notfound;
if accept_time is null then
----执行语句
else
----执行语句
end if;
end loop;
close cur_1;
return(accept_time); --返回
end getReportDate;
(2)、多个属性值
create or replace function getReportDate(param in varchar2 .. .)
return varchar2 is --返回类型
accept_time varchar2(1000);
p1 date;
p2 date;
p3 date;
CURSOR cur_1 is select sysdate,sysdate,sysdate from daul; --定义游标
begin
open cur_1; --打开游标
loop
fetch cur_1 into p1,p2,p3; --多个属性值
exit when cur_1%notfound;
if accept_time is null then
----执行语句
else
----执行语句
end if;
end loop;
close cur_1;
return(accept_time); --返回
end getReportDate;
4、创建存储过程
create or replace procedure 存储过程名称 is--无参
--create or replace procedure 存储过程名称(queryPara varchar2.. .) is --有参
sql_set varchar2(1024); --定义变量
cursor crData is select * from 表名;
begin
for rowData in crData loop
--捕捉异常
BEGIN
dbms_output.put_line('打印:' || rowData.id);
EXCEPTION WHEN OTHERS THEN
dbms_output.put_line('打印:');
END;
end loop;
end 存储过程名称;
分享到:
相关推荐
其次,存储过程(Stored Procedures)是一组为了完成特定功能的SQL语句集合,存储在数据库中并可由应用程序调用执行。它们提供了一种封装和重用SQL代码的方式,增强了代码的安全性,减少了网络通信量,提高了数据库...
SQL的存储过程、触发器等建立视图存储过程触发器函数(自定义函数)索引 视图 视图是从一个或几个基本表(或视图)导出的表。不同的是,它是一虚表,数据库中只存放视图的定义,而不存放视图对应的数据,这些数据...
在数据库管理中,函数、触发器和存储过程是三个重要的概念,它们极大地增强了数据处理的灵活性和效率。 **一、MySQL数据库函数** 函数是预定义的代码块,接受一个或多个参数,并返回一个值。MySQL提供了丰富的内置...
### MySQL触发器、存储过程、自定义函数、视图示例 #### 一、MySQL触发器 触发器是一种特殊类型的存储过程,它被设计为在特定事件(如INSERT、UPDATE或DELETE操作)发生时自动执行。触发器可以用来强制业务规则、...
5. **索引优化**:合理创建和使用索引可以显著提升触发器和存储过程的执行效率,但过多的索引可能导致插入和更新操作变慢。 6. **并发控制**:在多用户环境下,理解并正确使用锁定机制、乐观锁和悲观锁策略,防止...
PLSQL Developer中存储过程、存储函数和触发器的编写和管理 PLSQL Developer是一种功能强大的Oracle数据库开发工具,提供了许多功能来帮助开发者快速编写和管理存储过程、存储函数和触发器等高级数据库对象。本文将...
这些是平时个人兴趣爱好收集到的易飞ERP系统触发器/函数/储存过程/视图集。适合人群:系统管理员,运维专员或鼎捷顾问等
在数据库管理领域,触发器是一种特殊类型的存储过程,它被设计为当特定事件(如数据插入、更新或删除)发生时自动执行。触发器能够帮助维护数据的一致性和完整性,确保业务逻辑的正确执行。本文将深入探讨如何使用...
在GBase8s中,创建存储过程使用`CREATE OR REPLACE PROCEDURE`语句,例如: ```sql CREATE OR REPLACE PROCEDURE PRO1(A INT) IS STR VARCHAR2(100); c1t2 int; c2t2 varchar2(10); e exception; BEGIN DELETE...
在SQL Server中创建存储过程,你需要使用CREATE PROCEDURE语句,定义输入参数(如果需要)、输出参数(用于返回值)和执行的SQL命令。存储过程可以包含控制流语句,如IF-ELSE、WHILE循环,以及游标和事务管理,使得...
SQL触发器、存储过程和函数是数据库管理中的重要组成部分,它们极大地增强了数据库的功能性和灵活性。在本篇文章中,我们将深入探讨这些概念,并提供实用的示例来帮助理解它们的使用和重要性。 **SQL触发器...
【触发器、存储过程和函数的区别】 触发器、存储过程和函数都是数据库管理系统中的重要组件,它们各自在特定场景下发挥着不同的作用。 1. **触发器(Triggers)** - 触发器是一种特殊的存储过程,它会在特定的...
SQL语句,存储过程,触发器
### 自定义函数、存储过程和触发器 #### 9.1 自定义函数 自定义函数是在SQL Server中由用户自行创建的一种子程序,用于补充和扩展系统提供的内置函数功能。自定义函数的主要目的是提高代码的复用性以及解决特定...
根据提供的信息,我们可以深入探讨存储过程、存储函数与触发器的相关知识点。 ### 存储过程 存储过程是一种预编译的SQL代码块,它被存储在数据库中,并且可以通过简单的调用来执行复杂的逻辑操作。存储过程可以...
触发器调用存储过程的过程中可能会出现的问题是,insert语句不是自动提交的,因此当insert语句没有提交时,update语句可能会报“表/视图发生了变化,程序不能读它”的错误。这个问题可以通过使用Oracle自治事务来...
1. **性能优化**:由于存储过程和函数在首次创建时就被编译,后续调用只需执行已编译的代码,减少了解析和编译的时间。 2. **安全**:通过存储过程,可以限制用户对数据的直接访问,只允许执行预定义的操作,提高...
存储过程是数据库中一组预编译的SQL语句,它可以接收参数,执行特定任务,并返回结果。其优点包括: 1. 提高性能:存储过程在首次编译后,会缓存执行计划,多次调用时无需再次解析,从而提高执行速度。 2. 减少网络...
其次,存储过程(Stored Procedures)是一组预先编译的SQL语句,它们以函数的形式存在,可以在需要时调用。存储过程提高了数据库性能,减少了网络通信,并提供了模块化编程的优势。高级存储过程编程涵盖了参数化、...