Как автоматизировать предоставление отчета в SSRS

Поскольку все, что вам нужно, это получить элементы с общими field_id, вы можете использовать функцию TABLE и соединения.

DECLARE

     l_field_value   TIMESTAMP := systimestamp;
     s1_cf           custom_fields_table := custom_fields_table(
     custom_fields_struct(1,l_field_value),custom_fields_struct
     (2,l_field_value) );
     s2_cf           custom_fields_table := custom_fields_table(
     custom_fields_struct(2,l_field_value),custom_fields_struct
     (3,l_field_value) );
     r_cf  custom_fields_table;
BEGIN

SELECT custom_fields_struct(s1.field_id,s1.field_value) --should convert it to object
  BULK COLLECT INTO r_cf --load directly into your OUT collection
FROM   TABLE ( s1_cf ) s1
  JOIN TABLE ( s2_cf ) s2 
ON s1.field_id = s2.field_id; -- This filters the common elements

for i in r_cf.first..r_cf.last 
LOOP
  dbms_output.put_line(r_cf(i).field_id||','||r_cf(i).field_value);
  END LOOP;
END;
/

2,18-01-19 06:27:55.607 PM


PL/SQL procedure successfully completed.

EXISTS и и MEMBER OF могут быть использованы, но я предполагаю, что вы хотите сделать сравнение столбца к столбцу, а не поэлементно. Итак, единственный другой вариант, о котором я могу подумать, - это запустить цикл for для обеих коллекций и сравнить field_id одного с другим, чтобы получить индекс поля. Но, учитывая ваши требования, вышеупомянутый вариант должен быть достаточно хорошим.

Ваша процедура будет выглядеть следующим образом:

CREATE OR REPLACE PROCEDURE merge_custom_fields (
     s1_cf   IN custom_fields_table,
     s2_cf   IN custom_fields_table,
     r_cf    OUT custom_fields_table
)
     AS
BEGIN
     SELECT custom_fields_struct(s1.field_id,s1.field_value) BULK COLLECT
     INTO r_cf
       FROM TABLE ( s1_cf ) s1
     JOIN   TABLE ( s2_cf ) s2 ON s1.field_id = s2.field_id;
END merge_custom_fields;
/

Демо

16
задан Eric Ness 10 November 2008 в 16:15
поделиться

1 ответ

Когда Вы просматриваете к отчету в Вашем сайте услуг по созданию отчетов, необходимо видеть вкладку для Подписок. Это - то, где Вы указали бы получателей и способы доставки для автоматизированной доставки.

Вот страница, которая описывает процесс.

22
ответ дан 30 November 2019 в 21:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: