我正在尝试通过一个循环将一个数字作为ID插入数据库的列中,该循环通过Sequence设置新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的数量
数据库图像:
答案 0 :(得分:0)
这是什么:
与仅当我尝试插入序列的当前编号的值时才会出现。
有关?如果实际上尝试的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)
是什么?);我无法判断是否还有其他错误。