如何在PL/SQL中声明变量?我的查询运行失败该如何解决
问题原因
你代码的核心问题是没有将COUNT查询的结果赋值给声明的my_variable变量,变量始终处于未赋值的空值状态,因此插入操作无法拿到预期值。
修正后代码(适配PostgreSQL plpgsql语法,匹配你使用的int4类型)
BEGIN DECLARE my_variable int4; -- 通过INTO关键字将查询结果赋值给变量 select count(*) into my_variable from documento d inner join remesa r on r.id = d.remesa_id where r.id=2; insert into endoso (endoso,endosos_por_dia) values(my_variable,2); END
补充说明
如果要适配其他SQL方言可以调整变量赋值逻辑:
- MySQL场景下可以写成
SET my_variable = (SELECT count(*) FROM ...); - SQL Server场景下可以写成
SELECT @my_variable = count(*) FROM ...;
内容的提问来源于stack exchange,提问作者melolo
相关产品推荐
相关产品推荐

