postgresql - 写入用于将数据插入空表但未插入数据的函数
问题描述
我正在尝试使用该函数将数据添加到空表中。当尝试使用“Raise info”命令显示输出时,它工作正常。当我尝试使用“插入”语句进行相同操作时,它不起作用。没有数据插入到表中。我的代码如下所示。
CREATE OR REPLACE FUNCTION public.fn_upd_invoice5(personid integer)
RETURNS integer
LANGUAGE 'plpgsql'
COST 100.0
VOLATILE NOT LEAKPROOF
AS $function$
DECLARE
Begin
/* none of the insert is working
INSERT INTO public.invoice(
pk_invoice_id, fk_person_id, invoice_no, invoice_date, gross_amount,
discount_amount, net_amount, invoice_desc, created_date_time, created_by,
modified_date_time, modified_by, active)
select 999999776, 5,1, to_date('08/11/2018','dd/mm/yyyy'), 9500, 0,
7283, 'Rent for the month of november
2018',to_date('08/11/2018','dd/mm/yyyy') , 1,
to_date('08/11/2018','dd/mm/yyyy'), 1, 'Y';
*/
-- PREPARE invoiceprep1 (int) AS
INSERT INTO tmp1 VALUES($1);
-- EXECUTE invoiceprep1 (returnsiid);
/*
PREPARE invoiceprep1 (int, int, varchar, date, int, int, int, varchar, date,
int, date, int, char) AS
INSERT INTO invoice VALUES($1, $2, $3,
$4,$5,$6,$7,$8,$9,$10,$11,$12,$13);
EXECUTE invoiceprep1
(returnsiid,returnspi,tmpinvoiceno,tmpstartdate,returnspr,returnsdis,returnspr,tempdesc,tmpstartdate,tmpuserId,tmpstartdate,tmpuserId,tmpActive);
*/
/*
INSERT INTO invoice(pk_invoice_id, fk_person_id, invoice_no, invoice_date, gross_amount, discount_amount, net_amount, invoice_desc, created_date_time, created_by, modified_date_time, modified_by, active)
VALUES(returnsiid,returnspi,returnsiid,tmpstartdate,returnspr,returnsdis,returnspr,tempdesc,tmpstartdate,1,tmpstartdate,1,'Y');
-- commit;
*/
-- update invoice set pk_invoice_id = 99999999;
EXCEPTION WHEN OTHERS THEN
RAISE;
return 1;
End;
$function$;
解决方案
任何错误都会导致包括你的 s 在内的整个事务INSERT
被回滚。这就是为什么你看不到效果。
RETURN
错误消息表明函数末尾没有语句,但函数被声明为返回除void
.
推荐阅读
- snowflake-cloud-data-platform - 在 Worksheet 查询结果中,为什么有些值以蓝色突出显示?
- c - “\'”在分割命令行时是什么意思?
- python - 从 EthGas Station 获取更新的 Gas Price 用于 python 应用程序
- delphi - Pascal 将变量分配给 RAD Studio XE 中的记录字段
- sql - SQL - 连接的求和问题
- python - python ply 语法错误,无法解析 d[0-9]+
- javascript - 在正文脚本功能完成之前,Chrome 扩展的 readyState 已完成
- scala - scala中的隐式类未按预期显示输出
- validation - TensorFlow Object Detection API - 验证损失增加而 mAP 也增加?
- python - 部分标签索引上的 Pandas MultiIndexing KeyError