
正文
oracle的存储过程与触发器,oracle存储过程和触发器
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
Oracle存储过程触发器用法
1、:存储过程的创建和执行 用户存储过程只能定义在当前数据库中,可以使用sql语句或OEM创建。默认情况下,用户创建的存储过程归登录数据库的用户所拥有,DBA可以把许可授权给其他用户。
2、触发器(trigger)是个特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作( insert,delete, update)时就会激活它执行。触发器经常用于加强数据的完整性约束和业务规则等。
3、)、 在一个表中定义语句级的触发器,当这个表被删除时,程序就会自动执行触发器里面定义的操作过程。这个【删除表的操作】就是触发器执行的条件。
4、ORACLE触发器有以下两类:1 语句级(Statement-level)触发器,在CREATE TRIGGER语句中不包含FOR EACH ROW子句。语句级触发器对于触发事件只能触发一次,而且不能访问受触发器影响的每一行的列值。
5、可用于强制引用常量,在添加,更新或删除多个表中的行时终止,保留这些表之间定义的关系。但是,强制引用替换的最佳方法是在相关表中定义主键和外键约束。
相关问答
Q1: oracle导入dmp后函数、存储过程、视图、触发器有红叉,
存储过程或其他对象如函数、触发器红叉有几种可能:程序本身存在编译错误,即编译未通过,此时需查看具体错误以改正。程序长时间未调用后失效需重新编译(无需手动编译)。属正常现象。
导出时使用query选项,将你需要的更新的数据导出(前提是你的数据能有分辨是否是更新项的字段)。在你的电脑中将数据删除(delete或truncate,个人建议truncate),那样导入的都是最新的数据了。
这要看你导出的包的表的表空间是那个,并不是你导入把表空间建好它就能导入到你建的表空间里。
建议你导出的时候按用户导出,不要用sys全部导出来 还有在导入的时候需要指定导入到哪个用中去。给个操作手顺吧,我今天刚弄完的。
imp username/password@SERVICENAME file=e:\temp.dmp full = y 将其中的Username换成你自己的用户名,如SYSTEM,Password你懂的 SERVICENAME是你的Oracle的服务名。
导入语句中加入EXCLUDE=STATISTICS 把统计信息排除掉,数据导进去以后 手动重新收集统计信息。
Q2: oracle存储过程和触发器用途
存储过程:是大型的SQL语句集,用于在大型数据库系统中完成特定的功能。初始化:SQLServer提供给程序员和数据分析人员以确保数据初始化的一种方法。
存储过程:是在大型数据库系统中,一组为了完成特定功能的SQL 语句集。触发器:是SQL server 提供给程序员和数据分析员来保证数据完整性的一种方法。
触发器是一种特殊类型的存储过程,当使用下面的一种或多种数据修改操作在指定表中对数据进行修改时,触发器会生效:UPDATE、INSERT 或 DELETE。触发器可以查询其它表,而且可以包含复杂的 SQL 语句。
触发器是一种特殊的存储过程,在插入、删除、修改特定表中的数据时触发执行,拥有比数据库本身更强大的数据控制能力,其作用有以下四大方面。
Q3: 数据库存储过程、函数、触发器的区别是什么?
一般来说,存储过程实现的功能要复杂一点,而函数的实现的功能针对性比较强。 对于存储过程来说可以返回参数,而函数只能返回值或者表对象。
存储过程,可以返回多个值,函数只能一个;触发器是一个特殊的存储过程。当他满足一当条件时执行,例子:如果几个有关联的表,其中主表的数据删除了~那么子表的也要一起删掉。
触发器是特殊的存储过程,存储过程需要程序调用,而触发器会自动执行;你所说的函数是自定义函数吧,函数是根据输入产生输出,自定义只不过输入输出的关系 由用户来定义。
Q4: 触发器和存储过程的区别有哪些?
指代不同 存储过程:是在大型数据库系统中,一组为了完成特定功能的SQL 语句集。触发器:是SQL server 提供给程序员和数据分析员来保证数据完整性的一种方法。
参考不同 存储过程:是大型的SQL语句集,用于在大型数据库系统中完成特定的功能。初始化:SQLServer提供给程序员和数据分析人员以确保数据初始化的一种方法。
三者差别:存储过程实现的功能要复杂一点,而函数实现的功能针对性比较强。
首先介绍一下触发器:触发器是一种特殊类型的存储过程,当使用下面的一种或多种数据修改操作在指定表中对数据进行修改时,触发器会生效:UPDATE、INSERT 或 DELETE。触发器可以查询其它表,而且可以包含复杂的 SQL 语句。
values(@id,@name);end;两个区别,通过语法可以看出来,触发器是在执行了一定的操作后,根据触发条件,系统自动执行某一操作;而存储过程则是根据你设定的特定操作,来进行相应的操作而已。
Q5: oracle触发器使用总结
1、在一个表中定义的语句级的触发器,当这个表被删除时,程序就会自动执行触发器里面定义的操作过程。这个就是删除表的操作就是触发器执行的条件了。
2、语句触发器 是在表上或者某些情况下的视图上执行的特定语句或者语句组上的触发器。能够与INSERT、UPDATE、DELETE或者组合上进行关联。但是无论使用什么样的组合,各个语句触发器都只会针对指定语句激活一次 。
3、create or replace trigger 触发器名 instead of [delete or insert or update] On 视图名 [for each row] ---行触发器条件 begin 具体语句。
4、语句级(Statement-level)触发器,在CREATE TRIGGER语句中不包含FOR EACH ROW子句。语句级触发器对于触发事件只能触发一次,而且不能访问受触发器影响的每一行的列值。
5、你的触发器有两处错误。你的 table_sid 是一个 number型的数组,因此你select * 是不可以的。你想把你查询的结果直接写到数组里面,必须用 buik collect into的语法。
关于oracle的存储过程与触发器和oracle存储过程和触发器的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。






