【发布时间】:2016-04-27 01:13:36
【问题描述】:
我想通过psql 命令行将参数传递给匿名PL/pgSQL 块,然后在条件中检查该参数。
SQL的相关部分在这里:
do $$
begin
if (':para' = 1) then
-- statements;
end if;
end $$
;
我这样称呼这个脚本:
psql -d dbname -v para=1 < script.sql
我收到错误:
ERROR: invalid input syntax for integer: ":para"
LINE 1: SELECT (':para' = 1)
^
QUERY: SELECT (':para' = 1)
CONTEXT: PL/pgSQL function inline_code_block line 3 at IF
我尝试使用 case/when 范式,但也没有用。
我猜psql 参数与 PL/pgSQL 不兼容?最终,我的目标是如果我将1 作为psql 参数传递,则运行单个delete 语句,如果我通过0,则不运行它。
【问题讨论】:
标签: postgresql plpgsql psql