PLSQL过程与forloop并包含检查

时间:2019-01-14 15:10:39

标签: oracle plsql procedure

我想做的是:实现2个信号到结果信号的自定义合并过程。

以rs = s2开头。将SIGNAL2中不存在的所有自定义字段从SIGNAL1复制到RESULTSIGNAL(即,不存在具有相同ID的自定义字段)。

"custom_fields"中的

SIGNAL_STRUCT是一种custom_fields_table

我的过程标识看起来像这样

 PROCEDURE signal_merge(s1 IN SIGNAL_STRUCT, s2 IN SIGNAL_STRUCT, rs OUT SIGNAL_STRUCT)

我实现此目标的伪代码是:

for custom_field : s1.custom_fields
    if(custom_field.cf_id  NOT CONTAINS IN s2.custom_fields)
       rs.custom_fields  ADD s1.custom_field

我找不到适合它的语法。有人可以告诉我如何实现吗?

更新:根据评论的要求

create or replace TYPE SIGNAL_STRUCT AS OBJECT
id                        NUMBER (38),
emission_type             NUMBER(19),
custom_fields             custom_fields_table


create or replace TYPE custom_fields_struct FORCE
AS
OBJECT
(
field_id VARCHAR2 (128 CHAR),
field_value NUMBER (1)) FINAL ;

create or replace TYPE custom_fields_table FORCE
IS
  TABLE OF wf_bool_custom_fields_struct ;

更新:示例 S1具有自定义字段

  • “ f1”
  • “ f2”

S2具有自定义字段

  • “ f3”
  • “ f4”

第一步:rs = s2 第二步:运行合并

结果:合并后,结果信号(rs)的自定义字段表必须具有

  • “ f1”
  • “ f2”
  • “ f3”
  • “ f4”

0 个答案:

没有答案