Как начать сборку с помощью фразы в Jenkins Pipelines

ИСПОЛЬЗОВАТЬ ДИНАМИЧЕСКИЙ ЗАПРОС

Тестовый код ниже


--  DDL for Table TMP_TEST
--------------------------------------------------------

  CREATE TABLE "TMP_TEST" 
   (    "NAME" VARCHAR2(20), 
    "APP" VARCHAR2(20)
   );
/
SET DEFINE OFF;
Insert into TMP_TEST (NAME,APP) values ('suhaib','2');
Insert into TMP_TEST (NAME,APP) values ('suhaib','1');
Insert into TMP_TEST (NAME,APP) values ('shahzad','3');
Insert into TMP_TEST (NAME,APP) values ('shahzad','2');
Insert into TMP_TEST (NAME,APP) values ('shahzad','5');
Insert into TMP_TEST (NAME,APP) values ('tariq','1');
Insert into TMP_TEST (NAME,APP) values ('tariq','2');
Insert into TMP_TEST (NAME,APP) values ('tariq','6');
Insert into TMP_TEST (NAME,APP) values ('tariq','4');
/
  CREATE TABLE "TMP_TESTAPP" 
   (    "APP" VARCHAR2(20)
   );

SET DEFINE OFF;
Insert into TMP_TESTAPP (APP) values ('1');
Insert into TMP_TESTAPP (APP) values ('2');
Insert into TMP_TESTAPP (APP) values ('3');
Insert into TMP_TESTAPP (APP) values ('4');
Insert into TMP_TESTAPP (APP) values ('5');
Insert into TMP_TESTAPP (APP) values ('6');
/
create or replace PROCEDURE temp_test(
  pcursor out sys_refcursor,
    PRESULT                   OUT VARCHAR2
    )
AS
V_VALUES VARCHAR2(4000);
V_QUERY VARCHAR2(4000);
BEGIN
 PRESULT := 'Nothing';

-- concating activities name using comma, replace "'" with "''" because we will use it in dynamic query so "'" can effect query.
  SELECT DISTINCT 
         LISTAGG('''' || REPLACE(APP,'''','''''') || '''',',')
         WITHIN GROUP (ORDER BY APP) AS temp_in_statement 
    INTO V_VALUES
    FROM (SELECT DISTINCT APP 
            FROM TMP_TESTAPP);

-- designing dynamic query  

  V_QUERY := 'select * 
                from (  select NAME,APP 
                          from TMP_TEST   )   
               pivot (count(*) for APP in 
                     (' ||V_VALUES|| '))  
           order  by NAME' ;

    OPEN PCURSOR
     FOR V_QUERY;


 PRESULT := 'Success';

Exception
WHEN OTHERS THEN
 PRESULT := SQLcode || ' - ' || SQLERRM;
END temp_test;
1
задан biruk1230 18 January 2019 в 11:24
поделиться

1 ответ

Вы можете поместить условие в начало скрипта сборки, чтобы проверить наличие сообщения. Вы можете получить доступ к наборам изменений, используя currentBuild.ChangeSets. Последний набор изменений находится в конце массива. Затем вам нужно получить доступ к последнему элементу этого набора изменений. Наконец, вы можете получить доступ к сообщению через свойство message. Затем вы можете искать по вашему ключевому слову.

Я делаю наоборот (не вызывая сборку с помощью фразы), но никогда не пытался выполнить пул-запросы.

Другая идея состоит в том, чтобы использовать свойство «игнорировать сборки с определенным сообщением» и установить это сообщение как регулярное выражение с забегом вперед, которое принимает все, кроме ключевого слова. Я действительно не помню синтаксис: /

0
ответ дан Yamaç Kurtuluş 18 January 2019 в 11:24
поделиться
Другие вопросы по тегам:

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