CN117891830A - 一种基于存储过程的脚本扩展方法 - Google Patents
一种基于存储过程的脚本扩展方法 Download PDFInfo
- Publication number
- CN117891830A CN117891830A CN202410060519.2A CN202410060519A CN117891830A CN 117891830 A CN117891830 A CN 117891830A CN 202410060519 A CN202410060519 A CN 202410060519A CN 117891830 A CN117891830 A CN 117891830A
- Authority
- CN
- China
- Prior art keywords
- storage process
- method based
- script
- procedure
- storage
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 107
- 238000012545 processing Methods 0.000 description 7
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种基于存储过程的脚本扩展方法,包括以下步骤:S1:创建存储过程;S2:初始化创建的存储过程;S3:调用存储过程。本发明可以提高服务效率。
Description
技术领域
本发明涉及计算机算法技术领域,特别涉及一种基于存储过程的脚本扩展方法。
背景技术
随着信用卡业务的规模不断扩大,受众群体越来越多,银行及持卡人的需求也相应的更加复杂。夜间卸数任务对应处理的客户基数变大,处理逻辑更复杂,相应的处理时间自然也会增加。
因此,有必要提供一种基于存储过程的脚本扩展方法,以提高服务效率。
发明内容
本发明的目的在于提供一种基于存储过程的脚本扩展方法,以提高服务效率。
为了解决现有技术中存在的问题,本发明提供了一种基于存储过程的脚本扩展方法,包括以下步骤:
S1:创建存储过程;
S2:初始化创建的存储过程;
S3:调用存储过程。
可选的,在所述基于存储过程的脚本扩展方法中,创建存储过程的方式如下:
S11:定义参数及变量;
S12:对于存储过程执行中出现的异常,存储过程执行的同时处理异常或返回给调用方;
S13:使用session临时表;
S14:对变量进行赋值,并串联业务流程。
可选的,在所述基于存储过程的脚本扩展方法中,定义参数及变量如下:
输入参数用in表示,输出参数用out表示,输入及输出参数用inout表示;
采用关键字DECLARE定义变量。
可选的,在所述基于存储过程的脚本扩展方法中,还包括以下步骤S4:根据实际需求删除或重建存储过程。
本发明相对于现有技术,具有以下优点:
本发明基于数据库存储过程实现,复杂的业务逻辑抽象为存储过程函数后只需要在初始化时进行编译,以后每次执行存储过程都不需再重新编译,相较于一般SQL语句每执行一次就需要编译一次的情况,使用存储过程可提高了数据库执行速度。当对数据库进行复杂操作时,可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用,增强代码的可读性。再者存储过程具有可以重复使用的特性,可一定程度减少数据库开发人员的工作量。在安全性方面,存储过程的安全性更高,可设定只有某些用户才具有对指定存储过程的使用权。
附图说明
图1为本发明实施例提供的脚本扩展方法的流程图。
具体实施方式
下面将结合示意图对本发明的具体实施方式进行更详细的描述。根据下列描述,本发明的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本发明实施例的目的。
在下文中,如果本文所述的方法包括一系列步骤,本文所呈现的这些步骤的顺序并非必须是可执行这些步骤的唯一顺序,且一些所述的步骤可被省略和/或一些本文未描述的其他步骤可被添加到该方法。
随着信用卡业务的规模不断扩大,受众群体越来越多,银行及持卡人的需求也相应的更加复杂。夜间卸数任务对应处理的客户基数变大,处理逻辑更复杂,相应的处理时间自然也会增加。
为了解决现有技术中存在的问题,本发明提供了一种基于存储过程的脚本扩展方法,如图1所示,所述脚本扩展方法包括以下步骤:
S1:创建存储过程,其可支持创建函数或存储过程,函数仅支持单一返回值,存储过程则支持多返回值(以下示例以函数为例)。创建函数的具体过程如下:
S11:定义参数及变量;输入参数用in表示,输出参数用out表示,输入及输出参数用inout表示;在db2的存储过程中,采用关键字DECLARE定义变量,然后在后续程序过程中使用该变量来处理逻辑。这部分可以根据使用的场景加入扩展功能,如参数正确性校验、大小写转化及默认值初始化等。
S12:对于存储过程执行中出现的异常,存储过程执行的同时处理异常或返回给调用方;这部分处理工作可在异常处理部分定义并捕捉。
S13:使用session临时表:
具体的,存储过程的开发经常使用临时表配合实现业务逻辑。合理的使用临时表可以简化程序,一定程度上提升效率。存储过程中建立的临时表只能建立在用户临时表空间上。session临时表的作用域是此SESSION内有效。若使用场景涉及多线程操作,不推荐使用临时表。优选的,建立临时表时加上with replace选项,从而可以不显示地drop临时表。
S14:对变量进行赋值,并串联业务流程。这部分为存储过程的主要功能实现,根据实际情况利用先前变量加入逻辑串联实现整个存储过程的逻辑。
S2:初始化创建的存储过程;
具体的,将步骤S1所创建的存储过程保存在FUNC_ISNEEDSENFMAG.sql文件中,对存储过程的初始化(即连接数据库)后执行上述sql文件。
-f参数含义:读取输入文件FUNC_ISNEEDSENFMAG.sql。
-t参数含义:设置语句终止符为@。
S3:调用存储过程。
具体的,生产环境中为方便呈现清晰的项目结构,所有存储过程文件均存放在sql目录下,投产时统一初始化。脚本或程序使用时直接调用即可,展示脚本的调用方法可以为:将函数的返回值作为sql的where条件返回需要发送账单短信的用户。
可选的,在所述基于存储过程的脚本扩展方法中,还可以包括以下步骤S4:根据实际需求删除或重建存储过程。
本发明可以理解为:将复杂的业务逻辑抽象为存储过程,其中包含高性能实现逻辑SQL,初次使用时在数据库初始化一次。此存储过程对外体现为一个拥有具体功能实现的SQL组,可以简单理解为具有多返回值的函数,具有访问权限的脚本,可按需进行存储过程调用,实现自身的逻辑扩展。
综上,本发明相对于现有技术,具有以下优点:
(1)本发明提供了一种基于存储过程的脚本扩展方法,效率更高。默认情况下,过程在第一次执行时进行编译,并创建可重复用于后续执行的执行计划。由于查询处理程序不必创建新计划,因此处理该过程所需的时间通常较少。
(2)本发明提供了一种基于存储过程的脚本扩展方法,具有更强的安全性。针对于即使用户和程序对这些基础对象没有直接权限,多个用户和客户端程序可以通过一个过程对基础数据库对象执行操作。因此消除了在单个对象级别授予权限的要求,并简化了安全层。
(3)本发明提供了一种基于存储过程的脚本扩展方法,更易于维护。当客户端应用程序调用过程并将数据库操作保留在数据层中时,只有过程才能针对底层数据库中的任何更改进行更新。应用程序层保持独立,不必知道如何更改数据库布局、关系或流程。
(4)本发明提供了一种基于存储过程的脚本扩展方法,具有更好的可复用性。任何重复数据库操作的代码都是封装在过程中的完美候选者。这消除了对同一代码不必要的重写,减少了代码的不一致性,并允许任何拥有必要权限的用户或应用程序访问和执行代码。
上述仅为本发明的优选实施例而已,并不对本发明起到任何限制作用。任何所属技术领域的技术人员,在不脱离本发明的技术方案的范围内,对本发明揭露的技术方案和技术内容做任何形式的等同替换或修改等变动,均属未脱离本发明的技术方案的内容,仍属于本发明的保护范围之内。
Claims (4)
1.一种基于存储过程的脚本扩展方法,其特征在于,包括以下步骤:
S1:创建存储过程;
S2:初始化创建的存储过程;
S3:调用存储过程。
2.如权利要求1所述的基于存储过程的脚本扩展方法,其特征在于,创建存储过程的方式如下:
S11:定义参数及变量;
S12:对于存储过程执行中出现的异常,存储过程执行的同时处理异常或返回给调用方;
S13:使用session临时表;
S14:对变量进行赋值,并串联业务流程。
3.如权利要求2所述的基于存储过程的脚本扩展方法,其特征在于,定义参数及变量如下:
输入参数用in表示,输出参数用out表示,输入及输出参数用inout表示;
采用关键字DECLARE定义变量。
4.如权利要求1所述的基于存储过程的脚本扩展方法,其特征在于,还包括以下步骤S4:根据实际需求删除或重建存储过程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410060519.2A CN117891830A (zh) | 2024-01-16 | 2024-01-16 | 一种基于存储过程的脚本扩展方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410060519.2A CN117891830A (zh) | 2024-01-16 | 2024-01-16 | 一种基于存储过程的脚本扩展方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117891830A true CN117891830A (zh) | 2024-04-16 |
Family
ID=90645327
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410060519.2A Pending CN117891830A (zh) | 2024-01-16 | 2024-01-16 | 一种基于存储过程的脚本扩展方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117891830A (zh) |
-
2024
- 2024-01-16 CN CN202410060519.2A patent/CN117891830A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6944845B2 (en) | Implementation for an object oriented run-time extensible item | |
CN106462412B (zh) | 动态地产生的基于模式的类的结构识别 | |
CN107861728B (zh) | 用于传统程序语言向现代程序语言转换的方法及其系统 | |
CN107924326B (zh) | 对经更新的类型的迁移方法进行覆盖 | |
US10140119B2 (en) | Modular serialization | |
US20180052708A1 (en) | Resource Efficient Acceleration of Datastream Analytics Processing Using an Analytics Accelerator | |
CN104679572A (zh) | 基于预加载机制的插件支持方法 | |
WO2022148390A1 (zh) | 一种在区块链中部署、更新、调用智能合约的方法 | |
Van der Linden | Just Java 2 | |
US7219341B2 (en) | Code analysis for selective runtime data processing | |
US20040267766A1 (en) | Defining user-defined data types and/or user-defined methods using an interpreted programming language | |
CN112685020A (zh) | 动态创建服务接口的方法、装置、电子设备及存储介质 | |
CN113987337A (zh) | 基于组件化动态编排的搜索方法、系统、设备及存储介质 | |
EP0899669A2 (en) | Language manager interface | |
US20030149967A1 (en) | Information processing method and system | |
US9298473B2 (en) | System and method for a generic object access layer | |
US11347487B2 (en) | Confining reflective access based on module boundaries | |
CN110018831B (zh) | 程序处理方法、装置及计算机可读存储介质 | |
CN116226921A (zh) | 一种脱敏处理方法及装置 | |
CN117891830A (zh) | 一种基于存储过程的脚本扩展方法 | |
CN112363804B (zh) | 区块链jvm应用方法、设备和存储介质 | |
CN114840195A (zh) | 一种针对iOS SDK静态库的私有化方法 | |
CN114416530A (zh) | 字节码修改方法、装置、计算机设备和存储介质 | |
CN111459933A (zh) | Gdb数据动态扩展方法、装置及存储介质 | |
CN113032468A (zh) | 数据写入方法、装置和计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |