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

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

  上一篇文章 oracle存儲過程—-變量的介紹及使用(PL/SQL)
  下邊是一個簡單的數據庫表,爲了方便,我都定義成了varchar 類型。
這裏寫圖片描述java

一、存儲過程執行增長sql

  首先寫一個增長的存儲過程:web

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;

  執行語句以下:sql

set serveroutput on;
call test_add_procedure(4,'2018-08-09','李四','20','女');

  上一篇的時候,執行存儲過程的方法,是兩邊加BEGINEND ,或者是前邊加execute ,如今又發現一個,前邊加call ,並且我還據說,call 能夠在java 等外部語言中調用的時候,用它去執行的存儲過程。
這裏寫圖片描述
  執行完以後,發現多了一條數據。數據庫

二、存儲過程執行修改、刪除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;

  執行語句以下:oracle

set serveroutput on;
call test_update_procedure(3,'趙六六');

  數據庫中的變化,即名稱從趙六 變爲趙六六 了。
這裏寫圖片描述
  刪除與修改是同樣的,那就不寫了。svg

三、存儲過程執行查詢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;

  上邊又新學習了兩個概念:spa

  • 第一個是as 以後的聲明變量。這個要求跟上一篇上的declare 定義變量是同樣的要求。
  • 第二個是into 賦值,即,當你相對查詢結果賦值就經過into 去賦值。而且into 能夠對多個參數賦值,中間用, 隔開便可。

  執行的語句以下:.net

set serveroutput on;
execute test_select2_procedure('女');

  上邊這個簡單的查詢是,返回結果一條記錄的狀況,若是多條記錄,就須要循環,而且使用遊標了。我放到下一篇裏詳細再寫了。

  下一篇是 oracle存儲過程—-遊標(cursor)的學習3d