sql - 无法使用 SQL 插入数字 - 删除整列/数字为空
问题描述
我试图通过一个循环在我的数据库的列中插入一个数字作为 ID,该循环通过一个序列设置新 ID。当我尝试插入它时,该行尚未创建,或者我的号码所在的字段为空。
这仅在我尝试插入序列当前编号的值时出现。可以插入任何其他号码。id 不是主键或外键,只是一个普通字段。我尝试以几种不同的方法将其插入,例如从字段中选择它或硬编码插入脚本中的值。如果使用 sid 的值对其进行硬编码,则不会插入任何行。
insert into SCHULP_BEZIEHUNG (R_ID, B_ID,S_ID,WDH,HOTEL)
values(
SEQ_SCHULP_ID.NEXTVAL
,l_selected(i)
,(select distinct SSID from SCHULP_SCHULUNGEN where SID = :P2_ID and SSID is not null)
,5
,'test');
我的预期结果是它在列 S_ID 中插入 SID 的数量
数据库图片:
解决方案
这是什么:
这仅在我尝试插入序列当前编号的值时出现。
相关?如果seq_schulp_id.nextval
which - 在您的尝试中 - 实际上是seq_schulp_id.currval
,那么是的,直到您首先获取它才会起作用,nextval
因为currval
尚未在当前会话中定义。
另一个反对意见:P2_ID
是 Apex 页面项目。如果您希望能够使用它,仅仅在屏幕上看到它是不够的——它必须进入会话状态。最简单的方法是先提交页面,然后运行将插入数据的进程。
另一方面,您说您硬编码了值(哪个值:P2_ID
??),但您仍然没有设法将值插入S_ID
列。这意味着整个查询:
select distinct SSID from SCHULP_SCHULUNGEN where SID = :P2_ID and SSID is not null
什么都没回来。
您发布了不完整的代码(什么是l_selected(i)
?);我不知道是否还有其他可能出错的地方。
推荐阅读
- python - 减少python应用程序中的DNS查询
- docker - gitlab CI/CD:缓存 docker 镜像构建
- javascript - Property does not exist on type String error
- javascript - Promise.all 产生“油门队列超过最大容量”
- discord - 如何使用 Discord API 监视公共消息?
- c# - 从同一个游戏对象上的另一个脚本访问变量
- java - 每次部署能够启动多个骆驼上下文
- javascript - D3层次函数不计算y属性
- html - css定位2行
- python - 使用 pandas 在 python 中建立索引后更改数据框的列名