ORACLE資料庫PLSQL筆記

2021-10-07 02:31:41 字數 2803 閱讀 4368

-oracle資料庫plsql筆記**

**pl/sql**是oracle的程式語言,用於擴充套件sql的程式設計能力,為資料庫程式增加了許多可能的功能。

它允許將過程控制語句與 sql語句結合使用oracle 特有的程式語言pl/sql補充了標準的關聯式資料庫語言sql,

提供了各種過程化特性,包括迴圈、if-then語句、高階資料結構以及豐富的事務控制,這些都緊密地整合到oracle資料庫伺服器中。

pl/sql語句塊分為兩種

匿名塊和命名塊

匿名塊是沒有被命名的塊。他們是在應用程式即將執行時被宣告,在執行期間被傳遞給pl/sql engine執行。

命名塊是子程式是被命名的 pl/sql 塊,能接收變數,能被呼叫。它可以宣告為過程也可以為函式,通常僅執行一動作時定義為過程,計算值時定義為函式。

主體

declare

(可選)

//這裡插入變數

begin(必要)

//sql/plsql語句/(輸出)dbms_output.put_line("");

exception(異常 可選)

end(必要)

變數基本型別

number [( 精度, 刻度 )]

n int

n date

n varchar2 ( 長度 ) (最大2000個字元)

n char [( 長度 )](最大255個字元)

n long (最長2g)

n boolean

n binary_integer

n pls_integer

繫結變數使用前先宣告

例子1定義乙個匿名塊,實現如下功能:

(1)根據下面的要求宣告兩個變數v_char和v_num,變數名稱、型別以及值如下:

v_char :可變字串,長度50,值為原義字串 『42 is the answer』 v_num :數值型,值為變數v_char的頭兩個字元 (必須使用函式獲得)

(2)把這兩個pl/sql變數分別賦值給sql *plus繫結變數g_char和g_num,執行該塊。

(3)用命令輸出sql *plus繫結變數的結果。

variable g_char varchar2(50); variable g_num number;

declare 

v_char varchar2(

50) :=

'42 is the answer'

;v_num number :=to_number(substr(v_char,1,

2));

begin

:g_char:=v_char;

:g_num:=v_num;

end;

顯示 print v-char;

%type 和%rowtype資料型別的區別

例子2:

定義乙個匿名塊,查詢雇員blake所在的部門,在螢幕上顯示該部門的部門名和位址。要求分別用兩種方法完成:自定義的記錄型別變數和%rowtype定義變數。

--第一種

declare

c_dname dept.dname%

type

;c_dloc dept.loc%

type

;begin

select dname ,loc into c_dname,c_dloc from emp,dept where emp.deptno=dept.deptno and ename=

'blake'

; dbms_output.put_line (c_dname ||

','|| c_dloc )

;end;ed

--第二種

declare

c_dept dept%rowtype;

begin

select dname ,loc into c_dept.dname,c_dept.loc from emp,dept where emp.deptno=dept.deptno and ename=

'blake'

; dbms_output.put_line (c_dept.dname ||

','|| c_dept.loc )

;end

;

%type是宣告乙個與指定 列 或已定義 變數 相

同的資料型別。

%rowtype使用

%rowtype是 根據指定的表結構定義資料型別,用於儲存數

據表中檢索到的 一行資料。

sql plus中文亂碼問題(參考)比較有效

for update 子句 和 where current of 子句

for update 子句:

當希望使用游標更新資料庫的表時,可以使用

游標 for update 子句。

n 使用 for update子句的目的是鎖定希望更

新的資料庫表中的資料行,以便於在執行完更

新操作和釋放該鎖之前,其他人不能執行更新

where current of:

先要在游標中使用 for update 子句鎖定行。使用 where current of 子句從顯式游標中引用當前行

5.7.5 使用游標更新或刪除

資料2、where current of 子句

游標名是已宣告過的游標名 (游標必須用for update 子句中已經宣告過)要先用 forupdate 子句鎖定行然後使用 where current of 子句從顯式游標中引用當前行

PLSQL連線oracle資料庫

方法一 instantclient 12 2 1 安裝 instantclient 12 2 軟體 免安裝oracle客戶端 2 plsql配置 開啟plsql 點取消,彈出plsql主介面 選單欄的tools 屬性preferences 首選項 連線 3 連線資訊 1 連線資訊 可以是ip 152...

plsql 匯出oracle資料庫

plsql 匯出資料庫有兩個問題,乙個是只匯出結構,乙個是匯出表結構加資料這樣的,首先人家讓我導成sql語句 這不是簡單,首先開啟plsql 一 匯出結構 1 然後tools export user objects.然後出來一片空白 2 要選擇哪個user 3 上面會出現好多表,選擇一下你要匯出的表...

oracle配置資料庫連線 PL SQL

oracle 配置資料庫連線 資料庫配置檔案目錄 e oracle ora92 network admin tnsnames.ora 資料庫名 fwmsdb description address list 伺服器ip address protocol tcp host 10.10.6.40 por...