oracle Dbeaver存儲(chǔ)過程語(yǔ)法詳解
可視化工具 Dbeaver
基本語(yǔ)法
增
CREATE OR REPLACE PROCEDURE addStudent IS BEGIN INSERT INTO student values(6,2,5,'小陳',22,0); END addStudent; call addStudent(); DROP procedure getStudent SELECT * FROM student
刪
CREATE OR REPLACE PROCEDURE delStudent IS BEGIN DELETE FROM student WHERE ID='6'; END delStudent; call delStudent(); DROP procedure delStudent SELECT * FROM student
改
CREATE OR REPLACE PROCEDURE updateStudent IS BEGIN UPDATE student SET AGE=25 WHERE ID='5'; END updateStudent; call updateStudent(); DROP procedure updateStudent SELECT * FROM student
單個(gè)查詢
CREATE OR REPLACE PROCEDURE getStudentCount (studentCount OUT NUMBER) IS BEGIN SELECT count(*) INTO studentCount FROM student; END getStudentCount; DECLARE studentCount NUMBER(38); BEGIN getStudentCount(studentCount); dbms_output.put_line(studentCount); END; DROP procedure getStudentCount SELECT * FROM student
多行查詢
--定義存儲(chǔ)過程,返回游標(biāo) CREATE OR REPLACE PROCEDURE getAllStudent(resule OUT sys_refcursor) IS --返回游標(biāo) BEGIN OPEN resule FOR SELECT * FROM student; END; --查詢存儲(chǔ)過程 DECLARE cur SYS_REFCURSOR; --游標(biāo) result_row student%rowtype; BEGIN getAllStudent(cur); LOOP FETCH cur INTO result_row ; EXIT WHEN cur%notfound; dbms_output.put_line('ID: '||result_row.ID||' TID: '||result_row.TID||'SID: '||result_row.SID||' SNAME: '||result_row.SNAME||' AGE: '||result_row.AGE||' SEX: '||result_row.SEX); END LOOP; CLOSE cur; END; DROP procedure getAllStudent SELECT * FROM student
springboot中使用
一個(gè)student表,一個(gè)teacher表
有這樣一個(gè)業(yè)務(wù),刪除教師,刪除其所有學(xué)生
CREATE OR REPLACE PROCEDURE delTeacher(myTID IN VARCHAR2) IS BEGIN DELETE FROM teacher WHERE TID=myTID; END delTeacher;
CREATE OR REPLACE PROCEDURE delStudentOfTeacher(myTID IN VARCHAR2) IS BEGIN DELETE FROM student WHERE TID=myTID; END delStudentOfTeacher;
<delete id="teacherDelete" parameterType="int"> {call delTeacher(#{arg0})} </delete>
<delete id="studentOfTeacherDelete" > {call delStudentOfTeacher(#{arg0}) } </delete>
測(cè)試
@Test void contextLoads() { teacherService.deleteTeacher(2); }
增
CREATE OR REPLACE PROCEDURE addTeacher(myTID IN varchar2,myTNAME IN varchar2,myAGE IN varchar2) IS BEGIN INSERT INTO teacher values(myTID,myTNAME,myAGE); END addTeacher;
<insert id="teacherAdd"> call addTeacher(#{arg0},#{arg1},#{arg2}) </insert>
改
CREATE OR REPLACE PROCEDURE updateTeacher(myTNAME IN varchar2,myAGE IN varchar2,myTID IN varchar2) IS BEGIN UPDATE teacher SET TNAME=myTNAME,AGE=myAGE WHERE TID=myTID; END updateTeacher;
<update id="teacherUpdate" > call updateTeacher(#{arg0},#{arg1},#{arg2}); </update>
學(xué)生增刪改
增
CREATE OR REPLACE PROCEDURE addStudent(myID IN varchar2,myTID IN varchar2,mySID IN varchar2,mySNAME IN varchar2,myAGE IN number,mySEX IN varchar2) IS BEGIN INSERT INTO student values(myID,myTID,mySID,mySNAME,myAGE,mySEX); END addStudent;
<insert id="studentAdd" > call addStudent(#{arg0},#{arg2},#{arg1},#{arg3},#{arg4},#{arg5}) </insert>
刪
CREATE OR REPLACE PROCEDURE delStudent(mySID IN varchar2) IS BEGIN DELETE FROM student WHERE SID=mySID; END delStudent;
<delete id="studentDelete" > call delStudent(#{arg0}) </delete>
改
CREATE OR REPLACE PROCEDURE updateStudent(mySID IN varchar2,mySNAME IN varchar2,myAGE IN NUMBER,mySEX IN varchar2) IS BEGIN UPDATE student SET SNAME=mySNAME,AGE=myAGE,SEX=mySEX WHERE SID=mySID; END updateStudent;
到此這篇關(guān)于oracle Dbeaver存儲(chǔ)過程的文章就介紹到這了,更多相關(guān)oracle Dbeaver存儲(chǔ)過程內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Oracle三種循環(huán)(For、While、Loop)實(shí)現(xiàn)九九乘法表
這篇文章主要為大家詳細(xì)介紹了Oracle三種循環(huán)For、While、Loop實(shí)現(xiàn)九九乘法表,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03Centos下Oracle11gR2安裝教程與自動(dòng)化配置腳本的方法
這篇文章主要介紹了Centos下Oracle11gR2安裝教程與自動(dòng)化配置腳本的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10Oracle在表中有數(shù)據(jù)的情況下修改字段類型或長(zhǎng)度的解決方法
這篇文章主要介紹了Oracle在表中有數(shù)據(jù)的情況下修改字段類型或長(zhǎng)度,修改其某個(gè)字段的類型或改變他的長(zhǎng)度,由于表中有數(shù)據(jù),不能直接修改,需要換個(gè)方法,接下來通過本文給大家介紹下解決方法,需要的朋友可以參考下2022-10-10Oracle視圖的創(chuàng)建、使用以及刪除操作方法大全
這篇文章主要給大家介紹了關(guān)于Oracle視圖的創(chuàng)建、使用以及刪除操作方法的相關(guān)資料,視圖是基于一個(gè)表或多個(gè)表或視圖的邏輯表,本身不包含數(shù)據(jù),通過它可以對(duì)表里面的數(shù)據(jù)進(jìn)行查詢和修改,需要的朋友可以參考下2023-12-12Oracle SQL性能優(yōu)化系列學(xué)習(xí)一
Oracle SQL性能優(yōu)化系列學(xué)習(xí)一...2007-03-03