Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 基本oracle更新语句_Sql_Oracle_Stored Procedures - Fatal编程技术网

Sql 基本oracle更新语句

Sql 基本oracle更新语句,sql,oracle,stored-procedures,Sql,Oracle,Stored Procedures,我正在使用oracle编写一个存储过程。我不熟悉oracle和存储过程,但我尝试做的事情似乎相当直截了当,但我遇到了麻烦 我有两个表BATCH\u ISA和BATCH\u TEMP 临时表是使用批处理ISA中的记录以及一些其他表创建的。在记录成功移动到BATCH\u TEMP表中后,我需要将BATCH\u ISA表中的标志从“Y”更新为“N” 我正在尝试更新BATCH_ISA中的所有记录,其中ISA_KEY字段位于两个表中,并将标志设置为“N” 我应该使用的基本update语句是什么 -- SE

我正在使用oracle编写一个存储过程。我不熟悉oracle和存储过程,但我尝试做的事情似乎相当直截了当,但我遇到了麻烦

我有两个表
BATCH\u ISA
BATCH\u TEMP

临时表是使用批处理ISA中的记录以及一些其他表创建的。在记录成功移动到
BATCH\u TEMP
表中后,我需要将
BATCH\u ISA
表中的标志从“Y”更新为“N”

我正在尝试更新
BATCH_ISA
中的所有记录,其中
ISA_KEY
字段位于两个表中,并将标志设置为“N”

我应该使用的基本update语句是什么

-- SET EVERYTHING TO 'N' FIRST:
UPDATE BATCH_ISA 
SET
    FLAG = 'N';

-- NOW UPDATE ONLY MATCHED ROWS TO 'Y':
UPDATE BATCH_ISA 
SET
    FLAG = 'Y' 
WHERE
    EXISTS (
        SELECT * FROM BATCH_TEMP
        WHERE BATCH_ISA.ISA_KEY = BATCH_TEMP.ISA_KEY
);

COMMIT;
我在第一次更新后删除了提交,但是如果有很多行,您可以使用它来节省重做日志开销