--建测试表--
CREATE TABLE testwhere
(
testid NUMBER,
testname VARCHAR(50)
);
CREATE TABLE testwhere_bak
(
testid NUMBER,
testname VARCHAR(50)
);
--插入测试数据--
INSERT INTO testwhere(testid,testname)
VALUES(1,'小明');
INSERT INTO testwhere(testid,testname)
VALUES(2,'小红');
INSERT INTO testwhere(testid,testname)
VALUES(3,'小东');
COMMIT;
--测试程序段--
DECLARE
FLAG CHAR(1) := 'Y';
V_NAME VARCHAR(50);
BEGIN
INSERT INTO TESTWHERE_BAK
SELECT T.TESTID, T.TESTNAME
FROM TESTWHERE T
WHERE 1 = 1
AND (CASE
WHEN FLAG = 'Y' THEN
T.TESTID
ELSE
NULL
END) < 3;
COMMIT;
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
SELECT * FROM TESTWHERE_BAK;
--查到两笔数据--
CREATE TABLE testwhere
(
testid NUMBER,
testname VARCHAR(50)
);
CREATE TABLE testwhere_bak
(
testid NUMBER,
testname VARCHAR(50)
);
--插入测试数据--
INSERT INTO testwhere(testid,testname)
VALUES(1,'小明');
INSERT INTO testwhere(testid,testname)
VALUES(2,'小红');
INSERT INTO testwhere(testid,testname)
VALUES(3,'小东');
COMMIT;
--测试程序段--
DECLARE
FLAG CHAR(1) := 'Y';
V_NAME VARCHAR(50);
BEGIN
INSERT INTO TESTWHERE_BAK
SELECT T.TESTID, T.TESTNAME
FROM TESTWHERE T
WHERE 1 = 1
AND (CASE
WHEN FLAG = 'Y' THEN
T.TESTID
ELSE
NULL
END) < 3;
COMMIT;
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
SELECT * FROM TESTWHERE_BAK;
--查到两笔数据--