简体   繁体   中英

How to create a stored procedure that will update a table

I am trying to create a stored procedure that will update the project status from 'D' to 'C'. As you can see below I do not know what I am doing.

Please do not suggest using a trigger as that does not pertain to the question.

create or replace procedure selectallprojects is
begin
    update projects
        set project_status = 'C'
            where project_status = 'D';
    
    select *
    from projects
    where project_status = 'D'
end;

begin
    selectallproject
end;

These are the errors I get when I run this code block:

Errors: PROCEDURE SELECTALLPROJECTS
Line/Col: 7/5 PL/SQL: SQL Statement ignored
Line/Col: 9/33 PL/SQL: ORA-00933: SQL command not properly ended
Line/Col: 14/1 PLS-00103: Encountered the symbol "END" when expecting one of the following:

:=. ( @ %;

What am I doing wrong and how can I fix this?

You can find the script file I am using here .

The UPDATE is fine, the SELECT is wrong. The following code should work:

create or replace procedure selectallprojects is
begin
    update projects
        set project_status = 'C'
            where project_status = 'D';
end;
/

begin
  selectallprojects;
end;
/

select *
  from projects
 where project_status = 'D';

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM