Oracle獲取GUID和生成批量插入語句實現(xiàn)方法
一、業(yè)務(wù)需要
在進行系統(tǒng)的日常維護過程中,涉及到指定條件的人員或內(nèi)容批量插入內(nèi)容,此時又希望能夠快速根據(jù)指定條件自動生成對應(yīng)的插入SQL語句,而不用編寫代碼;比如:我們需要給菜單權(quán)限表中指定菜單節(jié)點為【設(shè)備報表】的所有人員都添加(名為【設(shè)備報警】的菜單)內(nèi)容。
二、實現(xiàn)思路
①Oracle獲取GUID字符串;
②編寫指定條件的查詢語句;
③編寫基礎(chǔ)的插入語句;
④結(jié)合指定條件的查詢語句自動生成帶條件的插入語句
三、實現(xiàn)方法
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】表中菜單節(jié)點為【設(shè)備報表】條件下的所有人員SQL語句: SELECT EMPLOYEE from MENUROLE WHERE NODENAME='設(shè)備報表'
3.3、編寫基礎(chǔ)的插入語句
--插入語句的語法 INSERT INTO 表名稱 ( 字段1, 字段2, 字段3,... ) VALUES ('內(nèi)容1','內(nèi)容2','內(nèi)容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_設(shè)備報警','設(shè)備報表','MESClient.View.Reports.EquipmentAlarmInfo','1車間設(shè)備報警信息','202201061316');
3.4、結(jié)合指定條件的查詢語句自動生成帶條件的插入語句
注意:|| 表示拼接字符
--獲取到菜單權(quán)限表中菜單節(jié)點為【設(shè)備報表】條件下的所有人員都添加一個【1車間設(shè)備報警信息】的界面內(nèi)容的批量插入語句生成 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_設(shè)備報警'',''設(shè)備報表'',''MESClient.View.Reports.EquipmentAlarmInfo'',''1車間設(shè)備報警信息'','''||EMPLOYEE||''');' from MENUROLE WHERE NODENAME='設(shè)備報表';
該語句執(zhí)行后生成的批量插入菜單內(nèi)容語句如下:
復(fù)制這些生成的語句如下所示:
四、其他方式實現(xiàn)根據(jù)查詢結(jié)果批量插入修改操作
Oracle中實現(xiàn)獲取指定表名稱批量修改表中的字段類型
http://www.dbjr.com.cn/database/29395916j.htm
總結(jié)
到此這篇關(guān)于Oracle獲取GUID和生成批量插入語句實現(xiàn)的文章就介紹到這了,更多相關(guān)Oracle獲取GUID和批量插入內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Oracle表關(guān)聯(lián)更新幾種方法小結(jié)
這篇文章主要介紹了Oracle表關(guān)聯(lián)更新幾種方法,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,對大家的學習或工作有一定的幫助,需要的朋友可以參考下2024-05-05oracle數(shù)據(jù)庫中如何處理clob字段方法介紹
在知識庫的建立的時候,用普通VARCHAR2存放文章是顯然不夠的,本文將詳細將介紹oracle數(shù)據(jù)庫中如何處理clob字段方法,需要的朋友可以參考下2012-11-11OracleOraDb10g_home1TNSListener服務(wù)無法啟動怎么解決
這篇文章主要介紹了OracleOraDb10g_home1TNSListener服務(wù)無法啟動的解決辦法,有需要的朋友可以參考本教程的解決方法2016-05-05Navicat?Premium連接Oracle數(shù)據(jù)庫的2種方式
這篇文章主要給大家介紹了關(guān)于Navicat?Premium連接Oracle數(shù)據(jù)庫的2種方式,大家要使用Navicat Premium連接Oracle數(shù)據(jù)庫,請按照以下步驟操作,需要的朋友可以參考下2024-01-01