【发布时间】:2019-08-12 13:44:05
【问题描述】:
我已经编写了在选择查询中调用参数的过程,但它不起作用。当我打印该参数时,它工作正常,但使用选择查询时,它不起作用。
我已经使用 Aginity 工作台 for redshift 来执行存储过程。
CREATE or replace PROCEDURE get_tbl_name(IN tablename varchar, IN columnname VARCHAR, IN mindate varchar) AS $$
Declare
evalmindate varchar;
BEGIN
Raise info 'tablename = %, columnname = %, mindate = %', tablename,columnname,mindate;
if mindate is null then
select min(columnname) into evalmindate from tablename;
else
evalmindate=mindate;
end if;
END;
$$ LANGUAGE plpgsql;
Calling Proc:
call get_tbl_name('test_bq', 'date',NULL);
Output:
tablename = test_bq, columnname = date, mindate = <NULL>
Error Message
42601: syntax error at or near "$2"
从输出中,我们可以在打印时看到过程中的参数,但我无法将参数传递给选择查询,它会引发错误。请帮我解决这个问题。
【问题讨论】:
-
以
select min(columnname) into evalmindate from tablename;开头是不正确的,您没有使用变量,实际上您是在尝试在名为tablename的表中查询columnname -
@mdem7 即使我将参数传递给变量并将变量传递给选择查询,它也不起作用。得到同样的错误。
标签: sql stored-procedures amazon-redshift