oracle Dbeaver存儲(chǔ)過(guò)程語(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ǔ)過(guò)程,返回游標(biāo)
CREATE OR REPLACE PROCEDURE getAllStudent(resule OUT sys_refcursor) IS --返回游標(biāo)
BEGIN
OPEN resule FOR SELECT * FROM student;
END;
--查詢存儲(chǔ)過(guò)程
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ò)程的文章就介紹到這了,更多相關(guān)oracle Dbeaver存儲(chǔ)過(guò)程內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
oracle數(shù)據(jù)庫(kù)鎖表的原因及解決方法
出現(xiàn)鎖表的情況很多種,但是大部分情況都是更新表,然后并沒(méi)有提交,導(dǎo)致數(shù)據(jù)庫(kù)的表被鎖的情況,處理方式也比較簡(jiǎn)單,本文小編給大家介紹了oracle數(shù)據(jù)庫(kù)鎖表的原因及解決方法,需要的朋友可以參考下2023-11-11
oracle查詢鎖表及解鎖,修改表字段名與復(fù)制表結(jié)構(gòu)和數(shù)據(jù)的方法
今天小編就為大家分享一篇關(guān)于oracle查詢鎖表及解鎖,修改表字段名與復(fù)制表結(jié)構(gòu)和數(shù)據(jù)的方法,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-12-12
oracle 數(shù)據(jù)庫(kù)閃回相關(guān)語(yǔ)句介紹
本文將詳細(xì)介紹oracle 數(shù)據(jù)庫(kù)閃回相關(guān)語(yǔ)句,需要了解跟多的朋友可以參考下2012-11-11
Oracle數(shù)據(jù)庫(kù)丟失表排查思路實(shí)戰(zhàn)記錄
相信大家無(wú)論是開(kāi)發(fā)、測(cè)試還是運(yùn)維過(guò)程中,都可能會(huì)因?yàn)檎`操作、連錯(cuò)數(shù)據(jù)庫(kù)、用錯(cuò)用戶、語(yǔ)句條件有誤等原因,導(dǎo)致錯(cuò)誤刪除、錯(cuò)誤更新等問(wèn)題,這篇文章主要給大家介紹了關(guān)于Oracle數(shù)據(jù)庫(kù)丟失表排查思路的相關(guān)資料,需要的朋友可以參考下2022-06-06
Oracle 閃回技術(shù)詳細(xì)介紹及總結(jié)
這篇文章主要介紹了Oracle 閃回技術(shù)詳細(xì)介紹的相關(guān)資料,這里提供了4種閃回技術(shù),需要的朋友可以參考下2016-11-11
Plsql Developer連接Oracle時(shí)出現(xiàn)Could not initialize oci.dll解決方案
這篇文章主要介紹了Plsql Developer連接Oracle時(shí)出現(xiàn)Could not initialize oci.dll解決方案,需要的朋友可以參考下2017-03-03
ORACLE實(shí)現(xiàn)自定義序列號(hào)生成的方法
這篇文章主要為大家詳細(xì)介紹了ORACLE實(shí)現(xiàn)自定義序列號(hào)生成的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-10-10
誤刪除$ORACLE_HOME/dbs下的參數(shù)文件、密碼文件快速重建的方法
這篇文章主要介紹了誤刪除$ORACLE_HOME/dbs下的參數(shù)文件、密碼文件快速重建的方法,需要的朋友可以參考下2017-04-04
Oracle DECODE函數(shù)語(yǔ)法使用介紹
DECODE是Oracle公司獨(dú)家提供的功,該函數(shù)功能強(qiáng)大,下文對(duì)DECODE函數(shù)的語(yǔ)法作了詳盡的闡述,供您參考學(xué)習(xí)2013-05-05

