ORACLE PL/SQL EXECUTE IMMEDIATE执行表中字段SQL语句,表字段为SQL语句如何批量执行 ,存储过程批量处理SQL语句

遇到一个需求:

excel表里面登记了需要校验数据的规则类型和校验语句,希望能将该过程固化下来,一次性执行。

我想到的办法:

1、将该表入库

2、批量执行表中的SQL语句字段

3、将校验的结果更新到第三列。

注意:本需求点是orcal中的表字段的字段值为SQL语句。

这是我的原表,其中第二例为SQL语句

主要方法还是用存储过程解决。

开始

SQL 复制代码
DECLARE 
v_sql VARCHAR2(255);
SQL_RS VARCHAR(2);
UP_SQL VARCHAR2(255);
BEGIN
  FOR r IN (SELECT JY_SQL  FROM TB_SQL) LOOP
	 v_sql := r.JY_SQL;
     EXECUTE IMMEDIATE REPLACE(r.JY_SQL,';','') INTO SQL_RS; -- 一定要把封号删除,不然肯定报错
     UP_SQL := 'UPDATE RULE_JY SET JY_REASON =: 1  WHERE JY_SQL =:2'; --将结果存储在第三列JY_REASON
     EXECUTE IMMEDIATE UP_SQL USING SQL_RS, V_SQL;
  END LOOP;
END;

注:EXECUTE IMMEDIATE 后面的sql语句字符串末尾不能带';',刚开始报错查了全网都没有解决。

整理和无私分享不易,点赞是对我最大的鼓励,(#.#)

相关推荐
寂寞旅行4 小时前
向量数据库Milvus的使用
数据库·milvus
闻哥4 小时前
Redis事务详解
java·数据库·spring boot·redis·缓存·面试
道亦无名5 小时前
aiPbMgrSendAck
java·网络·数据库
ID_180079054735 小时前
Python爬取京东商品库存数据与价格监控
jvm·python·oracle
l1t6 小时前
duckdb polyglot 插件的使用
sql·duckdb
面向对象World7 小时前
正点原子Mini Linux 4.3寸800x480触摸屏gt115x驱动
linux·服务器·数据库
dinga198510268 小时前
mysql之联合索引
数据库·mysql
微风中的麦穗8 小时前
【SQL Server 2019】企业级数据库系统—数据库SQL Server 2019保姆级详细图文下载安装完全指南
大数据·数据库·sqlserver·云计算·个人开发·运维必备·sqlserver2019
Leon-Ning Liu9 小时前
PDB未按预期时间执行自动统计信息收集问题分析
oracle
zjttsh9 小时前
MySQL加减间隔时间函数DATE_ADD和DATE_SUB的详解
android·数据库·mysql