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

Oracle 建表的存储过程

建表的存储过程

下面是建表的存储过程,用途:通过不同的表,根据不同过滤条件,得到某个字段,例如neid,然后创建一个新表T,表T的表名为拼接XXXX_XXX_neid,表T的字段自行添加

  • xxx:命名存储过程名称,例如:create_table
  • 表A :例如:表user
  • 条件A :例如:select ne_id from user
CREATE OR REPLACE PROCEDURE XXX存储名(p_table_name IN VARCHAR2) IS-- 定义变量来存储动态 SQL 查询v_sql_query VARCHAR2(1000);-- 定义一个游标来获取符合条件的 neidTYPE t_neid IS REF CURSOR;c_neid t_neid;-- 定义变量来存储表名v_table_name VARCHAR2(100);
BEGIN-- 根据传入的表名构建动态 SQL 查询IF p_table_name = '表A' THENv_sql_query := '条件A';ELSIF p_table_name = '表B' THENv_sql_query := '条件B';ELSIF p_table_name = '表C' THENv_sql_query := '条件C';ELSERAISE_APPLICATION_ERROR(-20001, 'Invalid table name: ' || p_table_name);END IF;-- 打开动态游标OPEN c_neid FOR v_sql_query;-- 循环遍历游标中的每一行LOOPFETCH c_neid INTO v_table_name;EXIT WHEN c_neid%NOTFOUND;-- 构建表名v_table_name := 'XXXX_XXX_' || v_table_name;-- 检查表是否存在DECLAREv_count NUMBER;BEGINSELECT COUNT(*)INTO v_countFROM user_tablesWHERE table_name = UPPER(v_table_name);-- 如果表不存在,则创建表IF v_count = 0 THENEXECUTE IMMEDIATE 'CREATE TABLE ' || v_table_name || ' (XXX VARCHAR2(512),XXX  VARCHAR2(32),XXX  VARCHAR2(32),XXX  VARCHAR2(128),XXX  VARCHAR2(64))';DBMS_OUTPUT.PUT_LINE('Table ' || v_table_name || ' created.');ELSEDBMS_OUTPUT.PUT_LINE('Table ' || v_table_name || ' already exists.');END IF;END;END LOOP;-- 关闭游标CLOSE c_neid;
END create_alarm_his_table;
http://www.lryc.cn/news/494410.html

相关文章:

  • 【Debug】hexo-github令牌认证 Support for password authentication was removed
  • torch.is_floating_point(input)
  • 【分布式】分布式事务
  • Spring Data 简介
  • 【娱乐项目】基于批处理脚本与JavaScript渲染视频列表的Web页面
  • [MySQL]流程控制语句
  • Flink在Linux系统上的安装与入门
  • 微信小程序Webview与H5通信
  • Debezium Engine监听binlog实现缓存更新与业务解耦
  • docker搭建socks5代理
  • scanf函数和printf函数的格式化输入输出
  • Day31 贪心算法 part05
  • uniapp连接mqtt频繁断开原因和解决方法
  • 【数据结构-队列】力扣641. 设计循环双端队列
  • leetcode3250. 单调数组对的数目 I,仅需1s
  • 安全基线检查
  • C#读取本地图像的方法总结
  • 力扣81:搜索旋转排序数组II
  • 信息系统项目管理-论文写作方法之背景二
  • 使用ffmpeg命令实现视频文件间隔提取帧图片
  • 我们项目要升级到flutter架构的几点原因
  • 【简单好抄保姆级教学】javascript调用本地exe程序(谷歌,edge,百度,主流浏览器都可以使用....)
  • ElasticSearch为什么不能在query阶段直接返回_id,从而避免fetch?
  • 网安瞭望台第5期 :7zip出现严重漏洞、识别网络钓鱼诈骗的方法分享
  • 获 2023 年度浙江省科学技术进步奖一等奖 | 网易数智日报
  • SQL基础入门 —— SQL概述
  • 【附录】Rust国内镜像设置
  • 量化交易系统开发-实时行情自动化交易-8.2.发明者FMZ平台
  • MATLAB —— 机械臂工作空间分析
  • 向日葵连接xrdp虚拟桌面