--命令窗口查询
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编程脚本记录的更多相关文章

  1. Oracle函数脚本记录

    --内置函数 --聚合函数 返回单个值 '; --count()记录条数 select sum(degree) from score t; --sum(degree)求成绩总和 select avg( ...

  2. Oracle数据库脚本中的set define off

    2018年8月6日15:11:34 Oracle数据库脚本中的set define off 前言 最近在公司写需求,接触到脚本,第一句set define off;就不知道什么意思了,查询后记录之. ...

  3. Oracle编程入门经典 第12章 事务处理和并发控制

    目录 12.1          什么是事务处理... 1 12.2          事务处理控制语句... 1 12.2.1       COMMIT处理... 2 12.2.2       RO ...

  4. Oracle编程入门经典 第11章 过程、函数和程序包

    目录 11.1          优势和利益... 1 11.2          过程... 1 11.2.1       语法... 2 11.2.2       建立或者替换... 2 11.2 ...

  5. Oracle运行脚本:exp,hist 和 err

    上一篇我们讲到:首次使用rman备份数据库时,为了安全起见,我们应将整个数据库exp出来. 显而易见,每次都手敲exp代码是不可取的. ----费时费力还不规范! 为此,我们可以写一个exp脚本,之后 ...

  6. Shell编程——脚本编写思路与过程

    Linux系统Shell编程——脚本编写思路与过程 “ 前段时间有小伙伴问我一些问题,涉及到shell脚本的编写问题,事后,我深入思考了下,实际生产环境的确也会经常用到,因此如何写这个脚本?它的思路在 ...

  7. Oracle SQL 脚本跟踪

    NC Oracle SQL 脚本跟踪 脚本: select * from v$sqlarea a and a.LAST_ACTIVE_TIME >= to_date( '2013-02-21 1 ...

  8. 黑马oracle_day02:04.oracle对象&&05.oracle编程(a)

    01.oracle体系结构 02.oracle的基本操作 03.oracle的查询 04.oracle对象&&05.oracle编程(a) 05.oracle编程(b) 04.orac ...

  9. Oracle巡检脚本:ORAWatcher.sh

    Oracle巡检脚本:ORAWatcher.sh #!/usr/bin/ksh echo "" echo "ORAWatcher Version:1.0.1" ...

随机推荐

  1. 配置apue的头文件apue.h和unp的头文件anp.h

    配置apue的头文件apue.h和unp的头文件anp.h 如果要使用gcc -g 来生成可调试文件一定要修改Make.defines.linux文件中的CFLAGS变量 修改为:CFLAGS=-an ...

  2. 希尔伯特矩阵(Hilbert matrix)

    例: [ 1 1/2 1/3  1/2 1/3 1/4  1/3 1/4 1/5 ]   矩阵的一种,其元素A(i,j)=1/(i+j-1),i,j分别为其行标和列标. 即: [1,1/2,1/3,- ...

  3. Blend打不开wpf项目,提示无法识别的工具版本“12.0”

          讲项目文件用记事本打开然后修改为“14.0”即可        

  4. js动画

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. Unity3D 脚本编译器无法关联VisualStudio2012解决办法

    开发环境:Win8 + Unity 4.34f1 +Visual Studio2012 旗舰版 解决办法:   1.创建一个start.bat文件,内容为:[start "" %* ...

  6. Python框架之Tornado(二)请求阶段

    概述 上图是tornado程序启动以及接收到客户端请求后的整个过程,对于整个过程可以分为两大部分: 启动程序阶段,又称为待请求阶段(上图1.2所有系列和3.0) 接收并处理客户端请求阶段(上图3系列) ...

  7. lua的C库

    在云风的ejoy2d里是没有dll和so之类的东西的, 所有的C扩展都是类似这样写的: int ejoy2d_shader(lua_State *L) {      luaL_Reg l[] = { ...

  8. MyXls导出Excel的各种设置

    MyXls是一个操作Excel的开源类库,支持设置字体.列宽.行高(由BOSSMA实现).合并单元格.边框.背景颜色.数据类型.自动换行.对齐方式等,通过众多项目的使用表现,证明MyXls对于创建简单 ...

  9. web前端面试题汇总

    1.doctype作用 <!DOCTYPE>声明位于位于HTML文档中的第一行,处于 <html> 标签之前.告知浏览器的解析器用什么文档标准解析这个文档.DOCTYPE不存在 ...

  10. mysql安装流程

    一.配置MySQL数据库 1.解压绿色版mysql,如下图 二.安装服务 1.运行cmd(管理员版本,否则没有权限),如下图 2.运行命令mysqld –install安装服务,如下图: 如果不需要m ...