-oracle資料庫plsql筆記**
pl/sql語句塊分為兩種**pl/sql**是oracle的程式語言,用於擴充套件sql的程式設計能力,為資料庫程式增加了許多可能的功能。
它允許將過程控制語句與 sql語句結合使用oracle 特有的程式語言pl/sql補充了標準的關聯式資料庫語言sql,
提供了各種過程化特性,包括迴圈、if-then語句、高階資料結構以及豐富的事務控制,這些都緊密地整合到oracle資料庫伺服器中。
匿名塊和命名塊
匿名塊是沒有被命名的塊。他們是在應用程式即將執行時被宣告,在執行期間被傳遞給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;
顯示 print v-char;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;
%type 和%rowtype資料型別的區別
例子2:
定義乙個匿名塊,查詢雇員blake所在的部門,在螢幕上顯示該部門的部門名和位址。要求分別用兩種方法完成:自定義的記錄型別變數和%rowtype定義變數。
%type是宣告乙個與指定 列 或已定義 變數 相--第一種
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
;
同的資料型別。
%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...