日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

PL/SQL 基础( 上 )

發布時間:2025/3/19 数据库 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PL/SQL 基础( 上 ) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
預備 ( PL/SQL 好處 )

Integration : 集成度高 ( server 和 application 中都有 , 例如 : Oracle Developer )

Improved performance : ( 必須系統中計算工時 , 如果使用 procedure , 則只需要傳幾個參數過去 , 可以很少的使用 network ,

而如果沒有使用 procedure , 則每條記錄的情況都要傳給SERVER, 假如公司有10000人 , 則就需要使用 network很多 )

Modularized program development : 使用模塊 ( begin ... end ) , Place reusable PL/SQL code in library to be shared between Oracle Form and Oracle Reports.

Portable , you can declare varibales . ( 可以復制到別的 SERVER 中執行 )

You can program with control structure . ( include handle errors )

匿名塊不保存在數據庫內部. ( block ) ( 執行完就沒有了 )

?

1.變量定義

變量種類 : PL/SQL變量,系統綁定變量

PL/SQL變量 : scalar , composite , reference , LOB ( large objects ) ( 在此 只討論 scalar , composite )

系統綁定變量 : 定義在外部環境 ( i*SQL ) 中,可以用做參數傳遞的變量。

?

identifier [CONSTANT] datatype [NOT NULL] [:= | default exp];

例如 :

declare

v_depno number(3) NOT NULL := 100; ( 有 NOT NULL 必須給值 )

c_comn CONSTANT number(4) := 1400; ( 有 CONSTANT 必須初始化 )

v_location varchar(20) := “Hello'’world”( 如果字符串中有’,那么必須兩次使用,成對出現 )

%TYPE ( 前面定義過的變量,或者是TABLEZ中的列 )

%ROWTYPE

v_name employees.last_name%TYPE

v_balance number(10,2) ;

v_min_balance v_balance%TYPE := 10;

v_ename := LOWER( v_ename ) ;? 可以使用函數

字符串問題,例如 tom’s home

v_home = q’!tom’s home!’ 或者 q’[! tom’s home ]’其中主要格式為 q’分隔符,例如! [] 等等

當然,因為限定成對出現,所以如果你寫 “tom'’s home” 也是可以的。

declare 聲明部分的變量在執行語句中不需要加 : 冒號 例如:

1: DECLARE 2: v_bonus NUMBER(6); 3: BEGIN 4: SELECT salary * 0.01 5: INTO v_bonus -- 注意此處沒有冒號 6: FROM employees 7: WHERE EMP_ID = '2008491'; 8: END;

Bind variables : 變量是在 host environment中定義,主要是提供參數給 PL/SQL BLOCK

系統綁定變量,可以通過 print 顯示內容, 例如 PRINT g_n ,

VARIABLE return_code NUMBER ( 可以直接在PL/SQL中使用,不用再 declare , 此種變量必須要冒號 :

1: VARIABLE g_salary NUMBER 2: BEGIN 3: SELECT salary 4: INTO :g_salary -- 注意此處有冒號 5: FROM EMPLOYEES 6: WHERE EMPLOYEE_ID = '20080504'; 7: END;

PLSQL variables assignments always use :=

SQL column assignments always use =

不可以在 PL/SQL 中使用的函數 :

- DECODE

- GROUP functions ( AVG, MIN, MAX, COUNT, SUM, STDDEV, VARIANCE )

? group functions apply to groups of rows in a table and therefore are availiable only in SQL statements in a PL/SQL block.

? 也就是說,在PL/SQL中的SQL中可以使用以上函數。

2. 命名規則

identifier

Naming Convention

Example

variablev_namev_sal
constantc_namec_company_name
cursorname_cursoremp_cursor
exceptione_namee_too_many
table typename_table_typeamount_table_type
tablename_tablecountry_table
record typename_recordcustomer_record
recordname_recordcustomer_record
substitutionp_namep_sal
host or bind variableg_nameg_year_sal
3. 輸出

DBMS_OUTPUT.PUT_LINE()

4. 注釋

-- 單行注釋

/**/ 多行注釋

5. scope

同 C 一樣, PL/SQL 中的變量也是有 SCOPE 的

6. 運行

/ A slash( / ) runs the PL/SQL block in a script file or in some tools such as isql*plus.

7. 在 PL/SQL 中使用函數

v_ename := LOWER( v_ename) ;

Most of the SQL function can bu used in PL/SQL ,

PL /SQL has its own error handling functions which are : ( SQLCODE, SQLERRM )

8. Qualify an identifier

標識符可以使用 label 區分

注意 : 上邊的 outer.birthdate ( 這樣在內部的 begin end , 可以訪問外部變量 )

9. 特殊的操作符號

** 冪運算

~= 約等于

<>, != , ^= 不等于

轉載于:https://www.cnblogs.com/moveofgod/archive/2012/11/16/2773279.html

總結

以上是生活随笔為你收集整理的PL/SQL 基础( 上 )的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。