我正在运行 Oracle 10g。我正在编写将在 SQL*Plus 中执行的脚本(基于创建的数据库的增量脚本)。需要修复一个错误。
我需要知道表中是否存在一行,如果不存在,则插入它。所以我开始:
BEGIN
DECLARE
COL_EXIST NUMBER(10);
BEGIN
-- Reset ET_SEVERITY_LEVEL
UPDATE ET_SEVERITY_LEVEL
SET ID_SEVERITY_LEVEL = 5
WHERE CODE='FATAL';
UPDATE ET_SEVERITY_LEVEL
SET ID_SEVERITY_LEVEL = 4
WHERE CODE='ERROR';
UPDATE ET_SEVERITY_LEVEL
SET ID_SEVERITY_LEVEL = 3
WHERE CODE='WARNING';
UPDATE ET_SEVERITY_LEVEL
SET ID_SEVERITY_LEVEL = 2
WHERE CODE='INFO';
-- Insert ET_SEVERITY_LEVEL register DEBUG
SELECT COUNT(*) INTO COL_EXIST
FROM ET_SEVERITY_LEVEL
WHERE CODE like 'DEBUG';
IF COL_EXIST = 0 THEN
EXECUTE IMMEDIATE 'INSERT INTO ET_SEVERITY_LEVEL(ID_SEVERITY_LEVEL, CODE, DESCRIPTION) VALUES (1, "DEBUG", "Debugging")';
END IF;
END; …Run Code Online (Sandbox Code Playgroud)