Oracle存储过程动态查询 - 如何添加额外的列

时间:2014-06-20 04:27:17

标签: sql oracle stored-procedures

我对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中添加一个额外的列,其中值为p1, the input parameter

我试过

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

但它不起作用。所以我该怎么做?感谢。

2 个答案:

答案 0 :(得分:0)

试试这个

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

答案 1 :(得分:-1)

尝试这样的事情: -

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

希望这可以帮到你。