oracle 之存储过程 begin ...... ; ...... end

这篇具有很好参考价值的文章主要介绍了oracle 之存储过程 begin ...... ; ...... end。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

点击查看代码
begin

        merge into ly_yjs_hxsj.T_XSGL_XSXX_CZRZ rz
        using ( select a.XS_ID xsid, xh, xm, '02' as bglx,'修改学生:'||xm||':学位操作撤销学位证书号,原学位证书号:'|| BJYZSBH || '改为:'|| a.JYZSH as bgnr, #{editor} as czrzh,
        #{editor} as czrxm ,'' as czip from (
        <foreach collection="data" item="item" separator="union">
            select #{item.studentId} XS_ID, #{item.studentCompletionNumber,jdbcType=VARCHAR} JYZSH from dual
        </foreach>
        ) a join LY_YJS_HXSJ.T_BYGL_XSBYJG byjg on byjg.XS_ID = a.XS_ID and byjg.BYLXM = '08' and byjg.GDMC is null
        join LY_YJS_HXSJ.T_XSGL_XSXX_XJXX xjxx on xjxx.XS_ID = byjg.XS_ID
        <where>
            <if test=" studentIdOrName != null and studentIdOrName != ''">and (instr(xjxx.XM, #{studentIdOrName}) > 0 or instr(xjxx.XS_ID, #{studentIdOrName}) > 0)</if>
            <if test="studentCultureLevelCode != null and studentCultureLevelCode != ''">and xjxx.PYCCM = #{studentCultureLevelCode}</if>
            <if test="degreeClassify != null and degreeClassify != ''">and xjxx.XWLXM = #{degreeClassify}</if>
            <if test="educationCategory != null and educationCategory != ''">and xjxx.JYLXM = #{educationCategory}</if>
            <if test="studyModeCode != null and studyModeCode != ''">and xjxx.XXFSM = #{studyModeCode}</if>
        </where>
         ) prz on (prz.xsid = 'T_BYGL_XSBYJG')

        when not matched then
        insert  (czrzid, xsid, xh, xm,bglx, bgnr, bgsj, czrzh, czrxm,czip) values(
        sys_guid(),prz.xsid,prz.xh, prz.xm,prz.bglx,prz.bgnr,sysdate,prz.czrzh,prz.czrxm,prz.czip
        );
        merge into LY_YJS_HXSJ.T_XSGL_XSXX_XJXX xjxx using (
            select a.XS_ID, a.JYZSH from (
                <foreach collection="data" item="item" separator="union">
                    select #{item.studentId} XS_ID, #{item.studentCompletionNumber,jdbcType=VARCHAR} JYZSH from dual
                </foreach>
            ) a join LY_YJS_HXSJ.T_BYGL_XSBYJG byjg on byjg.XS_ID = a.XS_ID and byjg.BYLXM = '08' and byjg.GDMC is null
            join LY_YJS_HXSJ.T_XSGL_XSXX_XJXX xjxx on xjxx.XS_ID = byjg.XS_ID
            <where>
                <if test=" studentIdOrName != null and studentIdOrName != ''">and (instr(xjxx.XM, #{studentIdOrName}) > 0 or instr(xjxx.XS_ID, #{studentIdOrName}) > 0)</if>
                <if test="studentCultureLevelCode != null and studentCultureLevelCode != ''">and xjxx.PYCCM = #{studentCultureLevelCode}</if>
                <if test="degreeClassify != null and degreeClassify != ''">and xjxx.XWLXM = #{degreeClassify}</if>
                <if test="educationCategory != null and educationCategory != ''">and xjxx.JYLXM = #{educationCategory}</if>
                <if test="studyModeCode != null and studyModeCode != ''">and xjxx.XXFSM = #{studyModeCode}</if>
            </where>
        ) t on (t.XS_ID = xjxx.XS_ID)
        when matched then update set xjxx.BJYZSBH = t.JYZSH
        ;
        end;

文章来源地址https://www.toymoban.com/news/detail-476750.html

到了这里,关于oracle 之存储过程 begin ...... ; ...... end的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Oracle存储过程~封神之作

    Oracle 存储过程是 Oracle 数据库中的一种数据处理对象,它可以在数据库中定义一组预定义的 SQL 语句,用于完成特定的数据库操作。存储过程可以被授权的用户调用,并且可以执行多个语句,这些语句可以被视为一个单独的操作,也可以被视为一系列的操作。 使用存储过程可

    2024年02月03日
    浏览(36)
  • Oracle系列十五:存储过程

    (1)定义 Oracle 存储过程是一组为完成特定功能SQL 语句,具有输入和输出参数,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如带有参数)来执行。 使用存储过程具有以下优点: 提高性能:由于存储过程在数据库服务器上执行,可以减少网络流量和

    2024年02月08日
    浏览(30)
  • Oracle数据库创建存储过程

    下面是一个迁移数据库数据的存储过程: 存储过程中用到的 while 循环逻辑:  

    2024年02月11日
    浏览(33)
  • oracle 自定义存储过程(非常简单明了)

    1.举一个简单的例子 定义存储过程 easyProcedure 入参为 两个数 出参为 他们的和 使用存储过程接着往下看 2.举一个复杂的例子(例子比较复杂,但很实用) ①创建 TYPE 类型 atrr_type ②将 TYPE 类型 atrr_type 定义为表, 用做接收返回值 ③定义存储过程 入参为 objt 出参为 一张表 ④

    2024年02月09日
    浏览(29)
  • 【Oracle系列】- 存储过程(Stored Procedure)

    一、什么是存储过程 存储过程 (Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL语句集,存储过程在数据库中,经过第一次编译后再次调用不需要二次编译。用户通过指定的存储过程名称应传给参数来调用完成。 存储过程就是解决特定问题,有先后顺序的

    2024年02月06日
    浏览(34)
  • Oracle SQL存储过程能够返回表吗

    在Oracle存储过程中,我们可以使用游标来返回表的数据。游标是一种类似于指针的数据类型,可以用来遍历和操作结果集。以下是一个示例的Oracle存储过程,通过游标返回表数据: SQL Copy 在这个存储过程中,我们声明了一个游标变量employee_cursor,并将SELECT语句的结果集赋值给

    2024年02月13日
    浏览(32)
  • oracle中建立job定期运行存储过程 参数

     Plsql developer dbms schedual job里面编辑也可以 手动方式: 1 首先查看 SQL show parameter job NAME                                 TYPE        VALUE ------------------------------------ ----------- ------------------------------ job_queue_processes                  integer     10 如果值是 0 需要修改(如

    2024年02月07日
    浏览(31)
  • Mr. Cappuccino的第69杯咖啡——Oracle之存储过程

    概念 PLSQL是Oracle对sql语言的过程化扩展,指在SQL命令语言中增加了过程处理语句(如分支、循环等),使SQL语言具有过程处理能力。 程序结构 PL/SQL可以分为三个部分:声明部分、可执行部分、异常处理部分。 其中DECLARE部分用来声明变量或游标(结果集类型变量),如果程序

    2024年01月17日
    浏览(38)
  • MS SQL Server 查看存储过程

    要查看 MS SQL Server 中的存储过程,可以使用以下方法之一: 使用 SQL Server Management Studio (SSMS): 连接到 SQL Server 数据库实例并展开数据库节点。 在对象资源管理器中,展开 \\\"编程性对象\\\" 节点,然后选择 \\\"存储过程\\\" 节点。 在右侧的窗格中,将显示数据库中的所有存储过程。

    2024年02月14日
    浏览(36)
  • 人大金昌netcore适配,调用oracle模式下存储过程\包,返回参数游标

    官网下载的包有问题,使用这个包就ok https://download.csdn.net/download/pehao/89077002

    2024年04月11日
    浏览(26)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包