sql - 如何从两个表创建插入语句脚本
问题描述
我正在使用 oracle SQL,我需要向多个用户插入数据,但我需要先创建插入语句并仅替换第一个插入语句中的用户 ID,如下所示:
1-这是插入语句:
INSERT INTO SYS_USER_FUNCTIONS ( USER_ID, FUNCTION_ID_PARENT, FUNCTION_ID_CHILD, A, U,
D, V, R, CREATING_USER, CREATING_DATE, CREATING_TIME, LAST_UPDATE_DATE, LAST_UPDATE_COUNT,
LAST_UPDATE_USER, LAST_UPDATE_TRANSACTION, S )
VALUES ( 'JAD', 'DOCMDOC', 'OPDA100', 1, 1, 2, 1, 2, 'ZYAD', 20210112, 1515, 20210112
, 1, 'ZYAD', 'I', 2);
COMMIT;
2-我需要生成插入语句并仅替换`
USER_ID
并从下表中选择 USER_ID
SELECT USER_ID
FROM USERS
WHERE USER_FUNCTION = 'DOCMDOC'
我怎样才能做到这一点 ?
解决方案
您可以对多个用户使用简单的 for-loop plsql 块并修改您想要的内容:
begin
for i in (SELECT USER_ID FROM USERS WHERE USER_FUNCTION = 'DOCMDOC')
loop
INSERT INTO SYS_USER_FUNCTIONS ( USER_ID, FUNCTION_ID_PARENT, FUNCTION_ID_CHILD, A, U,
D, V, R, CREATING_USER, CREATING_DATE, CREATING_TIME, LAST_UPDATE_DATE, LAST_UPDATE_COUNT,
LAST_UPDATE_USER, LAST_UPDATE_TRANSACTION, S )
VALUES ( i.USER_ID, 'DOCMDOC', 'OPDA100', 1, 1, 2, 1, 2, 'ZYAD', 20210112, 1515, 20210112
, 1, 'ZYAD', 'I', 2);
end loop;
end;
或插入...选择仅适用于这种情况。
INSERT INTO SYS_USER_FUNCTIONS ( USER_ID, FUNCTION_ID_PARENT, FUNCTION_ID_CHILD, A, U, D, V, R, CREATING_USER, CREATING_DATE, CREATING_TIME, LAST_UPDATE_DATE, LAST_UPDATE_COUNT,LAST_UPDATE_USER, LAST_UPDATE_TRANSACTION, S )
SELECT USER_ID, 'DOCMDOC', 'OPDA100', 1, 1, 2, 1, 2, 'ZYAD', 20210112, 1515, 20210112, 1, 'ZYAD', 'I', 2 FROM USERS WHERE USER_FUNCTION = 'DOCMDOC';
推荐阅读
- amazon-web-services - Amazon.Transfer.Model.InvalidRequestException:无法为逻辑 HomeDirectoryType 设置 HomeDirectory
- typescript - 使用 Deno 连接到 Redis 数据库
- jquery - 全局变量值没有超出 ajax 方法
- javascript - javascript过滤字符串数组,匹配不区分大小写的子字符串
- powershell - PowerShell Where-Object 查询括号之间的空或 NULL 内容
- spring - 处理对 Spring Rest Controller 的同时 HTTP 调用
- python - 从嵌套列表中的子列表中提取第一个和最后一个元素
- asp.net-mvc - 剑道编辑器模板可见条件
- javascript - 在渲染中获取数据,但是在显示时,什么都没有出现
- html - 如何在页面内添加一个正方形(大约 80% 的宽度和高度以及彩色)?