【发布时间】:2013-12-24 15:09:30
【问题描述】:
我在 PostgreSQL 中编写了一个带有参数的函数,我想将参数值插入到数据库表中。该脚本执行良好,但当我调用该函数时,我收到一条错误消息:
CREATE OR REPLACE FUNCTION sp_load_purchase_order(x int)
RETURNS void AS
$$
declare var_val char;
begin
var_val='p'+i;
insert into purchase_order(
create_uid,
create_date,
write_date,
write_uid,
journal_id,
date_order,
partner_id,
amount_untaxed,
location_id,
company_id,
amount_tax,
state,
pricelist_id,
warehouse_id,
payment_term_id,
amount_total,
name,
invoice_method,
shipped,
minimum_planned_date
)
values(1,now(),now(),1,13,now(),17,1.00,12,1,0.00,'draft',2,1,3,1.00
,var_val,'order','f' ,now()
);
end;
$$
LANGUAGE 'plpgsql';
错误信息:
ERROR: column "i" does not exist
LINE 1: SELECT 'p'+i
^
QUERY: SELECT 'p'+i
CONTEXT: PL/pgSQL function sp_load_purchase_order(integer) line 5 at assignment
********** Error **********
ERROR: column "i" does not exist
SQL state: 42703
Context: PL/pgSQL function sp_load_purchase_order(integer) line 5 at assignment
请帮我指出问题。
【问题讨论】:
标签: function postgresql plpgsql sql-insert