`
lan13217
  • 浏览: 499298 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

oracle笔记 (存储过程storeprocedure、函数function和触发器 trigger )

阅读更多
存储过程:带有名字的pl——sql存储块


create or replace procedure p
is 
	cursor c is
		select * from emp2 for update;
begin
	for v_emp in c loop 
		if(v_emp.deptno =10) then
			update emp2 set sal = sal + 10 where current of c;
		elsif(v_emp.deptno = 20) then
			update emp2 set sal = sal + 20 where current of c;
		else
			update emp2 set sal = sal + 50 where current of c;
		end if;
	end loop;
	commit;
end;

执行存储过程 exec p;


-- 带参 
create or replace procedure p 
	-- in 传入 out 传出 没in或out代表即默认为in
	(v_a in number,v_b number,v_ret out number, v_temp in out number) 
	is 
begin 
	if(v_a>v_b) then 
		v_ret:=v_a; 
	else 
		v_ret:=v_b; 
	end if; 
	v_temp:=v_temp+1; 
end; 
-- 调用 
declare 
	v_a number:=3; 
	v_b number:=4; 
	v_ret number; 
	v_temp number:=5; 
begin 
	p(v_a,v_b,v_ret,v_temp); 
	dbms_output.put_line(v_ret); 
	dbms_output.put_line(v_temp); 
end; 
/ 


存储过程出错没报告错误使用 show error;

-------------------------------------------------

---函数function---------------------
create or replace function  sal_tax
	(v_sal number)
	return number
is
begin 
	if(v_sal<2000)then
		return 0.10;
	elsif(v_sal <2750)then
		return 0.15;
	else
		return 0.20;
	end if;
end;


-----------触发器----------

create table emp2_log
(
uname varchar2(20),
action varchar2(10),
atime date
);
--创建一个触发器

create or replace trigger trig
	--after/befor
	--for each row 代表每更新一行触发一个事件
	after insert or delete or update on emp2 for each row
begin
	if inserting then
		insert into emp2_log values (USER, 'insert', sysdate);
	elsif updating then
		insert into emp2_log values(USER, 'update', sysdate);
	elsif deleting then
		insert into emp2_log values(USER, 'delete', sysdate);
	end if;
end;

drop trigger trig;

create or replace trigger trig
	after update on dept 
	for each row 
begin
	update emp set deptno =:NEW.deptno  where deptno =:OLD.deptno;
end;

update dept set deptno =99 where deptno =10;
分享到:
评论

相关推荐

    java-storeprocedure.rar_java存储过程_java项目

    Java存储过程是Java编程语言与数据库交互的一种技术,主要用于执行在数据库中预编译的SQL语句和数据库特定的函数。在Java项目中,存储过程的使用可以提高应用程序的性能,减少网络传输,同时也可以增强安全性,因为...

    C#调用存储过程的通用类

    ### C#调用存储过程的通用类 #### 概述 在C#开发中,经常需要与数据库进行交互,其中一个常见的需求就是通过调用数据库中的存储过程来执行复杂的查询或更新操作。本篇将详细介绍一个C#通用类,用于简化调用SQL ...

    C#调用存储过程的通用类[借鉴].pdf

    这两个变量是构造函数的输入参数,它们分别用于指定要调用的存储过程和连接到哪个数据库。 类中定义了三个主要方法: 1. `ExecuteNoQuery(params object[] paraValues)`:这个方法用于执行存储过程但不返回任何...

    Oracle DBA笔试及面试题汇总

    3. **StoreProcedure和Function的区别?** 存储过程是可执行的代码集合,可以有输入/输出参数,可以包含控制流程语句,不返回值。而函数必须有返回值,通常用于计算,不能包含修改数据的语句。 4. **如何跟踪某个...

    VB.Net 访问存储过程

    在实际项目中,你可能需要根据实际的数据库配置和存储过程参数进行调整。通过VB.Net调用存储过程,你可以实现复杂的业务逻辑,如批量更新、事务处理等,同时保持代码的清晰和可维护性。 这个名为"Accessing ...

    数据库软件开发实验报告

    2. **数据库服务器端设计**:在Oracle 10g中创建关系表,如stu(考生表)、course(考试科目表)、grade(成绩表)等,并设置主键(PK)和外键(FK),以及触发器(Trigger)和存储过程(StoreProcedure)。...

    ASP.NET分页二 storeprocedure

    其中的存储过程 i f e x i s t s ( s e l e c t * f r o m d b o . s y s o b j e c t s w h e r e i d = o b j e c t _ i d ( N ' [ d b o ] . [ P a g i n g _ A s c _ D e s c ] ' ) a n d O B J E C T P R O P E...

    sqlpromise:带有 Promise 的 mssql 包装器

    添加了 StoreProcedure 函数 用法 首先,将本地包含的 config.json 文件编辑为您的 sql server 设置。 配置与使用 NPM 上可用的 mssql 模块时相同。 现在你有三个功能: doQuery(查询) 此函数返回一个包含查询...

    SQLServer2008初探-简单语法一.pdf

    - 存储过程: `[StoreProcedure]` + 对象含义。例如: `[prcprDeleteTerminatedReps]` - 规则: `[Rules]` + 对象含义。例如: `[rlrlZipCheck]` - 默认: `[Default]` + 对象含义。例如: `[dfdfStandardQuanity]` - ...

    ADO_NET数据操作

    - `StoreProcedure`: 存储过程名称。 - `TableDirect`: 表名。 - `Text`: SQL 文本命令。 **1.4 参数集合的使用** - 在查询或存储过程中指定参数。 - 在参数集合中使用参数。 - 设置参数值。 - 占位符:对于 `...

    Linq To Sql进阶系列

    - **UDF与存储过程对比**:虽然两者都能实现复杂的数据处理逻辑,但存储过程更侧重于执行一系列SQL操作,而UDF则专注于单一的功能实现。在Linq To Sql中,两者都可以被方便地调用。 #### 6. Linq To Sql进阶系列...

    mssql数据库_神魔大陆数据库_完美世界_myselfk6x_完美工具_诛仙sql2000_

    1. "mssql_storeprocedure.sql" - 这个文件包含的是SQL Server的存储过程。存储过程是一组预先编译的SQL语句,可以用于执行复杂的数据库操作,比如数据更新、查询等。在这个上下文中,可能包含了与游戏逻辑或数据...

    ADO.NET数据操作

    - `StoreProcedure`:存储过程名称。 - `TableDirect`:表名。 - `Text`:SQL 文本命令。 - **参数集合的使用**: - 在查询或存储过程中指定参数。 - 在参数集合中使用这些参数。 - 设置参数值。 - 占位符号...

    通向架构师的道路(第十八天)万能框架Spring(一).docx

    * Spring Jdbc Template:Spring Jdbc Template 负责 ORMapping,由于我们使用的数据还需要进行一些复杂的汇总与计算,因此在未来系统开发中还需要开发一系列的 StoreProcedure(存储过程)。 三、Spring 的优点 *...

    JAVA连接MYSQL

    - `StoreProcedure.java`:存储过程的处理,用于执行预编译的数据库操作集合。 - `AuthorsBooksInfo.java`:作者和书籍关联信息的管理,可能用于建立作者与书籍的关联。 - `ExecBatch.java`:批量执行SQL语句,提高...

    CarMakingFromStock-java

    CarMakingFromStock-java 在这个项目中,我使用库存(库存)创建了一辆汽车。 保留库存并购买库存。使用该库存我生产了多少辆汽车。 #storeprocedure #java #mysql

Global site tag (gtag.js) - Google Analytics