Oracle获取GUID和生成批量插入语句实现方法

 更新时间:2023年08月02日 08:59:51   作者:牛奶咖啡13  
这篇文章主要给大家介绍了关于Oracle获取GUID和生成批量插入语句实现的相关资料,文中通过图文以及示例代码介绍的非常详细,对大家学习或者工作具有一定的参考价值,需要的朋友可以参考下

一、业务需要

在进行系统的日常维护过程中,涉及到指定条件的人员或内容批量插入内容,此时又希望能够快速根据指定条件自动生成对应的插入SQL语句,而不用编写代码;比如:我们需要给菜单权限表中指定菜单节点为【设备报表】的所有人员都添加(名为【设备报警】的菜单)内容。

二、实现思路

①Oracle获取GUID字符串;

②编写指定条件的查询语句;

③编写基础的插入语句;

④结合指定条件的查询语句自动生成带条件的插入语句

三、实现方法

3.1、Oracle获取GUID字符串

--Oracle中获取小写GUID字符串SQL语句
SELECT lower(rawtohex(sys_guid())) GUID  from DUAL;
--Oracle中获取大写GUID字符串SQL语句
SELECT upper(rawtohex(sys_guid())) GUID  from DUAL;

3.2、编写指定条件的查询语句

--查询到【MENUROLE】表中菜单节点为【设备报表】条件下的所有人员SQL语句:
SELECT EMPLOYEE from MENUROLE WHERE NODENAME='设备报表' 

3.3、编写基础的插入语句

--插入语句的语法
INSERT INTO 表名称 ( 字段1, 字段2, 字段3,... )
VALUES ('内容1','内容2','内容3',...);
--比如给【MENUROLE】插入一条菜单信息的SQL语句
INSERT INTO MENUROLE ( GUID, CREATETIME, CREATEEMPLOYEE, NODENAME, PARENTID, NAMESPACE, NODEMENUNAME, EMPLOYEE )
VALUES
	( 'ec65cbc246bac213e0536a0318ac6bbe', TO_DATE( '2022-11-01 22:06:36', 'yyyy-MM-dd hh24:mi:ss'), 'admin','报表1_设备报警','设备报表','MESClient.View.Reports.EquipmentAlarmInfo','1车间设备报警信息','202201061316');

3.4、结合指定条件的查询语句自动生成带条件的插入语句

注意:|| 表示拼接字符 

--获取到菜单权限表中菜单节点为【设备报表】条件下的所有人员都添加一个【1车间设备报警信息】的界面内容的批量插入语句生成
SELECT 'INSERT INTO MENUROLE (GUID, CREATETIME, CREATEEMPLOYEE, NODENAME, PARENTID, NAMESPACE, NODEMENUNAME, EMPLOYEE )
VALUES
	( '''||lower(rawtohex(sys_guid())) ||''', TO_DATE( ''2022-11-01 22:06:36'', ''yyyy-MM-dd hh24:mi:ss''), '''||CREATEEMPLOYEE||''',''报表1_设备报警'',''设备报表'',''MESClient.View.Reports.EquipmentAlarmInfo'',''1车间设备报警信息'','''||EMPLOYEE||''');' from MENUROLE WHERE NODENAME='设备报表';

该语句执行后生成的批量插入菜单内容语句如下:

复制这些生成的语句如下所示:

四、其他方式实现根据查询结果批量插入修改操作

Oracle中实现获取指定表名称批量修改表中的字段类型

https://www.jb51.net/database/29395916j.htm

总结

到此这篇关于Oracle获取GUID和生成批量插入语句实现的文章就介绍到这了,更多相关Oracle获取GUID和批量插入内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Oracle中的table()函数使用

    Oracle中的table()函数使用

    这篇文章主要介绍了Oracle中的table()函数的使用,提高查询效率,利用table()函数,可接收输入参数,然后将pl/sql 返回的结果集代替table,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2023-05-05
  • Oracle表关联更新几种方法小结

    Oracle表关联更新几种方法小结

    这篇文章主要介绍了Oracle表关联更新几种方法,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
    2024-05-05
  • oracle如何查询表中所有字段

    oracle如何查询表中所有字段

    这篇文章主要介绍了oracle如何查询表中所有字段问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • oracle数据库中如何处理clob字段方法介绍

    oracle数据库中如何处理clob字段方法介绍

    在知识库的建立的时候,用普通VARCHAR2存放文章是显然不够的,本文将详细将介绍oracle数据库中如何处理clob字段方法,需要的朋友可以参考下
    2012-11-11
  • 解决ORA-12154 TNS无法解析指定的连接标识符问题

    解决ORA-12154 TNS无法解析指定的连接标识符问题

    Oracle11g server 64bit服务器端安装在Windows Server2008 Enterprise上,安装Oracle11g client 32bit,通过SQL Plus以sysdba身份连接数据库,并且创建表空间、用户、授权成功,在连接数据库时出现问题,下面讲解ORA-12154无法解析指定的连接标识符问题,感兴趣的朋友一起看看
    2024-01-01
  • DBCA命令行搭建Oracle ADG的流程

    DBCA命令行搭建Oracle ADG的流程

    随着Oracle数据库版本的更迭,搭建备库的方式多种多样。今天介绍一种创建物理备库的新方式,从12C版本开始推出:使用 DBCA 命令行,需要的朋友参考下吧
    2021-06-06
  • OracleOraDb10g_home1TNSListener服务无法启动怎么解决

    OracleOraDb10g_home1TNSListener服务无法启动怎么解决

    这篇文章主要介绍了OracleOraDb10g_home1TNSListener服务无法启动的解决办法,有需要的朋友可以参考本教程的解决方法
    2016-05-05
  • 解决报错ora-32035的方法分析

    解决报错ora-32035的方法分析

    本篇文章是对解决报错ora-32035的方法进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • Oracle安装监听器错误的解决方法

    Oracle安装监听器错误的解决方法

    这篇文章给大家介绍了oracle安装监听器错误的解决方法,非常不错,具有参考借鉴价值,需要的朋友参考下吧
    2017-09-09
  • Navicat Premium连接Oracle数据库的2种方式

    Navicat Premium连接Oracle数据库的2种方式

    这篇文章主要给大家介绍了关于Navicat Premium连接Oracle数据库的2种方式,大家要使用Navicat Premium连接Oracle数据库,请按照以下步骤操作,需要的朋友可以参考下
    2024-01-01

最新评论