Динамический запрос хранимых процедур Oracle — как добавить дополнительный столбец

#sql #oracle #stored-procedures

#sql #Oracle #хранимые процедуры

Вопрос:

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

 create or replace 
PROCEDURE mySP
(
    p1 IN VARCHAR2
  , p2 IN VARCHAR2
  , p3 IN VARCHAR2
  , CUR_S OUT SYS_REFCURSOR
)
AS
...
... 
 

и он продолжает динамически строиться с множеством условий, вот где он строит запрос:

  my_query := 
  'SELECT '||
     column1_name || 
     column2_name || 
  FROM
     ...
 

все запросы в порядке, все, что я хочу сделать, это добавить дополнительный столбец в select statement where значение p1, the input parameter

Я пытался

  my_query := 
      'SELECT p1 as newColumnName '||
         column1_name || 
         column2_name || 
      FROM
 

Но это не работает. итак, что мне делать? Спасибо.

Комментарии:

1. Что является исключением?

2. используйте 'SELECT ' || p1 || ' as newColumnName ' || .

Ответ №1:

Попробуйте это

 my_query := 
      'SELECT ''' ||
         p1 || ''' as newcolumn_name, ' ||
         column1_name || 
         column2_name || 
      FROM
 

Ответ №2:

Попробуйте что-то вроде этого:-

 'SELECT' || P1 as newColumnName || column1_name || column2_name || 
 FROM...
 

Надеюсь, это может вам помочь.