无法使用 SQL 插入数字 - 整列已删除/数字为空

Cannot insert a number using SQL - whole column is removed / number is null

我正在尝试通过循环将数字作为 ID 插入数据库的列中,该循环通过序列设置新 ID。当我尝试插入它时,该行尚未创建或我的号码所在的字段为空。

这仅在我尝试插入序列当前编号的值时出现。可以插入任何其他数字。 id 不是主键或外键,只是一个普通字段。我尝试用几种不同的方法插入它,例如从字段 select 插入它或对插入脚本中的值进行硬编码。如果使用 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 的编号

数据库图像:

这是什么:

This only appears when I'm trying to insert the value of the current number of the sequence.

与什么有关?如果 seq_schulp_id.nextval 在您的尝试中实际上是 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) 是什么?);我不知道是否还有其他问题。