Oracle编程脚本记录
--命令窗口查询
exec 存储名、包名、视图;
select 函数名 from dual; create or replace procedure PR_test is
begin
--存储过程的代码
Dbms_Output.put_line('这是输出的一句话');
--serveroutput 系统设置项 是否在命令窗口打开 默认是 off,
--set serveroutput on; 打开系统输出为on
--只针对当前命令窗口有效
end PR_test; --带参数存放
create or replace procedure pr_test01(sno in varchar2,cno in varchar2,degree in number,msg out varchar2) is
begin
--数据插入
insert into score values(sno,cno,degree);
commit;
Dbms_Output.put_line('插入成功');
degree:=1; --代表执行成功
--给变量赋值
msg:='执行成功';
end pr_test01; create or replace procedure PR_test02 is
--定义变量
msgl varchar2(100)
begin
--调用其他存储过程
pr_test01('','3-204',98,msgl);
Dbms_Output.put_line(msgl);
end pr_test02 --条件判断
create or replace procedure PR_test02 is
--定义变量
msgl varchar2(100);
deg number(4,2):=0;
begin
deg:=98;
--调用其他存储过程
pr_test01('','3-204',deg,msgl);
Dbms_Output.put_line(msgl);
Dbms_Output.put_line(deg);
--条件判断
if(deg=1)then
Dbms_Output.put_line('deg=1 代表执行成功');
else
Dbms_Output.put_line('deg!=1 代表执行失败');
end if;
end pr_test02; --自定义函数
--自定义必须要有返回值
create or replace function pr_fun(tablename in varchar2) return number is
rtn number :=0 ;
begin
--获取学生表的记录条数
select count(1) into rtn from student s;
dbms_output.put_line('记录条数 rtn='||rtn);
--不能执行数据修改
--动态SQL语句
EXECUTE IMMEDIATE'select count(1) into rtn from '||tablename into rtn; --into 是把查询语句的结果赋值给变量
'insert into student value (:1,:2)'using; --using只能使用在into后面,并且针对DML使用,using 是把变量的值传入语句中对应的:1,:2....
return(rtn);
exception when others then --异常处理,放在最后的语句
dbms_output.put_line('发生异常')
end pr_fun; --包
--包体
create or replace package body pg_test is --包体:存放程序,私有的
--定义存储过程
procedure PR_test is
begin
--存储过程的代码
Dbms_Output.put_line('这是输出的一句话');
--修改数据
update student set ssex='' where ssex='男';
commit;--提交数据修改
Dbms_Output.put_line('测试包的存储过程');
end PR_test;
end pg_test; --触发器源码
create or replace trigger tg_test
after insert or update or delete
on STUDENT --每次对student进行增加,修改,删除便会触发记录日志的程序
for each row
declare
-- 定义变量
msg varchar2(200);
begin
--触发代码
msg:='触发器'; --记录日志的程序
--判断操作类型
case
when inserting then
insert into log values (sq_log.nextval,'student',sysdate,'对表进行添加数据 新数据主键= '||:new.sno);
when updating then
insert into log values (sq_log.nextval,'student',sysdate,'对表进行修改数据 新数据主键='||:old.sno);
when deleting then
insert into log values (sq_log.nextval,'student',sysdate,'对表进行删除数据 新数据主键='||:old.sno);
end case;
end tg_test;
Oracle编程脚本记录的更多相关文章
- Oracle函数脚本记录
--内置函数 --聚合函数 返回单个值 '; --count()记录条数 select sum(degree) from score t; --sum(degree)求成绩总和 select avg( ...
- Oracle数据库脚本中的set define off
2018年8月6日15:11:34 Oracle数据库脚本中的set define off 前言 最近在公司写需求,接触到脚本,第一句set define off;就不知道什么意思了,查询后记录之. ...
- Oracle编程入门经典 第12章 事务处理和并发控制
目录 12.1 什么是事务处理... 1 12.2 事务处理控制语句... 1 12.2.1 COMMIT处理... 2 12.2.2 RO ...
- Oracle编程入门经典 第11章 过程、函数和程序包
目录 11.1 优势和利益... 1 11.2 过程... 1 11.2.1 语法... 2 11.2.2 建立或者替换... 2 11.2 ...
- Oracle运行脚本:exp,hist 和 err
上一篇我们讲到:首次使用rman备份数据库时,为了安全起见,我们应将整个数据库exp出来. 显而易见,每次都手敲exp代码是不可取的. ----费时费力还不规范! 为此,我们可以写一个exp脚本,之后 ...
- Shell编程——脚本编写思路与过程
Linux系统Shell编程——脚本编写思路与过程 “ 前段时间有小伙伴问我一些问题,涉及到shell脚本的编写问题,事后,我深入思考了下,实际生产环境的确也会经常用到,因此如何写这个脚本?它的思路在 ...
- Oracle SQL 脚本跟踪
NC Oracle SQL 脚本跟踪 脚本: select * from v$sqlarea a and a.LAST_ACTIVE_TIME >= to_date( '2013-02-21 1 ...
- 黑马oracle_day02:04.oracle对象&&05.oracle编程(a)
01.oracle体系结构 02.oracle的基本操作 03.oracle的查询 04.oracle对象&&05.oracle编程(a) 05.oracle编程(b) 04.orac ...
- Oracle巡检脚本:ORAWatcher.sh
Oracle巡检脚本:ORAWatcher.sh #!/usr/bin/ksh echo "" echo "ORAWatcher Version:1.0.1" ...
随机推荐
- linux下tar安装mysql
>>>>>>>>>>>>>>>>>>>> 到官网下载 mysql-5.6.12- ...
- Daily Scrum Meeting ——SecondDay(Beta)12.10
一.Daily Scrum Meeting照片 二.Burndown Chart 三.项目进展(check-in) 1. 修复两个Alpha版本所遗留的BUG 2. 着手修改参与者与发布者的侧滑框,改 ...
- Shell scripts to Create a local dir base on the time.
#!/bin/bash DATETIME=`date +%Y%m%d%H%M%S` echo "datetime = $DATETIME" mkdir $DATETIME # cd ...
- 【转载】Java集合类Array、List、Map区别和联系
Java集合类主要分为以下三类: 第一类:Array.Arrays第二类:Collection :List.Set第三类:Map :HashMap.HashTable 一.Array , Arrays ...
- js接收对象类型数组的服务端、浏览器端实现
1.服务端 JSONArray jsonArr = JSONUtil.generateObjList(objList); public static generateObjList(List<O ...
- js中自定义构造函数讲解
什么是构造函数? 构造函数其实就是一个函数,只是用途和普通函数,不太一样, 构造函数一般用于初始化对象 <script> function Person(){ this.name=&quo ...
- asp.net mvc3登录验证
1,在web.config中 <system.web>节点下面增加: <authentication mode="Forms"> <forms na ...
- Web前端开发推荐阅读书籍
前言 前端工程师在中国兴起也就5年左右,以前公司里没有专门前端工程师的这个职位,很多前端方面的任务都是由全栈工程师来完成,有的基础一点的后台或者设计的帮助分担一些.但是随着互联网的快速发展,特别是所谓 ...
- Android屏幕适配笔记
1.限定符 为了适配不同屏幕大小的android手机或android平板,有时候就需要利用限定符来为不同的屏幕设定不同的布局文件,在一般情况下我们都是在layout文件夹下为某个活动准备一个默认的布局 ...
- dnslog注入
使用Powershell反弹Meterpreter Shell cloudeye在windows下的应用 今天突发奇想的一个姿势,算不上什么技巧,分享一下吧. 看到有人问过.http://zone.w ...