小编bar*_*acı的帖子

Oracle创建函数

我尝试创建一个 Oracle 函数,其中表名、列名和字符串是动态参数:

CREATE OR REPLACE FUNCTION MYSCHEMA.myFunctionName( 
  tableName in nvarchar2,
  columnName in nvarchar2,
  whereStr in nvarchar2)
RETURN nvarchar2

IS nActive nvarchar2(2000);

BEGIN
  declare 
  querystr nvarchar2(2000) ;
  result nvarchar2(2000);
  begin
    querystr :='
    select  listagg('+columnName+','+','+') within group (order by '+columnName+')
    from '+tableName+' where  1 = 1 '+whereStr+';';
    EXECUTE IMMEDIATE querystr
    INTO result;
       nActive := result;
          RETURN ( nActive );
  end;
END ;
/
Run Code Online (Sandbox Code Playgroud)

但它给了我错误“警告:已编译但有编译错误”。

我究竟做错了什么?

oracle plsql dynamic-sql

3
推荐指数
1
解决办法
3577
查看次数

标签 统计

dynamic-sql ×1

oracle ×1

plsql ×1