--命令窗口查询
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. IntelliJ IDEA 绝对好用快捷键

    最近根据自己的使用习惯整理了一下在windows下常用的一些快捷键,有些确实非常实用. 常用快捷键  键 作用 备注 Ctrl+F12 显示当前类的所有方法   F2 定位下一个错误位置   Alt ...

  2. 16-01-25---Servlet复习笔记(01)

    Servlet ServletAPI中有4个java包    javax.servlet 包含Servlet与Servlet容器之间契约的类和接口    javax.servlet.http 包含HT ...

  3. 阅读jquery源码与js依赖加载的模块化!

    阅读源码肯定是先下载有注释的源码 我也是醉了,10309 行代码,在陆续续的一个月之内,看完了,虽有收获但收获不大, 直到又一次看jquery的github,怎么会有cmd????没听过使用jquer ...

  4. JAVA_javax.net.ssl.SSLProtocolException: handshake alert: unrecognized_name

    tomcat访问https请求返回: javax.net.ssl.SSLProtocolException: handshake alert:  unrecognized_name at sun.se ...

  5. JAVA面试逻辑题1

    一.计算推理 烧香问题: 有两根不均匀分布的香,每一根烧完的时间都是一小时.用什么办法确定一段15分钟的时间? 解题步骤: 1.点燃第一根的两头,同时点燃第二根的一头: 2.等到第一根燃尽以后,再点燃 ...

  6. 利用sqlmap进行mysql提权的小方法(win与liunx通用)

    文章作者:pt007@vip.sina.com文章来源:https://www.t00ls.net/thread-36196-1-1.html1.连接mysql数据打开一个交互shell:sqlmap ...

  7. 执行mysqld_safe报错:mysqld does not exist or is not executable

    执行mysqld_safe报错: [root@edu data]# /usr/local/mysql5.7/bin/mysqld_safe --user=mysql160427 12:41:28 my ...

  8. js 预处理用户上传图片

    前几个月闲得无聊写得一段代码,没想最近刚好用上了,在硬盘里翻了半天找回来,还没好好整理直接用上了手机用户拍照上传的图片一般都在1M 到4M 之间,如果只是用作头像尺寸就可以缩小很多,1M甚至几M的图转 ...

  9. PHP基础知识之流程控制的替代语法

    PHP 提供了一些流程控制的替代语法,包括 if,while,for,foreach 和 switch. 替代语法的基本形式是把左花括号({)换成冒号(:),把右花括号(})分别换成 endif;,e ...

  10. Linux搜索文件夹下所有文件中字符串

    1.grep "status_bar_height" * -nR /* 搜索文件中有很多不存在的文件出现 */ 2.grep -nsr "status_bar_heigh ...