ORACLE儲存過程從零到入門
1.以下所說為oracle儲存過程!
2.注重儲存過程的編寫、除錯、和運用的流程,不注重太多語法的介紹!
3.只要你懂sql語句就可以繼續往下看了!
4.一個儲存過程不是屬於哪個table的,而是屬於一個使用者的(在oracle來說)。
5.現在可以編寫儲存過程了,如果你是一個oralce新手應該也知道plsql這個東西。
在plsql裡新建一個 sql window,在這裡寫儲存過程的語句。
5.一個最簡單的儲存過程
create or replace procedure test is
begin
null;
end test;
/
解釋:create 建立;
replace 如果存在則替換;
procedure 告訴資料庫你要建立或替換的是一個儲存過程;
test 你建立的儲存過程的名字;
begin 固定的,表示要開始寫了;
null oracle規定begin和end之間至少有一句話;
end test 表示儲存過程結束,test是對應上面你建立的儲存過程名字,注意該寫分號的地方要寫分號;
/ 這個是可以不寫的,但還是寫的好,下面會告訴你它是幹啥用的。
6.恭喜你,你已經會寫儲存過程了。那麼這個儲存過程該怎麼生效呢?
好,請選中上面5行語句,按執行(F8);好了,在左邊objects視窗下有個Procedures資料夾,開啟就可以看到有你寫的儲存過程test。
這表示資料庫已經有你的儲存過程,你可以呼叫這個儲存過程了。
7.現在儲存過程還只是掛在資料庫上,如果不被執行(與F8的執行不是一個意思)或者不被呼叫,那它只是垃圾。
所以,現在你要知道如何執行儲存過程了。
請先把上面的5行語句存為一個sql檔案,如:test.sql。
開啟命令列(執行 cmd)cd到test.sql所在的檔案目錄;
輸入sqlplus name/[email protected];這是進入sqlplus的命令,如果你不懂是啥意思,請去google。
好,如果你進來了,應該是看到sql>;
恩,可以開始了。輸入:@test。(命令不包括:和。其中test是test.sql的檔名)。
還記得上面5行語句的最後一行有個 / 嗎?如果沒有這個 / 那麼現在你應該再輸入一個 / 才能完成這個執行檔案的命令。
如果提示成功,ok,繼續!
再輸入一條命令:execute test。(命令不包括:和。其中execute就是執行儲存過程了,執行的意思就是說,如果你儲存過程裡有一個insert語句,那只有execute才是在執行插入操作,而且前面的什麼F8、@test之類的都不是。test是你建立的儲存過程的名字)。
如果提示成功了,ok,結束。
8.上面就是編寫、執行、執行儲存過程的流程了。
當然,上面5句話,也太簡單了些,因為沒有輸出,可能你都沒有hello world的感覺,好,下面就來一個hello world級別的儲存過程!
create or replace procedure test is
begin
dbms_output.put_line('abc');
end test;
/
上面即是一個hello world級別的儲存過程了。
--按F8;
--開啟sqlplus
--set serveroutput on(如果想輸出內容,要這一句!)
--execute test
如果正常的話,你會看到輸出abc。
9。好了,hello world到此結束了。下面再隨便說兩句。
+1+上面例子中甚至連變數都沒有,當然更沒有什麼迴圈、陣列之類的,但是我想如果你明白了這個流程,其他的都只是添磚加瓦的事。
+2+儲存過程是可以傳引數的,引數只能是in和out兩種型別,一個引數至少要是in或out其中一種,當然也可以兩種都是。具體語法、用法請去google。
+3+如果你執行了儲存過程後,發現你儲存過程中的insert或update或delete沒有生效,甚至發現數據庫被鎖死了,那你要知道儲存過程裡增刪改後要有commit;這個語句。
+4+如果你在sqlplus裡執行儲存過程,想傳入一個out型引數,要先var 一個變數,然後用法如:execute test(para_in,:para_out)。(para_in,para_out只是兩個隨意引數名,注意para_out前面有冒號)
+5+不一定要在sqlplus裡execute儲存過程,其實plsql當然也可以,開啟command window在裡面execute就ok了,而且是不用@test的。在sqlplus裡修改了檔案後要重新執行@test後才能執行execute。
到此結束,不羅嗦了,程式設計愉快!
相關推薦
ORACLE儲存過程從零到入門
1.以下所說為oracle儲存過程! 2.注重儲存過程的編寫、除錯、和運用的流程,不注重太多語法的介紹! 3.只要你懂sql語句就可以繼續往下看了! 4.一個儲存過程不是屬於哪個table的,而是屬於一個使用者的(在oracle來說)。 5.現在可以編寫儲存過程了,如果
【QT】QT從零入門教程(五):影象檔案操作 [新建開啟儲存]
前文已經講解了選單欄、工具欄、工作列的實現方法,下面我們對程式進行完善。實現功能為:為軟體新增“檔案”選單,並在下拉列表上新增”新建”、 ”開啟”、 ”儲存”、 ”另存為”、 ”關閉”,並在工具欄加上“新建”、“開啟”、“儲存”圖示。 程式碼 /
oracle 儲存過程 每天凌晨 更新sequence 從0 開始
CREATE OR REPLACE PROCEDURE seq_reset AS n NUMBER(10); tsql VARCHAR2(100); BEGIN EXECUTE IMMEDIATE 'select SQD_LSH.nextval from
Oracle儲存過程例項入門分享講解
上一篇我們已經介紹瞭如何通過ODBC匯入表資料ODBC匯入資料,本文則通過匯入的這張表分享一下儲存過程入門儲存過程和函式的區別就是,函式只能即用即配,適合簡短配置的,但不適合批量操作和後臺寫入等,這是我對儲存過程的簡單理解,我認為Oracle儲存過程和函式就類似於java,p
Docker小白從零入門實戰
one service pre var AI play 不知道 ping splay 環境:Centos 6.9 0.查看是否滿足安裝需求。 先檢查服務器環境,docker要求操作系統CentOS6以上,kernel 版本必須2.6.32-431或更高,即>=Cent
Docker小白從零入門到實戰系列【二】
nta 1.0 mkdir -p strong tails RR 註意 3.0 通過 1.安裝好Centos 7 2.關閉SELINUX sed -i ‘s#SELINUX=enforcing#SELINUX=disabled#g‘ /etc/selinux/configs
Oracle儲存過程的簡單舉例
一、建立測試資料 --建立測試資料: create table person(編號 number(10),姓名 varchar2(20),密碼 varchar2(20)); insert into person values(1,'xzw','888'); select * from p
Oracle儲存過程例項分析總結(程式碼)
1.儲存過程結構 1.1 第一個儲存過程 ? 1 2 3 4
Oracle儲存過程語法及編譯過程講解
語法 ? 1 2 3 4 5
java面試問題:oracle儲存過程(procedure)和函式(function)的區別
oracle儲存過程(procedure)和函式(function)的區別 儲存過程 函式 用於在資料庫中完成特定的操作或者任務(如插入、刪除等) 用於特定的資料(如選擇)
Oracle儲存過程基礎內容
1 基本語法 1.1 無參無變數 create or replace procedure firstPro as begin dbms_output.put_line('hello word, my name is stored procedure'); end;
oracle 儲存過程 例項 迴圈 給查詢賦值 遊標取值
CREATE OR REPLACE PROCEDURE p_updete_gs is --僅供參考 i_jdid varchar(32); i_ryid varchar(32); cursor cur is --
C#呼叫ORACLE儲存過程返回結果集
Oracle中scott使用者下建立儲存過程: (注:從9i開始有了sys_refcursor這種型別,在以前的Oracle版本中需要使用REF CURSOR,並且還需放在一個程式包中) create or replace procedure sp_getdept (result
Oracle儲存過程學習筆記(一)
SQL是一種語言! 一、先看一部分基礎: 也可參考該文章:https://www.cnblogs.com/Singleorb/p/6217268.html; 1、語法 CREATE OR REPLACE PROCEDURE 儲存過程名字 ( 引數1 IN NUMBER,
Oracle 儲存過程中傳送郵件,並支援使用者驗證 中文標題和內容
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
oracle 儲存過程 報 無效字元
lv_sql:=' insert into ETL_SUCESS_AMOUNT select SEQ_OS_ETL_AMOUNTID.NEXTVAL AS AMOUNTID,1,AMOUNT_DATA,AMOUNT_HOUR, serviceid,porta
Oracle儲存過程(1)
(一)儲存過程的基本語法 1 CREATE OR REPLACE PROCEDURE 儲存過程名 2 IS 3 BEGIN 4  
【學亮開講】Oracle儲存過程教學筆記(二)20181116
--帶出參的儲存過程的建立和呼叫 create or replace procedure pro_owners_add1 ( v_name varchar2,--名稱 v_addressid number,--地址編號 v_housenumber varchar2,--門牌號 v_wat
Oracle儲存過程的優化
Oracle儲存過程的優化措施 1、開發人員如果用到其他庫的Table或View,務必在當前庫中建立View來實現跨庫操作,最好不要直接使用“user_name.table_name”。 2、開發人員在提交前,必須已經分析過查詢計劃,做過自身的查詢優化檢查。 3.SQL的使用規範: 3.
Oracle儲存過程以及遊標
一.儲存過程 1、儲存過程定義 所謂儲存過程(Stored Procedure),就是一組用於完成特定資料庫功能的SQL語句集,該SQL語句集經過 編譯後儲存在資料庫系統中。在使用時候,使用者通過指定已經定義的儲存過程名字並給出相應的儲存過程引數 來呼叫並執行它,從而完成一個或一系列的資料庫