zoukankan      html  css  js  c++  java
  • 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('103','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('103','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='1' 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;
  • 相关阅读:
    avalon.js 多级下拉框实现
    提取 ECharts 中的svg地图信息
    avalon.js实践 svg地图配置工具
    基于HTML Canvas实现“指纹识别”技术
    HTML5 Canvas指纹及反追踪介绍
    百度Openrasp开源的应用运行时自我保护产品,安装教程。
    浏览器指纹实现
    centos监控web目录www下的文件是否被黑、挂马的脚本
    Linux下文件完整性监控工具Tripwire详解
    在CentOS 7上使用Tripwire监控和检测修改的文件
  • 原文地址:https://www.cnblogs.com/tfl-511/p/5976967.html
Copyright © 2011-2022 走看看