当前位置: 首页 > news >正文

Sql 函数传递参数 字符串拼接

使用场景

一个计算价格的函数,多个存储过程调用,因业务需求经常要新增参数,避免修改函数时程序执行存储过程报错,将多个参数拼接为一个字符串传递

   -- 调用函数CalcuPrice(UnitPrice,CONCAT('MFQZC=',MFQZC,'&ItemNum=',ItemNum,'&AssmCode=',AssmCode))-- 定义函数function [CalcuPrice](@UnitPrice decimal(38, 3),		-- 单价@ARGS varchar(900))returns decimal(38, 3)as begin/*****************************************	解析参数列****************************************/-- 1、定义接受参数列表的变量declare @MFQZC varchar(100),@ItemNum varchar(100)/*物料编码*/,@AssmCode varchar(100)/*加工件编码*/declare @Str0 varchar(100),@Str1 varchar(100),@Str2 varchar(100)-- 2、循环读取键值对declare S_subject CURSOR FAST_FORWARD FORselect data from dbo.SplitStr(@ARGS,'&');open S_subject;fetch next from S_subject into @Str0;while @@FETCH_STATUS=0beginset @Str1= (select data from (select ROW_NUMBER() over (ORDER BY (select 1)) RowNum,data from dbo.SplitStr(@Str0, '=')) a where RowNum=1)set @Str2= (select data from (select ROW_NUMBER() over (ORDER BY (select 1)) RowNum,data from dbo.SplitStr(@Str0, '=')) a where RowNum=2)if(@Str1='MFQZC')beginset @MFQZC=@Str2endelse if(@Str1='ItemNum')beginset @ItemNum=@Str2endelse if(@Str1='AssmCode')beginset @AssmCode=@Str2endfetch next from S_subject into @Str0;endclose S_subject;deallocate S_subject;end;-- 接下来就可以用从字符串中解析出来的参数进行后续逻辑处理

http://www.lryc.cn/news/150325.html

相关文章:

  • java八股文面试[多线程]——两个线程交替打印1-100之间的数字
  • gRPC之gRPC认证
  • 简易虚拟培训系统-UI控件的应用3
  • 语言模型(language model)
  • 【3.Vue子组件调用父组件方法】
  • 算法系列-876-求链表的中间节点
  • h5 ws 客户端 监听ws服务器广播的信息
  • 网络基础之重中之重
  • HarmonyOS应用开发者-----基础认证试题及答案
  • C++:string并非以0作为结束符,c_str和data的返回却包含结束符0
  • ChatGPT插件的优缺点
  • 北京985学校,交叉学科考英一数三408
  • ChatGPT 总结前端HTML, JS, Echarts都包含哪些内容
  • 企业架构LNMP学习笔记1
  • 【位运算】leetcode371:两整数之和
  • 【爬虫小知识】如何利用爬虫爬网页——python爬虫
  • 什么是跨域问题 ?Spring MVC 如何解决跨域问题 ?Spring Boot 如何解决跨域问题 ?
  • 线性代数的学习和整理17:向量空间的基,自然基,基变换等(未完成)
  • Java中支持分库分表的框架/组件/中间件简介
  • 7.2 项目2 学生通讯录管理:文本文件增删改查(C 版本)(自顶向下设计+断点调试) (A)
  • excel怎么设置任意选一个单元格纵横竖横都有颜色
  • 期货-股票交易规则
  • Makefile一些语法
  • 0基础可以转行编程行业么
  • 【spark】dataframe慎用limit
  • 基于OpenCV+LPR模型端对端智能车牌识别——深度学习和目标检测算法应用(含Python+Andriod全部工程源码)+CCPD数据集
  • C++学习6
  • bazel使用中存在的问题
  • svn软连接和文件忽略
  • 自动驾驶攻城战,华为小鹏先亮剑