--sql window中写存储过程(本例对dept_copy表的操作) create or replace procedure p_update_dept( l_remarker in number,--0增,1删,2改 l_deptno in number, l_dname in varchar2, l_loc in varchar2, l_result out varchar2 --传出参数 ) is begin l_result := '0000'; if l_remarker = 0 then --0 增加 insert into dept_copy values(l_deptno,l_dname,l_loc); elsif l_remarker = 1 then --1删除 delete from dept_copy p where p.deptno = l_deptno; elsif l_remarker = 2 then --2修改 update dept_copy p set p.loc = l_loc,p.dname = l_dname where p.deptno = l_deptno; end if; commit; exception when others then rollback; l_result:='1111'; end; ----------------------------------------------- --调用存储过程(主要是java中调用) -- test window中调用存储过程(可在output选项卡中看到执行返回的结果,对哪个表操作,看哪个表也能看出来。) declare -- Local variables here l_result varchar2(4); --返回值的长度是好写上 begin -- Test statements here p_update_dept(0,99,'ACCOUNTING','NEW YORK',l_result); --p_update_dept为存过程名称,括号里为存储过程定义的参数。 dbms_output.put_line(l_result); end; ========================触发器小例子=================== --行级触发器,一个表中数据发生变化时同时修改另一个表中对应字段的值 create or replace trigger trig2 after update on dept_copy for each row --针对每一行 begin update emp_copy e set e.deptno = :NEW.deptno where e.deptno = :old.deptno; end; /*当表dept_copy的deptno字段发生变化,修改对应表emp_copy的deptno字段的值 */ -- 当执行更新下表时触发器被触发 update dept_copy d set d.deptno = 99 where d.deptno = 10; --------------------------------------------------- ---语句级触发器(用的较少) create or replace trigger t_emp_copy before insert or delete or update on emp_copy begin if inserting then insert into emp_copy_log values (seq_emp_copy_log.nextval, 'insert', user, sysdate); elsif deleting then insert into emp_copy_log values (seq_emp_copy_log.nextval, 'delete', user, sysdate); elsif updating then insert into emp_copy_log values (seq_emp_copy_log.nextval, 'update', user, sysdate); end if; end;
发表评论
-
oracle10g完全缷载略记
2016-07-09 15:14 844软件环境: 1、Windows7 + Oracle 10g ... -
MySQL zip版的简单安装方式
2016-06-25 17:56 805Windows下MySQL zip版的简单安装 1、下载My ... -
关系型数据库三范式解释
2016-04-07 11:54 1281数据库 三范式最简单最易记的解释,整理一下方便大家记忆。 书上 ... -
log4j.properties配置详解
2016-01-18 16:50 1324Log4J的配置文件(Configuration File)就 ... -
Java读写文件中文乱码问题
2015-07-20 17:49 3003问题:在用Java程序进行读写含中文的txt文件时,经常会出现 ... -
oracle中的视图详解及实例
2015-03-26 16:42 17141.创建用户并授权: cre ... -
plsql快捷键设置
2015-01-19 14:15 24481.使用PL/SQL中经常性需要输入select * fro ... -
database link问题解决
2015-01-15 15:00 6670Oracle数据库中关于databas ... -
Oracle10g创建Database link
2015-01-14 10:53 969Oracle10g创建Database link ... -
union和union all的区别
2014-12-29 16:20 1312Union因为要进行重复值扫描,所以效率低。如果合并没有刻意要 ... -
oracle数据库导入导出
2014-11-04 11:33 827oracle数据库导入导出(导出为dmp格式) 一、数据导出: ... -
Oracle中decode函数用法
2014-10-24 10:40 1227含义解释: decode(条件,值1,返回值1,值2 ... -
db语句优划与用法相关
2014-09-19 17:01 6661. oracle 中的not in() 与not exist ... -
oracle 临时表空间 和数据表空间
2014-08-25 13:28 932Oracle临时表空间主要用来做查询和存放一些缓冲区数据。临 ... -
--Oracle 删除用户和表空间
2014-08-25 11:40 2493--查看oracle所有的表空间 select dbf.tab ... -
Oracle trunc()函数的用法 to_date()
2014-07-01 14:24 1422Oracle trunc()函数的用法 --Oracle ... -
sql执行顺序
2014-06-17 21:06 855在查询中逻辑查询和 ... -
监听listener oracle 错误 1067:进程意外终止
2014-05-15 19:20 1619监听listener oracle 错误 1067:进程意外终 ... -
jdbc properties文件配置
2014-05-05 21:33 1364前言 JDBC(Java Data Base Connecti ... -
PLSQL 创建表空间和用户
2014-03-14 18:09 3542通过pl/sql登录到Oracle数据库上,然后执行菜单:文件 ...
相关推荐
在这个例子中,`my_procedure`是你要执行的存储过程,`start_date`定义了首次执行时间,`repeat_interval`定义了执行频率。 三、数据库触发器示例 ```sql CREATE OR REPLACE TRIGGER daily_check BEFORE LOGON ON ...
在Oracle中,创建存储过程使用`CREATE PROCEDURE`语句,调用则通过`EXECUTE`命令。例如,一个简单的存储过程可能用于计算两个数字的和: ```sql CREATE OR REPLACE PROCEDURE add_numbers (p_num1 NUMBER, p_num2...
在这个例子中,`ProcTest.java`使用JDBC的`CallableStatement`来调用存储过程,设置输入参数并获取输出结果。 总结来说,Oracle存储过程和触发器是数据库编程的重要工具,它们有助于提高代码的复用性和数据库的性能...
从给定的Oracle Job实例测试通过的描述与代码片段中,我们可以提炼出多个关于Oracle数据库管理、编程与作业调度的关键知识点。以下是对这些知识点的详细解释: ### 1. 创建序列(Sequence) 在Oracle数据库中,...
在这个例子中,每当向`users`表中插入新记录时,`insert_user_trigger`会在插入操作之前被触发,自动为`created_at`字段设置当前系统日期。 通过学习和实践这些Oracle数据库语句、存储过程、函数和触发器,开发者...
CREATE OR REPLACE PROCEDURE PROC_UPDATE_EMPLOYEE( p_employee_id NUMBER, p_first_name VARCHAR2, p_last_name VARCHAR2) AS BEGIN UPDATE employees SET first_name = p_first_name, last_name = p_last_...
CREATE TRIGGER trigger_name BEFORE|AFTER|INSTEAD OF {INSERT|UPDATE|DELETE|TRUNCATE|DROP|SELECT FOR UPDATE} ON table_name REFERENCING OLD AS old NEW AS new FOR EACH ROW DECLARE -- 变量声明 BEGIN -- ...
6. **存储过程和触发器**:学习编写存储过程来封装复杂的业务逻辑,以及触发器(TRIGGER)的使用,例如自动执行某些操作当数据更改时。 7. **PL/SQL块**:理解声明部分、执行部分和异常处理部分的结构,以及如何在...
CREATE OR REPLACE TRIGGER del_s BEFORE DELETE ON s_c FOR EACH ROW BEGIN INSERT INTO s_c1 (id, name) VALUES (:old.id, :old.name); END; ``` 该触发器定义了在`s_c`表上进行删除操作前的逻辑,即当有记录被...
CREATE OR REPLACE TRIGGER my_trigger BEFORE INSERT ON my_table FOR EACH ROW BEGIN IF :new.column_value IS NULL THEN RAISE_APPLICATION_ERROR(-20001, 'Column value cannot be null'); END IF; END; ``` ...
Mysql 甲骨文 是个开源的数据库server,可运行在多种平台, 特点是响应速度特别快,主要面向中小企业 中小型企业 PostgreSQL 号称“世界上最先进的开源数据库“,可以运行在多种平台下,是tb级数据库,而且性能也很...
3. 创建一个触发器,比如`DATA_CHANGE_TRIGGER`,当特定表的数据发生变化时,调用`DBMS_SCHEDULER.RUN_JOB('UPDATE_DATABASE_JOB')`,从而启动Job。 4. 在数据库中测试并启用触发器和Job。 总结,Oracle中的Job调度...
第一部分 Oracle SQL*PLUS基础 23 第一章 Oracle数据库基础 23 §1.1 理解关系数据库系统(RDBMS) 23 §1.1.1 关系模型 23 §1.1.2 Codd十二法则 24 §1.2 关系数据库系统(RDBMS)的组成 24 §1.2.1 RDBMS 内核 24...
如例子所示: - 无参数函数:`variable t1 char(1); exec t1:=test1; print t1;` - 单参数函数:`variable t2 char(1); exec t2:=test2('5'); print t2;` - 多参数函数:`variable t3 number; exec t3:=test3(2,...
CREATE OR REPLACE TRIGGER update_salary_trigger BEFORE INSERT ON employees FOR EACH ROW BEGIN IF :NEW.salary > 50000 THEN :NEW.salary := 50000; END IF; END; ``` 以上内容涵盖了 Oracle PL/SQL 的基础...
过程 PPT"中,可能还涉及了存储过程(Stored Procedure)、函数(Function)、触发器(Trigger)等PL/SQL高级特性,以及它们在数据库管理和应用开发中的作用。 综上所述,Oracle的PL/SQL编程是数据库开发中的强大...
Oracle基础是数据库管理和开发的重要领域,它涉及到一系列用于高效存储、管理及操作数据的技术和工具。在本资源中,我们重点关注以下几个关键...在提供的“上课例子”中,你将有机会亲手实践这些概念,从而加深理解。
以实验中的例子为例,要从S表中查询所有女生的信息,需要先创建存储过程的包规范,定义其公共接口。接着创建包主体,其中包含具体的SQL查询语句。执行存储过程时,可以通过PL/SQL调用这个过程来获取结果。例如: ``...
在Oracle中,创建存储过程使用CREATE PROCEDURE语句,调用则使用EXECUTE关键字。例如,以下是一个简单的存储过程示例: ```sql CREATE OR REPLACE PROCEDURE greet(name IN VARCHAR2) AS BEGIN DBMS_OUTPUT.PUT_...
在这个例子中,当交易表`transactions`有新插入的记录时,触发器会调用存储过程更新账户余额,并将流水信息写入`account_flow`表。 总结,Oracle存储过程是数据库管理中的强大工具,它能够实现复杂的业务逻辑,提高...