oracle課程第六天筆記

2023-01-06 07:51:03 字數 4745 閱讀 8430

pl/sql 基礎

pl/sql(procedural language/sql)是oracle在標準的sql語言上的擴充套件。pl/sql不僅允許潛入sql語言,還可以定義變數和常量,允許使用條件語句和迴圈語句,允許使用例外處理各種錯誤,這樣使得它的功能變得更加強大。

1、 過程、函式、觸發器是pl/sql編寫

2、 過程、函式、觸發器是在oracle中

3、 pl/sql是非常強大的資料庫過程語言

4、 過程、函式可以在j**a程式中呼叫

學習必要性

1、 提高應用程式的執行效能

2、 模組化的設計思想

3、 減少網路傳輸量

4、 提高安全性

不好:移植性不好

開發工具

1、 sqlplus開發工具

2、 pl/sql developer開發工具

案例:編寫乙個儲存過程,該過程可以新增表記錄

1、 建立乙個簡單表

create table mytest( name varchar2(10),passwd varchar2(10));

2、建過程

create or replace procedure sp_pro1 is

begin

insert into mytest values(『小金』,』m123』);

end;

/replace:表示如果過程sp_pro1存在,就替換

查詢錯誤資訊:show error;

如何呼叫過程

1、 exec 過程名(引數值);

2、 call 過程名(引數值);

exec sp_pro1;

案例:create or replace procedure sp_pro2 is

--執行部分

delete from mytest where name=』小金』;

end;

介紹開發人員使用pl/sql編寫應用模組時,不僅需要掌握sql語句的編寫方法,還要掌握pl/sql語句及語法規則。pl/sql程式設計可以使用變數和邏輯控制語句,從而可以編寫非常有用的功能模組。比如:

分頁儲存過程模組,訂單處理儲存過程模組,轉賬儲存過程模組。。。。而且如果使用pl/sql程式設計,我們可以輕鬆的完成非常複雜的查詢要求。

分類:過程、函式、觸發器、包,按塊分

編寫規範

1、 注釋

單行注釋—

多行注釋/*….*/

2、 識別符號號的命名規範

當定義變數時,建議用v_作為字首v_sal

當定義常量時,建議用c_作為字首

當定義游標時,建議用_cursor作為字尾

當定義例外時,建議用e_作為字首

塊介紹塊(block)是pl/sql的基本程式單元,編寫pl/sql程式實際上就是編寫pl/sql塊。要完成相對簡單的應用功能,可能只需要編寫乙個pl/sql塊;但是如果要想實現複雜的功能,可能需要在乙個pl/sql塊中巢狀其他的pl/sql塊。

塊結構示意圖

pl/sql塊由三個部分構成:定義部分、執行部分、例外處理部分。

如下所示:

declear

/*定義部分—定義常量、變數、游標、例外、複雜資料型別*/

begin

/*執行部分—要執行的pl/sql語句和sql語句*/

exception

/*例外處理部分—處理執行的各種錯誤*/

end;

特別說明:定義部分是從declare開始,該部分是可選的;執行部分是從begin 開始的,該部分是必須的;例外處理部分是從exeception 開始的,該部分是可選的

例項1set serveroutput on – 開啟輸出選項

begin

dbms_

end;

說明:dbms_output是oracle所提供的包(類似j**a的開發包),該包包含一些過程,put_line就是dbms_output包的乙個過程。

set serveroutput off; -- 關閉輸出選項

例項2:包含定義部分和執行部分的pl/sql塊

declare

v_ename varchar2(5); -- 定義字串變數

begin

select ename into v_ename from emp where empno=&no;

dbms_雇員名:』||v_ename);

end;

說明:&表示要接受從控制台輸入的變數

例項3:包含定義部分,執行部分、和例外處理部分

為了避免pl/sql程式的執行錯誤,提高pl/sql的健壯性,應該對可能的錯誤進行處理,這個很有必要

1) 比如在例項2中,如果輸入了不存在的雇員號,應當做例外處理

2) 如是出現異常,希望用另外的邏輯處理

declare

v_ename varchar2(5); -- 定義字串變數

begin

select ename into v_ename from emp where empno=&no;

dbms_雇員名:』||v_ename);

-- 異常處理

exception

when no_data_found then

dbms_你的編號輸入錯誤』)

end;

過程過程用於執行特定的操作。當建立過程時,既可以指定輸入引數(in),也可以自定輸出引數(out).通過在過程中使用輸入引數,可以將資料傳遞到執行部分,通過使用輸出引數,可以將執行部分的資料傳遞到應用環境在sqlplus中可以使用create procedure 命令建立過程。

例項如下:

1) 編寫乙個過程,可以輸入雇員名,新工資,可修改員工的工資

create procedure sp_pro3(spname varchar2,newsal number) is

begin – 執行,根據使用者名稱修改工資

update emp set sal=newsal where ename=spname;

end;

--呼叫過程

exec sp_pro3(『scott』,4678);

2) 如何呼叫過程有兩種方法

exec… call…

3) 如何在j**a 程式中呼叫乙個儲存過程

import

public class testoraclepro」)

//4、給?賦值

//5、執行

//6.關閉

}catch (exception e)}}

函式函式用於返回特定的資料,當建立函式時,在函式頭部必須包含return子句,而在函式體內必須包含return語句返回的資料。可以使用create function 來建立函式。

案例:輸入雇員的姓名,返回該雇員的年薪

create function sp_fun1(spname varchar2) return number is yearsal number(7,2);

begin

select sal*12+nvl(comm.,0)*12 into yearsal from emp where ename=spname;

return yearsal;

end;

在sqlplus 中呼叫函式

var income number

call annual_incomec(『scott』) into:income;

print income

同樣我們可以在j**a程式中呼叫該函式

select annual_income(『scott』) from dual;

這樣可以通過得到返回的結果

包包用於在邏輯組合過程和函式,它由包規範和包體兩部分組成、

1、 可以使用create package 命令來建立包:

例項:建立乙個包sp_package

生命該包有乙個過程update_sal

宣告該包有乙個函式annual_income

create package sp_package is

procedure update_sal(name varchar2,newsal number);

function annual_income(name varchar2) return number;

end;

包的規範只包含了過程和函式的說明,但是沒有過程和函式的實現**。包體用於實現包規範中的過程和函式,

2、 建立包體可以使用create package body命令

給包sp_package 實現包體

create or replace package body sp_package is

procedure update_sal(name varchar2,newsal number)

is begin

update emp set sal=newsal where ename=name;

end;

function annual_income(name varchar2)

return number is

annual_salary number;

begin

select sal*12 nvl(comm.,0) into annual_salary from emp

where ename = name;

return annual_salary;

end;

end;

3、 呼叫包的過程或是函式

當呼叫包的過程或是函式時,咋過程和函式前需要帶有包名,如果要訪問其他方案的包,還需要在包名前加方案名

如:call sp_

第六單元課程綱要

課程名稱 語文課程型別 必修 教材 人民教育教育出版社2013年版適用年級 小學四年級 教學課時 13課時 背景本組教材以 鄉村生活 為主題,體裁多樣,有古詩詞,也有中國 外國作家寫的散文,展現了一幅幅田園生活的畫面,讓學生了解鄉村生活,感受田園生活的詩情和樂趣。本組課文學習的,一要重視積累優美語言...

管理學筆記整理第六章戰略

第六章戰略 第一節戰略概述 什麼是戰略管理 戰略管理概念 管理者制定組織戰略所要做的工作。相關概念 戰略 關於組織如何經營,它將如何在競爭中獲得成功,以及如何吸引和滿足顧客以實現組織目標的各種方案。商業模式 是指乙個公司如何賺錢。特點 全域性性長遠性綱領性競爭性風險性穩定性 戰略的要素 戰略指導思想...

第六屆徵集「優秀讀書筆記」的通知

各學院團委 為了在我校廣大青年學生中大力倡導 讀好書,立大志 的良好風尚,營造我校濃厚的人文氛圍,增加學生的思想厚度,積極推動南航校園文化建設,拓展學生綜合素質,引導學生在先進文化的薰陶下,樹立遠大理想,校語言文字工作委員會 校團委 黨委宣傳部 教務處 圖書館從今年四月起,在全校範圍聯合舉辦了本次主...