Oracle通过函数动态拼接SQL并返回执行结果

        最近接到优化程序的工作,程序使用kettle编写,有一段业务处理,需要使用kettle遍历动态拼接执行SQL(数据库(oracle)中存储SQL的查询条件,例如:AND ITEM='K001');测试发现kettle遍历非常耗时(情理中,遍历在执行SQL,不耗时,就不正常了),再考虑到kettle遍历次数达到一定数量,基本就挂了;核心问题是kettle遍历耗时,并存在潜在的问题;有问题解决问题,不让kettle执行遍历工作,不就可以解决这个问题了吗?依据这个思路,我首先想到,遍历执行的SQL,使用数据库函数执行;有了方案,经过测试可以实现,并解决了核心问题

1、创建函数

CREATE OR REPLACE FUNCTION "EXEC_SQL" (--参数P_PARAM1 IN VARCHAR2
)	RETURN NUMBER AS--动态拼接SQLV_SQLS VARCHAR2(2000);--接手执行SQL的结果V_CNT NUMBER(30,2);
BEGIN--动态拼接SQLV_SQLS:='SELECT SUM(AMOUNT) AS TOTAL FROM TABLE_RELATION WHERE 1=1 '||P_PARAM1;--执行并返回结果EXECUTE IMMEDIATE V_SQLS INTO V_CNT;RETURN V_CNT;
END;

2、调用函数

SELECT EXEC_SQL('AND ITEM=''K001''') FROM DUAL

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/807013.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

常见分类算法

一、ChatGPT 在人工智能和机器学习领域,分类算法是一种监督学习技术,用来识别输入数据所属的类别。以下是一些常见的分类算法: 1. 决策树(Decision Trees): 决策树通过创建一系列的问题或决策,来将数据…

让我看看谁还在用conda?

目录 前言下载方式安装命令使用方式及小技巧一些常用的命令安装软件小技巧一些关于conda环境的建议 最后 前言 相信大家在用conda的时候都遇到过各种各样的问题吧,比如创建环境非常缓慢、安装软件并解析依赖的速度非常感人等,有时候等待半小时甚至更久最…

mysql查询某条记录所在的行号

有时候我们想知道某条记录在表中的多少行,这样我们就可以开始继续上一次的任务了。 下面是SQL,可以直接执行,把表名改成自己真实的表名就好了,还得注意下子查询的排序,也得按自己真实需求来即可: SET row…

WIN11 安装配置 linux 子系统 Ubuntu 图形界面 桌面系统

WIN11 安装配置 linux 子系统 Ubuntu 图形界面 桌面系统 在适用于 Linux 的 Windows 子系统上运行 Linux GUI 应用 1、先决条件: 1)需要使用 Windows 10 版本 19044 或 Windows 11 才能使用此功能。 2)已安装适用于 vGPU 的驱动程序。 若…

Mongodb入门--头歌实验MongoDB数据库安全

MongoDB 默认的启动是不验证用户名和密码的,启动 MongoDB 服务后,可以直接用命令 mongo 连接上来,对所有的库具有 root 权限。 这种情况下数据就像在“裸奔”一样,任何人都能修改我们的数据,所以我们要添加一些限制&a…

小样本计数网络FamNet(Learning To Count Everything)

小样本计数网络FamNet(Learning To Count Everything) 大多数计数方法都仅仅针对一类特定的物体,如人群计数、汽车计数、动物计数等。一些方法可以进行多类物体的计数,但是training set中的类别和test set中的类别必须是相同的。 为了增加计数方法的可拓…

构建你的第一个知识图谱项目:从零开始

构建你的第一个知识图谱项目:从零开始 引言 在数据驱动的世界中,知识图谱不仅仅是一个概念上的创新,它已经成为了连接复杂信息、提供深入见解的强大工具。无论您是数据科学家、软件开发人员还是业务分析师,构建知识图谱可以帮助您…

二百三十、MySQL——MySQL表的索引

1 目的 梳理一下目前MySQL维度表的索引情况,当然网上也有其他博客专门讲MySQL索引的,我这边只是梳理一下目前的索引状况而已 2单列索引 2.1 索引截图 2.2 建表语句 3 联合索引 3.1 索引截图 3.2 建表语句 4 参考的优秀博客 http://t.csdnimg.cn/ZF7…

Swift中字符串详解

在Swift中,字符串是一系列字符的集合。字符串是一种值类型,可以直接进行比较和操作。 字符串字面量:在Swift中,可以使用双引号("")来创建一个字符串字面量。例如: let message = "Hello, World!"字符串连接:可以使用+运算符将两个字符串连接在一起。…

Ubuntu Desktop:创建桌面启动图标

Ubuntu Desktop:创建桌面启动图标 在Ubuntu Desktop上创建桌面启动图标是一个相对简单的过程,可以帮助用户快速访问他们最常用的应用程序。本文旨在指导你完成创建一个桌面启动图标的步骤,从而使你能够轻松启动你的应用程序。 为什么创建桌…

网络IO模型以及实际应用

网络IO模型 本文主要介绍了几种不同的网络IO模型,以及实际应用中使用到的Reactor模型等。 我们常说的网络IO模型,主要包含阻塞IO、非阻塞IO、多路复用IO、信号驱动IO、异步IO。 根据第一个阶段:是否需要阻塞,分为阻塞和非阻塞IO。…

Linux双网卡默认路由优先级设置不正确,导致网络不通问题定位

问题描述 RHEL9 双网卡环境,两个网卡配置如下:(eth0 走内网,eth1 走外网) eth0 192.168.10.20/24 网关: 192.168.10.254 eth1 10.206.216.92/24 网关: 10.206.216.254配置完成后,curl https://www.baidu.com访问百度失…

国税发票查验接口、电子增值税发票查验接口、数电票查验接口

翔云发票查验接口支持增值税发票管理系统开具发票的真伪,通过发票代码、号码、日期、金额、校验码四要素信息进行真伪的查验,支持返回全票面信息,API接口便于集成,可适用于多种应用场景。 发票查验接口python调用示例:…

C++继承之虚继承实例

1 概述 通过继承机制,可以利用已有的对象类型来定义新的对象类型。所定义的新的对象类型不仅仅拥有新定义的成员,而且还同时拥有旧的成员。我们称已存在的用来派生新类的类为基类,又称为父类。由已存在的类派生出的新类称为派生类&#xff0c…

外包干了17天,技术倒退明显

先说情况,大专毕业,18年通过校招进入湖南某软件公司,干了接近6年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落! 而我已经在一个企业干了四年的功能…

设计模式|装饰器模式(Decorator Pattern)

文章目录 结构优缺点优点缺点适用场景示例装饰器模式(Decorator Pattern)是一种结构型设计模式,它允许在不改变原始对象的基础上,动态地给对象添加新的功能或责任。这种模式是通过创建一个包装对象,也就是装饰器,来包裹真实的对象,然后在装饰器中添加新的行为或功能。这…

web自动化测试系列-selenium xpath定位方法详解(六)

1.xpath介绍 XPath 是一门在 XML 文档中查找信息的语言。XPath 用于在 XML 文档中通过元素和属性进行导航。而html中也应用了这种语言 ,所以 ,我们定位html页面元素时也会用到xpath这种方法 。 2.xpath定位方式 xpath主要通过以下四种方法定位 &#…

白帽工具箱:Metasploit框架中的db_nmap扫描艺术

🌟🌌 欢迎来到知识与创意的殿堂 — 远见阁小民的世界!🚀 🌟🧭 在这里,我们一起探索技术的奥秘,一起在知识的海洋中遨游。 🌟🧭 在这里,每个错误都…

有趣的css - 太极八卦图

大家好,我是 Just,这里是「设计师工作日常」,今天分享的是用css 实现一个动态的太极八卦图。 《有趣的css》系列最新实例通过公众号「设计师工作日常」发布。 目录 整体效果核心代码html 代码css 部分代码 完整代码如下html 页面css 样式页面…

Netty出坑记

NIO: 一个线程处理多个请求 BIO: 阻塞 netty 编码解码 TFO: 校验cookie合法性,不合法 TCP流程 设计QQ: 登录过程,client TCP协议向server发送信息,HTTP协议下载信息 发消息:clie…