oracle儲存過程----儲存過程執行簡單的增刪改查sql
阿新 • • 發佈:2019-02-06
儲存過程執行簡單的增刪改查sql
1、儲存過程執行增加sql
首先寫一個增加的儲存過程:
create or replace procedure test_add_procedure
(id varchar,createtime varchar,name varchar,
age varchar,sex varchar)
AS
BEGIN
insert into ly_ds values(id,createtime,name,age,sex);
commit; --別忘了加提交
end;
執行語句如下:
set serveroutput on;
call test_add_procedure(4 ,'2018-08-09','李四','20','女');
上一篇的時候,執行儲存過程的方法,是兩邊加BEGIN
、END
,或者是前邊加execute
,現在又發現一個,前邊加call
,而且我還聽說,call
可以在java
等外部語言中呼叫的時候,用它去執行的儲存過程。
執行完之後,發現多了一條資料。
2、儲存過程執行修改、刪除sql
create or replace procedure test_update_procedure
(dsId varchar,mc varchar)
AS
BEGIN
update ly_ds set ly_mc = mc where id = dsId ;
commit; --別忘了加提交
end;
執行語句如下:
set serveroutput on;
call test_update_procedure(3,'趙六六');
資料庫中的變化,即名稱從趙六
變為趙六六
了。
刪除與修改是一樣的,那就不寫了。
3、儲存過程執行查詢sql
查詢的儲存過程,稍微麻煩點。
比如按照某個條件查詢總條數。可以這麼寫:
create or replace procedure test_select2_procedure
(sex varchar)
AS
countNum number (10); --別忘了寫上具體的長度,並且以分號結束
maxId number(10); --別忘了寫上具體的長度,並且以分號結束
BEGIN
select count(*),max(id) into countNum,maxId from ly_ds where LY_NB=sex;
dbms_output.put_line(countNum);
dbms_output.put_line(maxId);
END;
上邊又新學習了兩個概念:
- 第一個是
as
之後的宣告變數。這個要求跟上一篇上的declare
定義變數是一樣的要求。 - 第二個是
into
賦值,即,當你相對查詢結果賦值就通過into
去賦值。並且into
可以對多個引數賦值,中間用,
隔開即可。
執行的語句如下:
set serveroutput on;
execute test_select2_procedure('女');