zoukankan      html  css  js  c++  java
  • 一些oracle的经验

    注:再写存储过程的时候,在for循环里要写begin和end,这样就可以写exception ,让这条错误数据回滚,然后记录错误日志,commit

    关键字: oracle 存储过程

    1.基本结构 
    CREATE OR REPLACE PROCEDURE 存储过程名字 

        参数1 IN NUMBER, 
        参数2 IN NUMBER 
    ) IS 
    变量1 INTEGER :=0; 
    变量2 DATE; 
    BEGIN 

    END 存储过程名字 

    2.SELECT INTO STATEMENT 
      将select查询的结果存入到变量中,可以同时将多个列存储多个变量中,必须有一条 
      记录,否则抛出异常(如果没有记录抛出NO_DATA_FOUND) 
      例子: 
      BEGIN 
      SELECT col1,col2 into 变量1,变量2 FROM typestruct where xxx; 
      EXCEPTION 
      WHEN NO_DATA_FOUND THEN 
          xxxx; 
      END; 
      ... 

    3.IF 判断 
      IF V_TEST=1 THEN 
        BEGIN 
           do something 
        END; 
      END IF; 

    4.while 循环 
      WHILE V_TEST=1 LOOP 
      BEGIN 
    XXXX 
      END; 
      END LOOP; 

    5.变量赋值 
      V_TEST := 123; 

    6.用for in 使用cursor 
      ... 
      IS 
      CURSOR cur IS SELECT * FROM xxx; 
      BEGIN 
    FOR cur_result in cur LOOP 
      BEGIN 
       V_SUM :=cur_result.列名1+cur_result.列名2 
      END; 
    END LOOP; 
      END; 

    7.带参数的cursor 
      CURSOR C_USER(C_ID NUMBER) IS SELECT NAME FROM USER WHERE TYPEID=C_ID; 
      OPEN C_USER(变量值); 
      LOOP 
    FETCH C_USER INTO V_NAME; 
    EXIT FETCH C_USER%NOTFOUND; 
        do something 
      END LOOP; 
      CLOSE C_USER; 

    8.用pl/sql developer debug 
      连接数据库后建立一个Test WINDOW 
      在窗口输入调用SP的代码,F9开始debug,CTRL+N单步调试
    有不懂的,或者更好的见解可以随时交流!每天都会看的。
  • 相关阅读:
    约束constraint
    多表查询
    多表关系
    vue 页面跳转的两种方式
    Java三大特性
    如何搭建vue搭建手脚架(vue-cli 3.0以上版本)
    Mysql高版本不兼容group by解决方案
    springboot整合shiro 报 This application has no explicit mapping for /error, so you are seeing this as a fallback. 错误
    使用Springboot整合redis与mysql
    Springboot登录拦截器
  • 原文地址:https://www.cnblogs.com/java-xz/p/7070923.html
Copyright © 2011-2022 走看看