zoukankan      html  css  js  c++  java
  • Oracle----oracle编程总结

    1,SEQUENCE的使用

    问题:在MSSQL中,我们可以通过设置自增长来作为主键,但是oracle里面没有这个

    解决方案:使用SEQUENCE来实现,具体步骤如下

    (1)首先建立一个序列(就是每次查询会自动增加值的绝不重复的对象,比如每次加1或每次加10)。语法:
    CREATE SEQUENCE 序列名
    [INCREMENT BY n] --每次加几
    [START WITH n] --序列从几开始
    [{MAXVALUE/ MINVALUE n|NOMAXVALUE}] --最小值、最大值的限制
    比如CREATE SEQUENCE s_test start with 1 increment by 1; --就是建立了额一个从1开始每次加1的序列。
    访问序列时,用 序列名称.nextval的语法。

    比如对于上表,如果想要id字段实现自增。则在每次插入记录时,使用下面类似的语法(前提是表和序列已经建好)。
    insert into test values (s_test.nextval,'张三');

    当然,你也可以自动一些,对表的插入操作,建立一个触发器,每当有数据插入时,触发器自动修改id值为序列的新值,这样就完全实现自增id功能了。不过其实也没有这个必要。因为触发器如果建多了,有时会比较混乱,不易管理。

    2,PL/SQL 存储过程

    存储过程相当于一个方法块,或者函数块,用来完成特定功能,并且是高频使用。具体的步骤包括

    pl/sql块由三个部分构成: 定义部分,执行部分,例外处理部分。
    如下所示:

    declare/*定义部分——定义常量、变量、游标、例外、复杂数据类型*/

    begin /*执行部分——要执行的pl/sql语句和sql语句*/

    exception /*例外处理部分——处理运行的各种错误*/ end;
    定义部分是从declare开始的,该部分是可选的;
    执行部分是从begin开始的,该部分是必须的;
    例外处理部分是从exception开始的,该部分是可选的

    带参数的如下

    1  create or replace procedure stu_update_price(v_id number,v_price number) is
    2 
    3  begin
    4  update student set stu_price = v_price where stu_id=v_id;
    5  dbms_output.put_line(v_id||' new price is '||v_price);
    6  end;
    7  /
    oracle创建存储过程

     3,函数

    函数用于返回特定的数据,当建立函数时,在函数头部必须包含return子句。
    而在函数体内必须包含return语句返回的数据。我们可以使用createfunction
    来建立函数

     1 create function get_stu_price(v_stuid number) return number is
     2 stu_id_value number(5);
     3 begin
     4 select stu_price into stu_id_value from student where stu_id = v_stuid;
     5 return stu_id_value;
     6 end;
     7 /
     8 
     9 
    10 SQL> var income number
    11 SQL> call get_stu_price(1001) into:income;
    12 
    13 调用完成。
    14 
    15 SQL> print income
    16 
    17     INCOME
    18 ----------
    19        100
    创建函数并调用函数
  • 相关阅读:
    MyBatis通过JDBC生成的执行语句问题
    request.getParameter()、request.getInputStream()和request.getReader()
    Spring 实现数据库读写分离
    图片分布式存储
    切换城市的功能实现
    一直在前进的路上
    test blog
    SSIS 系列
    微信摇一摇优惠券
    扫描二维码实现一键登录
  • 原文地址:https://www.cnblogs.com/ningheshutong/p/5643483.html
Copyright © 2011-2022 走看看