`

orcale存储过程简介

    博客分类:
  • Sql
 
阅读更多

存储过程
00、查看存储过程

00、删除存储过程
    drop procedure proc_name;
00、重新编译存储过程
    alert procdure proc_name compile
00、给用户赋予执行权限
    grant execute on proc_name to userName
00、调用存储过程
    方法1:execute 模式名.proc_name
    方法2:
        begin
            模式名.proc_name
        end
00、声明变量
    declare
    var1 number(2);                -- 仅声明 
    var2 char(2) := '11';          -- 在声明的同时初始化
    1、在定义变量名字的时候,一定要注意变量名字不可以是关键字
    2、创建存储过程的时候,参数的数据类型不可以指定精确数据类型。例如,只能使用number、varchar2,而不可以使用varchar2(4)
00、oracle语法
    1、if
        1、
            IF ... THEN
                ...;
            END IF;
        2、
            IF... THEN
                ...;
            ELSE
                ...;
            END IF;
        3、
            IF...THEN
                ...;
            ELSEIF...THEN
                ...;
            ELSE
                ...;
            END IF;
    2、case
        CASE
            WHEN...THEN...;
            ELSE ...;
        END CASE;
    case语句如果作为分支控制语句,最后结束语句是end case,如果是作为select语句里的控制语句则只需要end
    3、for循环
        1、
            FOR ... IN ...
            LOOP
                ...;
            END LOOP;
        2、中止sp
            for currow in ( 
                            select t.col1, t.col2 
                            from tableName t 
                            where ... 
                            )
            loop 
                if currow.col1 = 0 then 
                    return;    -- 中止sp,返回 
                end if; 
            end loop;
    5、while循环
        1、
            WHILE ...
            LOOP
                IF ... THEN exit;-- 中止sp,返回 
                END IF;
            END LOOP;
        2、
            declare
            isok := 9; 
            while isok >= 0
            loop 
                isok := isok - 1;        
                if isok = 8 then 
                    continue;                -- 与编程语言的 continue 语义一样,跳过当前循环的剩余语句,回到循环开始 
                end if;       
                if isok <= 0 then 
                    exit;                    -- 与编程语言的 break 语义一样,跳出循环 
                end if;   
                dbms_output.put_line('isok:' || isok); 
            end loop;
00、创建存储过程
    1、
        create procedure proc_GradeCount
        as
            gradeCount number(10);
        begin
            select count(*) into gradeCount from grade a;
            Dbms_Output.put_line(年级总数''||gradeCount);
        end;
    2、参数设置
        create or replace procedure sp_name ( 
        -- 入参、出参列表, 逗号分隔。 
        uid in varchar2,                          -- 不能带长度信息 
        startDate in date,                        -- 第二个输入参数 
        defaultVar in varchar2 default "",        -- 默认参数,如果不传,要注意参数的顺序 
        isok out number,                          -- 输出参数 
        result out varchar2                       -- 第二个输出参数 
        ) 
    参数的定义形式和作用如下:
    参数名 IN 数据类型 DEFAULT 值;
    定义一个输入参数变量,用于传递参数给存储过程。在调用存储过程时,主程序的实际参数可以是常量、有值变量或表达式等。DEFAULT 关键字为可选项,用来设定参数的默认值。如果在调用存储过程时不指明参数,则参数变量取默认值。在存储过程中,输入变量接收主程序传递的值,但不能对其进行赋值。
    参数名 OUT 数据类型;
    定义一个输出参数变量,用于从存储过程获取数据,即变量从存储过程中返回值给主程序。
    在调用存储过程时,主程序的实际参数只能是一个变量,而不能是常量或表达式。在存储过程中,参数变量只能被赋值而不能将其用于赋值,在存储过程中必须给输出变量至少赋值一次。
    参数名 IN OUT 数据类型 DEFAULT 值;
    定义一个输入、输出参数变量,兼有以上两者的功能。在调用存储过程时,主程序的实际参数只能是一个变量,而不能是常量或表达式。DEFAULT 关键字为可选项,用来设定参数的默认值。在存储过程中,变量接收主程序传递的值,同时可以参加赋值运算,也可以对其进行赋值。在存储过程中必须给变量至少赋值一次。
    如果省略IN、OUT或IN OUT,则默认模式是IN。
00、
总结:
1、在定义变量名字的时候,一定要注意变量名字不可以是关键字
2、创建存储过程的时候,参数的数据类型不可以指定精确数据类型。例如,只能使用number、varchar2,而不可以使用varchar2(4)

分享到:
评论

相关推荐

    oracle 存储过程 函数 dblink

    #### 一、Oracle存储过程简介 在Oracle数据库中,存储过程是一种预编译好的SQL代码集合,它可以接受输入参数、返回单个值或多个值,并能够执行复杂的数据库操作。存储过程提高了代码的重用性和执行效率,同时也便于...

    oracle存储过程学习经典入门

    本文将从 Oracle 存储过程的基础知识开始,逐步深入到 Oracle 存储过程的高级应用,包括 Hibernate 调用 Oracle 存储过程和 Java 调用 Oracle 存储过程的方法。 Oracle 存储过程基础知识 Oracle 存储过程是 Oracle...

    用callabledStatement调用oracle存储过程实用例子(IN OUT 传游标)

    一、Oracle 存储过程简介 Oracle 存储过程是一种可以在 Oracle 数据库中存储和执行的程序单元。存储过程可以由多种语言编写,例如 PL/SQL、Java 等。存储过程可以封装复杂的业务逻辑,提高数据库的安全性和性能。 ...

    Oracle 存储过程简介.pdf

    Oracle存储过程是数据库管理系统中的一项重要功能,它允许用户将一系列的SQL语句和PL/SQL块组合成一个单元,并将其存储在数据库中。使用存储过程可以带来一系列的好处,例如提高数据库操作的效率、降低网络流量以及...

    oracle存储过程解锁

    以下是对“oracle存储过程解锁”这一主题的深入解析。 ### 标题:“oracle存储过程解锁” #### 解析: 在Oracle数据库中,存储过程是一种预先编译并存储在数据库中的SQL代码块,用于执行复杂的业务逻辑或数据处理...

    oracle存储过程unwrap解密工具.zip

    Oracle存储过程unwrap解密工具主要用于处理Oracle数据库中的加密存储过程。在Oracle数据库系统中,为了保护敏感代码或数据,开发人员有时会选择对存储过程进行加密。然而,当需要查看、调试或恢复这些加密的存储过程...

    oracle 存储过程导出excel

    oracle 存储过程导出excel oracle 存储过程导出excel oracle 存储过程导出excel oracle 存储过程导出excel oracle 存储过程导出excel

    帆软报表Oracle存储过程解决storeParameter1参数试用插件

    总结起来,"帆软报表Oracle存储过程解决storeParameter1参数试用插件"主要是针对在调用无参数Oracle存储过程时出现的异常问题提供的一种解决方案。通过安装并配置这个插件,用户可以顺利地在帆软报表中调用不包含...

    oracle存储过程-帮助文档

    Oracle存储过程是数据库管理系统中的一种重要特性,它允许开发者编写一系列SQL语句和PL/SQL块,形成可重复使用的代码单元。这篇博客“oracle存储过程-帮助文档”可能提供了关于如何创建、调用和管理Oracle存储过程...

    Python使用cx_Oracle调用Oracle存储过程的方法示例

    本文实例讲述了Python使用cx_Oracle调用Oracle存储过程的方法。分享给大家供大家参考,具体如下: 这里主要测试在Python中通过cx_Oracle调用PL/SQL。 首先,在数据库端创建简单的存储过程。 create or replace ...

    SQLServer存储过程转为oracle存储过程的工具

    可以将SQL Server存储过程转为oracle存储过程的工具

    oracle存储过程连接例子

    #### 一、Oracle存储过程简介 在Oracle数据库中,存储过程是一种在数据库服务器上预编译好的SQL代码块,它可以包含一系列的SQL语句和控制流语句。存储过程的主要优点包括提高性能(通过减少网络传输的数据量)、...

    oracle存储过程加密破解

    oracle存储过程加密破解 0

    oracle存储过程常用技巧

    Oracle存储过程常用技巧 Oracle存储过程是一种强大的数据库对象,它可以帮助开发者简化复杂的业务逻辑,并提高数据库的安全性和性能。在 Oracle 中,存储过程是一种特殊的 PL/SQL 程序,它可以接受输入参数,执行...

    ibatis调用oracle存储过程分页

    ibatis调用oracle存储过程分页

    hibernate query调用oracle存储过程

    以下是一个简单的示例,展示了如何调用一个不带参数的Oracle存储过程: ```java Session session = sessionFactory.openSession(); Transaction transaction = session.beginTransaction(); session....

    ORACLE存储过程最全教程

    Oracle存储过程是数据库管理系统Oracle中的一个关键特性,它允许开发者编写一组预编译的SQL和PL/SQL语句,以实现特定的业务逻辑或数据库操作。这篇教程将深入讲解Oracle存储过程的各个方面,帮助你从基础到高级全面...

    oracle 存储过程批量提交

    ### Oracle存储过程批量提交知识点详解 在Oracle数据库中,存储过程是一种重要的数据库对象,它可以包含一系列SQL语句和控制流语句,用于实现复杂的业务逻辑处理。存储过程不仅可以提高应用程序性能,还可以确保...

    C# 传入自定义列表List 到Oracle存储过程

    本文将详细讲解如何在C#中使用自定义列表(List)作为参数调用Oracle存储过程,以及实现这一功能的关键技术和注意事项。 首先,我们需要了解Oracle数据库中的PL/SQL类型,例如VARCAR2、NUMBER等,它们对应于C#中的...

    springboot整合mybatis调用oracle存储过程

    本文将深入探讨如何在Spring Boot项目中整合MyBatis,实现调用Oracle存储过程并处理游标返回的数据。 首先,我们需要在Spring Boot项目中引入相关的依赖。在`pom.xml`文件中添加Oracle JDBC驱动(ojdbc66-oracle...

Global site tag (gtag.js) - Google Analytics