我写了一个程序块,如:
DECLARE
recCount pls_integer:=0;
idCounter pls_integer:=0;
BEGIN
SELECT COUNT(value) into recCount FROM classname_ WHERE value='CONNECT_BLOG_INTERPRETER';
SELECT MAX(classnameid)+1 into idCounter FROM classname_;
IF recCount = 0 THEN
INSERT INTO classname_ (classnameid, value) values (idCounter, 'CONNECT_BLOG_INTERPRETER');
DBMS_OUTPUT.PUT_LINE('Inserting Record CONNECT_BLOG_INTERPRETER');
ELSE
DBMS_OUTPUT.PUT_LINE('Record CONNECT_BLOG_INTERPRETER already exists.');
END IF;
END;
此语句执行没有任何问题,但是如果我希望用它执行添加语句,如:
select * from emp;
这给我一个错误:
Error report:
ORA-06550: line 14, column 1:
PLS-00103: Encountered the symbol "SELECT"
06550. 00000 - "line %s, column %s:\n%s"
*Cause: Usually a PL/SQL compilation error.
*Action:
但是现在,我需要这个一起工作。让我们考虑DB-Patching的情况,其中多个语句一个接一个地执行。
请指导我。
答案 0 :(得分:0)
好的,我找到了解决方案。
它只是用/
分隔2个语句。这解决了这个问题。
现在,最终查询可以愉快地协同工作:
DECLARE
recCount pls_integer:=0;
idCounter pls_integer:=0;
BEGIN
SELECT COUNT(value) into recCount FROM classname_ WHERE value='CONNECT_BLOG_INTERPRETER';
SELECT MAX(classnameid)+1 into idCounter FROM classname_;
IF recCount = 0 THEN
INSERT INTO classname_ (classnameid, value) values (idCounter, 'CONNECT_BLOG_INTERPRETER');
DBMS_OUTPUT.PUT_LINE('Inserting Record CONNECT_BLOG_INTERPRETER');
ELSE
DBMS_OUTPUT.PUT_LINE('Record CONNECT_BLOG_INTERPRETER already exists.');
END IF;
END;
/
select * from emp;