zoukankan      html  css  js  c++  java
  • 数据库存储过程

    一 : 创建存储过程
    /*
    in 输入的参数 不可变 不可以再次赋值
    out 可以重复赋值
    in out 可以重复赋值
    如果不写默认 都是 in 的
    注意存储过程是没有返回值的
    */
    create or replace procedure
    mypro (table1 in varchar2,table2 out varchar2,con in out number) as -- as 可以在存储过程中声明变量
    testone number;
    testto date;
    begin --开始

    table2 := 'aaa';
    testone := 10;

    dbms_output.put_line(table1);
    dbms_output.put_line(testone);
    end mypro;

     二 : 运行存储过程1(可视化操作)

    三 : 使用存储过程可以将当做java中的函数去使用,多数情况下使用存储过程进行将一张表中的数据做备份
    但是普通用户是没有全限使用存储过程创建表的
    就需要给用户授权(先以管理员的身份登录)
    grant create table to pb

    create or replace procedure

    mypro (table1 in varchar2) as -- as 可以在存储过程中声明变量

    sqltext varchar2(200);

    begin --开始

    sqltext := 'create table '||table1||'_copy as select * from '||table1;
    Execute immediate sqltext;
    commit;

    -- 异常的处理 when 异常对象 others 代表所有的异常 then 异常后 执行的 代码块
    exception when others then dbms_output.put_line('异常了');

    end mypro;

    测试,只需要将我们需要备份的表的名称传进去,就可以备份到表名称+_copy的表中
    备份表的sql语句 如何复制数据
    -- 目标表 不存在 创建目标表 复制数据 可以加where条件
    create table pay_type_copy as select * from pay_type

    -- 目标表 存在
    insert into pay_type_copy select * from pay_type

  • 相关阅读:
    秒杀多线程第十篇 生产者消费者问题 (续)
    平面最近点距离问题(分治法)
    阿里神马搜索算法实习生 二面
    37. Sudoku Solver
    52. N-Queens II(数个数)
    51. N-Queens
    89. Gray Code(公式题)
    22. Generate Parentheses(回溯)
    回溯总结
    40. Combination Sum II
  • 原文地址:https://www.cnblogs.com/pengmengnan/p/6734331.html
Copyright © 2011-2022 走看看