1
  • 我有一个表测试,其中的列列为 x0,x1,x2,x3
  • 我有一个 UDA,它以两列作为参数并进行一些计算
  • 我正在尝试从我的 nzplsq 调用 UDA

  • 当我直接调用 UDA 时:

    create table newtable as select ncorrFactor(x0,x2) from test;
    

有用

但是当我尝试这样做时:

p varchar;
p := X || 0 || '';

create table newtable as select ncorrFactor(p,x2) from test;

它给了我这个错误:

ERROR:  pg_atoi: error in "x0": can't parse "x0"

我需要解决什么问题?

4

1 回答 1

1

假设第一个片段是用 NZPLSQL 编写的存储过程,p 被视为“X0”,您需要动态构建查询并在该查询上使用“立即执行”。

例如:

declare
query varchar;
begin
 query:='create table newtable as select ncorrFactor('|| 0 ||',x2) from test';
 execute immediate query;
end;
于 2013-10-28T08:47:08.137 回答