【发布时间】:2019-05-22 08:37:57
【问题描述】:
我正在创建一个变量并检查该变量是否匹配,然后更新一个表,但它不工作
尝试替换插入而不是更新,但更新符合我的要求
CREATE OR REPLACE PROCEDURE "SP1" AS
V1 INT;
V2 INT;
BEGIN
SELECT SUM(SALES)
INTO V1
FROM "TABLE_A";
SELECT SUM(SALES)
INTO V2
FROM "TABLE_B";
IF V1=V2
THEN
UPDATE "TABLE_C"
SET "COLUMN_1"=1;
END IF
END "SP1";
在上面的代码中,“TABLE_C”的“COLUMN_1”应该在没有发生的情况下设置为1
【问题讨论】:
-
除了
END IF之后缺少分号(如果我是你,我会删除所有双引号),代码看起来不错。TABLE_A和TABLE_B是否包含行?这些总和相等吗?必须,否则TABLE_C不会更新。示例数据可能会有所帮助。 -
是的,两个表都是一样的,我也使用分号。出于理解目的,我使用 " 来表示虚拟对象。同样使用上述标准,我没有得到输出
-
您正在运行该程序吗?或者只是期望它通过编译过程来工作?
-
是的,我运行了 proc 和“TABLE_C”的“COLUMN_1”,预计会有 1 个帖子运行 store proc 给我 null
-
你是怎么执行的;您是在同一会话或不同会话中执行后检查表(可能不会显示更改,因为您尚未提交更改)?
标签: sql oracle plsql oracle-sqldeveloper plsqldeveloper