存储过程编写

编写一个基本的SQL-Server存储过程 问题 /* 创建一个存储过程输入参数为 DelayDate, 需求是将Auth表中 indate 大于 DelayDate 的数据 LastEditUser字段修改为你的短名, 且每修改一笔数据, 需要将修改记录写入临时表中,且需要保证修改 Auth 表记录与插入临时表的记录的数据一致性, 最终输出临时表中的记录 */ 编写存储过程 if object_id('dbo.hk3') is not null drop proc dbo.hk3 go CREATE PROC dbo.hk3 阅读详情

  存储过程

Sql是一个面向函数的语言。功能的强弱取决与函数的丰富程度。任何数据库提供的函数都是有限的,为了扩展功能,很多数据库系统开始支持过程化语句,用于编写自定义函数,这些函数使用时与内置函数一样。存储过程还有另一个好处,减少了与客户端的交换次数,有助于提高性能。SQLHUB是一个分布式数据库,主要用于数据集成。它也提供了函数扩展功能。它提供了三种方式:sql、java类、java脚本:
SQL
SQLHUB提供了过程化sql支持,语法与oracle的pl/sql相似,但做了很多改进,如:
n         没有declare部分,变量不需要声明,动态数据类型,变量长度不做约束
n         可以对数据集变量、数组参数执行dml(select、insert、update、delete)操作
n         例外为字符型,无须声明
n         系统变量result自动保存每条语句的执行结果,可以在下一条语句中直接使用
n         可以直接执行DDL语句
n         简单的动态SQL执行方法,execute函数
举例:
--记录字符串合并
create or replace procedure rowstr() return varchar as
begin
 v_fields := fields(data);
 v_rowcount := rowcount(v_fields);
 v_sum := '';
 for i in 1..v_rowcount loop
    if i > 1 then
      v_sum := v_sum + ',';
    end if;
    v_sum := v_sum + eval('data.' + v_fields(i, 1));
 end loop;
 return v_sum;
end;
执行:
select rowstr() from 部门
结果:
+------------+
| ROWSTR()    |
+------------+
| 40,行政部 , |
| 20,开发部 , |
| 30,销售部 , |
| 10,财务部 , |
+------------+
 
JAVA脚本
Sqlhub包含了eval_java内置函数,可以执行动态java脚本。可以用包装eval_java后在外面方便调用。
EVAL_JAVA 语法:
eval_java(strJava)
功能:
执行 java代码,需要groovy包的支持,里面包含了conn参数可以用于执行SQL,详细见:DbConn
返回值类型:
执行结果
示例:

eval_java('Math.abs(-1)');
eval_java('Math.abs(-1)');
+-----------+
| abs(-1)') |
+-----------+
| 1          |
+-----------+
eval_java('conn.eval("user()")');
+-----------+
| abs(-1)') |
+-----------+
| 1          |
+-----------+
eval_java('Math.abs(-1)');
+------------------+
| eval("user()")') |
+------------------+
| HG                |
+------------------+
+-----------+
| abs(-1)') |
+-----------+
| 1          |
+-----------+

JAVA
Java存储过程必须继承自com.hg.sql.JavaProcedure类,覆盖eval方法,返回结果。在处理过程中可以调用DbConn中的方法,执行操作。
举例:
package com.hg.ext;
 
import java.util.HashMap;
 
import com.hg.db.DbTypes;
import com.hg.sql.JavaProcedure;
import com.hg.sql.DbConn;
 
public class SID extends JavaProcedure {
    /**
     * id
     */
    private int id = 0;
    /**
     * 执行
     */
    public Object eval(DbConn conn, HashMap paramMap) throws Exception {
        this.resType = DbTypes.INTEGER;
        this.id++;
        return String.valueOf(this.id);
    }
}
创建存储过程
create procedure SYS.SID return VARCHAR type JAVA AS
'com.hg.ext.SID';
执行
sys.sid();
结果
+-------+
| SID() |
+-------+
| 1      |
+-------+
Postgre存储过程编写 文章目录语法说明函数说明 参考文章: https://www.cnblogs.com/persy_php/archive/2010/07/21/l_ping.html https://wiki.postgresql.org/wiki/9.1%E7%AC%AC%E4%B8%89%E5%8D%81%E4%B9%9D%E7%AB%A0 https://blog.youkuaiyun.com/omguare/article/details/39351833 语法说明 CREATE OR REPLACE FUNCTION "pu 阅读详情

相关推荐

【本体】Protege高效批量导入实例(Individuals)的自动化实践

本文详细介绍了在Protege中高效批量导入实例(Individuals)的自动化实践方法。通过分析Protege本体文件结构,提供Python脚本示例,帮助用户快速处理大规模数据导入,显著提升知识图谱构建效率。特别适合需要处理数千个实例的医疗、制药等领域应用。

weixin_30275415的博客 408

MySQL存储过程怎么写?看完这篇秒懂

MySQL存储过程是一组预定义的SQL语句,被存储在数据库中,以便可以重复调用和执行。存储过程通常用于将一系列SQL操作封装到单个逻辑单元中,以提高代码的重用性、性能和安全性。开始时间和keep_pc作为变量,并初始化。

weixin_44867191的博客 4750

保姆级教程:用Vue3+Element Plus快速搭建Flowable流程定义管理后台界面

本文提供了一份详细的Vue3+Element Plus教程,指导开发者快速搭建Flowable流程定义管理后台界面。从项目初始化、核心页面设计到响应式数据处理,全面覆盖前端开发关键步骤,帮助提升企业级应用开发效率。

weixin_42662293的博客 480

编写存储过程

设计存储过程 几乎任何可写成批处理的 Transact-SQL 代码都可用于创建存储过程。 存储过程的设计规则 存储过程的设计规则包括: CREATE PROCEDURE 定义本身可包括除下列 CREATE 语句以外的任何数量和类型的 SQL 语句,存储过程中的任意地方都不能使用下列语句: CREATE DEFAULT CREATE TRIGGER CREATE PROCEDURE C

懒散狂徒的专栏 1697

车辆TBOX科普 第64次 TBOX系统集成测试与文档编写

汽车电子开发中,TBOX作为核心网关面临独特挑战:需处理多网络接口、满足严苛安全标准并确保10年以上可靠性。项目文档是开发流程的核心资产,必须与编码同步更新,构建从需求到测试的完整闭环。系统集成测试需分层进行,结合硬件在环测试和自动化工具,并严格管理缺陷。文档与测试深度协同,通过追溯矩阵确保每个需求都被覆盖验证。最终交付不仅是软件包,更是一套包含完整验证报告的信任体系。这种严谨的工程纪律,是将代码转化为车规级可靠产品的关键保障。

IT深耕十余载,大道之简 1333

《UE4游戏开发》之 《音效系统的实现》

音效系统需要负责管理什么事情: 1.1 确定声音控制的分类:如背景音乐、技能音效、界面音效、角色配音等,不同游戏对声音有不同的分类 1.2 控制每个分类的声音的开启与关闭,以及调节每个分类声音的大小 解决如何分类: 2.1 首先需要知道ue4为声音分类提供了什么:SoundClass通常需要一个根分类【SC_RPG_Master】,便于总体控制音效,以及指定引擎默认启动的音效 打开SoundClass资产【SC_RPG_Master】,对根控制的设置,将逐级传递并按比例进行设置,以此达到控制一类声音的目的.

qq_21919621的博客 2126

mysql——存储过程

一、基本语法: 1、创建 create procedure 存储过程名称([参数列表]) begin ---sql语句(一条或多条); end; 例: create procedure p1() begin select count(*) from student; end; 2、调用 call 名称([参数]); 例: call p1(); 3、查看 (1) select * from information_schema.routines wh...

qq_45973211的博客 2054

【实战指南】OpenClaw 使用 Bird Skill 接入 X(Twitter)的终极省心方案:告别每次都要手动喂 Cookie 的痛苦

OpenClaw 使用 Bird Skill 接入 X(Twitter)的终极省心方案:告别每次都要手动喂 Cookie 的痛苦

hampeter的博客 1802

MySQL-存储过程的创建和使用

数据库 存储过程的介绍,创建和使用,含实践案例

f135917h的博客 5325

粒子群算法实战:用Matlab解决旅行商问题(TSP)的完整代码解析

本文提供了使用粒子群算法解决旅行商问题的完整Matlab实战指南。通过将连续空间的粒子群算法进行离散化改造,采用基于交换序的策略来更新粒子位置与速度,并给出了从问题定义、数据结构设计、核心函数实现到主迭代循环的详细代码解析。文章还探讨了参数调优、性能优化及处理复杂TSP变体的进阶思路,为物流规划、路径优化等领域的工程应用提供了可直接复用的解决方案。

m2n3o4p5的博客 350

OmniQuant:全方位校准实现大语言模型高效量化与移动端部署

模型量化是一种通过降低模型权重和激活值的数值精度来压缩模型大小、减少内存占用和计算开销的核心技术。其原理在于将高精度浮点数映射到低精度整数表示,从而在保持模型性能的同时,显著提升存储和计算效率。这项技术的价值在于,它使得大规模语言模型能够在消费级硬件和资源受限的移动设备上运行,极大地拓宽了AI应用场景。OmniQuant作为一项前沿的量化技术,通过引入可学习权重裁剪和可学习等价变换机制,实现了对权重分布不均匀和激活值异常值问题的协同优化,从而在极低的比特数下仍能保持优异的模型性能。本文深入探讨了OmniQu

weixin_30719711的博客 485

Mysql存储过程编写

Mysql存储过程编写存储过程编写的模板:Create PROCEDURE PROCEDUREName (IN para mint,……)BeginDeclare varname type;语句;End;以上就是存储过程的编写模板。其中,type可以是表中的任意类型,比如:varchar,bigint,int,decimal,longtext等等类型。游标的声明是:Declare cursorNa...

weixin_33754065的博客 1513

【测开求职】面试题:操作系统 吐血整理

本篇文章是笔者为准备研究生复试和校招而写,因此主要针对问答,注重理解,而不在于细节计算。涵盖考研范围内的所有知识内容,读者可以先查看上面的链接走一遍操作系统的整体框架结构。其中,重点难点以及易混淆的知识点,笔者用其他文章进行了详述,在知识点处贴好了链接,有需要的可以查阅。另外操作系统在校招中有非常明显的重点,一般情况下只会考察进程管理,内存管理,和设备管理,且这三者考察频率依次递减,文件管理基本不会考察。

vector的博客 7912

SQL Server存储过程编写规范

本文深入探讨了SQLServer存储过程的编写规范,旨在提升数据库性能、数据完整性和系统可维护性。文章首先概述了存储过程的基本概念及其在SQLServer中的应用优势,如执行速度快、灵活性高和易于维护。随后,详细介绍了编写存储过程的准备工作、语法规范、编写流程、优化与调试以及注意事项,强调了参数化查询的重要性以增强数据处理的安全性和效率。通过一个销售数据筛选的实践案例,展示了如何应用这些规范来编写高效的存储过程。最后,文章总结了遵循编写规范对提高数据处理效率和系统维护性的重要性,鼓励开发者根据实际情况不断优

qq_35974860的博客 107

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

JDBC 存储过程(使用java代码编写sql 存储过程)

1.定义一个存储过程(不带参数) 使用sql语句定义一个存储过程挺简单的,参考这一篇博文https://blog.youkuaiyun.com/qq_44973159/article/details/91491985 create procedure ccgc as select * from t_student 而使用java并不 那么简单了,,,如下 package java617存储过程; impor...

共勉 7543

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

关于如何规范地编写存储过程的心得

从事数据中心的工资已经超过5个年头了,对于做数据的程序员来说,打交道最多的就是存储过程了,见过很多写的优秀的存过,也见过很多特别想吐槽的糟心的,那么,如何编写一个少让人吐槽,看着舒服,方便维护,又高效的存储过程呢? 先来了解下存储过程的结构,一般来说存储过程包括以下6个主要部分 (1)声明 (2)注释 (3)初始化 (4

浪哥的博客 969

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

MySQL存储过程和函数的编写_MySQL函数编写和存储过程1

MySQL函数编写和存储过程建表#创建表CLASS/*班级表*/CREATE TABLE classes(classno MEDIUMINT UNSIGNEDNOT NULLDEFAULT 0,classname VARCHAR(20)NOT NULLDEFAULT "",loc VARCHAR(13) NOT NULL DEFAULT "") ENGINE=innodb ...

weixin_29311017的博客 158

java 编译存储过程_编写JAVA存储过程

Oracle里可以使用多种语言来编写存储过程,比如Pro*C/C++,PL/SQL,COBOL,在Oracle8i开始支持用Java编写存储过程。如果非要写存储过程的话,做为以Java谋生的我,首选用Java编写,用PL/SQL需要记忆很多的语法(Pascal类的语法)和函数,远不如使用Java/JDBC这么轻车熟路。而且,DB2等数据库都支持Java存储过程,所以不比为每一种数据学习一种编写存储...

weixin_35741494的博客 669

在ACCESS中编写存储过程

我们已经熟悉在 ASP 中通过调用 SQL Server 存储过程来执行数据库操作,不过大家是否知道,在桌面级数据库 Access 中,我们也能够创建并使用“存储过程”? Access + ASP 是开发轻量级 Web 应用程序的绝佳组合:简单,快速,兼容性好,但是性能通常不高。并且,用 ADODB.Connection 和 Recordset 对象来执行 SQL 语句的方式,也有一些不方便,因为

enyiok的专栏 2023

用Java编写Oracle存储过程

Oracle里可以使用多种语言来编写存储过程,比如Pro*C/C++,PL/SQL,COBOL,在Oracle8i开始支持用Java编写存储过程。如果非要写存储过程的话,做为以Java谋生的我,首选用Java编写,用PL/SQL需要记忆很多的语法(Pascal类的语法)和函数,远不如使用Java/JDBC这么轻车熟路。而且,DB2等数据库都支持Java存储过程,所以不比为每一种数据学习一种编写

xwchen的专栏 814

使用Java编写oracle存储过程

使用Java编写oracle存储过程bromon原创 请尊重版权       通常我们都使用ps/sql为oracle编写存储过程,从oracle 8开始我们可以有另一种选择:Java。8.0开始,oracle自带一个jvm,内置对java的支持,任何java能做的事情你都可以放到oracle里面来做,你甚至可以在里面操作db2。这让oracle具备了极其巨大的扩展能力,只

Sometimes Java 2143

编写JAVA存储过程

用Java编写Oracle存储过程 关键字: Database Oracle里可以...

cq5523044的博客 341

SQL在存储过程编写经验和优化措施

SQL在存储过程编写经验和优化措施

hhmxd的专栏 379

存储过程编写经验和优化措施

存储过程编写经验和优化措施一、前言:在经过一段时间的存储过程开发之后,写下了一些开发时候的小结和经验与大家共享,希望对大家有益,主要是针对Sybase和SQL Server数据库,但其它数据库应该有一些共性。 二、适合读者对象:数据库开发程序员,数据库的数据量很多,涉及到对SP(存储过程)的优化的项目开发人员,对数据库有浓厚兴趣的人。 三、介绍:在数据库的开发过程中,经常会遇到复杂

郭宗一专栏 828

MySQL存储过程和函数的编写_mysql函数编写和存储过程

#建表#创建表CLASSCREATE TABLE classes( /*班级表*/classno MEDIUMINT UNSIGNED NOT NULL DEFAULT 0,classname VARCHAR(20) NOT NULL DEFAULT "",loc VARCHAR(13) NOT NULL DEFAULT "") ENGINE=innodb DEFAULT CHARSE...

weixin_39878688的博客 160
上一篇: SQLHUB数据库中获取IP列表
下一篇: 视图新语
sqlhub
博客等级 码龄21年 19粉丝 93原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值