1. 程式人生 > >oracle儲存過程----儲存過程執行簡單的增刪改查sql

oracle儲存過程----儲存過程執行簡單的增刪改查sql

儲存過程執行簡單的增刪改查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','女');

  上一篇的時候,執行儲存過程的方法,是兩邊加BEGINEND ,或者是前邊加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('女');

  上邊這個簡單的查詢是,返回結果一條記錄的情況,如果多條記錄,就需要迴圈,並且使用遊標了。我放到下一篇裡詳細再寫了。