plsql基礎學習 二 PLSQL型別

2021-08-27 05:02:24 字數 3391 閱讀 9207

標量資料型別:

a.儲存單一的值 b.沒有內部結構

基本標量資料型別:

char,varchar2,long,long raw,number,binary_integer,pls_integer,boolean,date,timestamp

一、oracle資料型別

1.字元資料型別:char,varchar2,long

(1)當需要固定長度的字串時,使用char資料型別

char資料型別儲存字母數字值

char資料型別的列長度可以是1~2000個位元組

(2)varchar2資料型別支援可變長度字串(用多少分配多少)

varchar2資料型別儲存字母數字值

varchar2資料型別的大小在1~4000位元組範圍內

(3)long資料型別儲存可變長度字元資料

long資料型別最多能儲存2gb

2.數值資料型別:

(1)說明:可以儲存整數、浮點數和實數

最高精度為38位

(2)宣告語法:

number[(p[,s])]

p表示精度,s表示小數點的位數

3.日期時間資料型別:

(1)說明:儲存日期和時間值,包括年、月、日,

小時、分鐘、秒

(2)主要的日期時間型別有:

date--儲存日期和時間部分,精確到整個的秒

timestamp--儲存日期、時間 和時區資訊,秒值精確到小數點後6位

4.raw和long raw:

(1)raw資料型別用於儲存二進位制資料

(2)raw資料型別最多能儲存2000位元組

(3)long raw資料型別用於儲存可變長度的二進位制資料

(4)long raw資料型別最多能儲存2gb

5.lob型別:

(1)概述:

lob稱為「大物件」資料型別,可以儲存多達4gb的非結構化資訊,例如聲音剪輯

lob資料型別允許對資料進行高效、隨機、分段的訪問。

(2)lob包括:clob(character lob,字元lob,能夠儲存大量字元資料),

bfile(binary file,二進位制檔案,用於將二進位制資料儲存在資料庫外部的作業系統檔案中)

二、pl/sql支援的內建資料型別

標量型別(數字,字元,布林型,日期時間)

lob型別(儲存非結構化資料塊,clob,blob,bfile,nclob)

屬性型別(提供某個變數或資料庫表列的資料型別 %type

提供表示表中一行的記錄型別 %rowtype)

1.數字資料型別:指定數值的儲存格式

binary_integer:儲存有符號整數,所需儲存空間少於number型別值(不會溢位)

number:儲存整數、實數和浮點數,可以用(decimal,float,integer,real)

pls_integer:儲存有符號整數,可使算術計算快速而有效(會有溢位)

2.字元資料型別

char,varchar2,long,raw,long raw

sql資料型別與pl/sql資料型別的比較:

資料型別

sql型別

pl/sql型別

char

1..2000

1..32767

long

1..2gb

1..32760

long raw

1..2gb

1..32760

raw1..2000

1..32767

varchar2

1..4000

1..32767

3.日期時間型別

(1)儲存日期和時間資料

(2)常用的兩種日期時間型別:date,timestamp

4.布林資料型別

(1)此類別只有一種型別,即boolean型別,用於儲存邏輯值(true、false和null)

(2)不能向資料庫中插入boolean資料,不能拿將列值儲存到boolean變數中,只能對boolean變數執行邏輯操作

5.lob資料型別

(2)lob資料型別可儲存最大4gb的資料

(3)lob型別包括:

blob 將大型二進位制物件儲存在資料庫中

clob 將大型字元資料儲存在資料庫中

nclob 儲存大型unicode字元資料

bfile 將大型二進位制物件儲存在作業系統檔案中

(4)lob型別的資料庫列j僅儲存定位符,該定位符指向大型物件的儲存位置

(5)dbms_lob程式包用於操縱lob資料

讀取lob資料舉例:(在sqlplus下執行)

spool e:\plsql.txt

create table my_book_text

(book_id number(3),

book_descr varchar2(40),

book_text clob);

insert into my_book_text

values(3,'第三部分pl/sql高階程式設計','pl/sql可用於建立儲存過程、觸發器和程式包等,用來處理業務規則、資料庫事件或給sql 命令的執行新增程式邏輯');

set serveroutput on;--設定列印輸出

--使用dbms_lob程式包讀取clob資料型別

declare

clob_var clob;

amount integer;

offset integer;

output_var varchar2(100);--讀取出來的位置存放的變數

begin

select book_text into clob_var from my_book_text

where book_id=3;

amount:=24;--需要列印的字元長度

offset:=1;--讀取的字元起始位置

dbms_lob.read(clob_var,amount,offset,output_var);

dbms_output.put_line(output_var);--輸出需要讀取的值

end;

6.屬性型別

(1)用於引用資料庫列的資料型別,以及表示表中一行的記錄型別

(2)屬性型別有兩種:

%type-引用變數和資料庫列的資料型別  myid student.sid%type(定義變數myid,型別與student表的sid一樣)

%rowtype-提供表示表中一行的記錄型別  emp_rec scott.emp%rowtype(定義記錄變數emp_rec,型別與scott使用者下的emp表的行型別一致,用於記錄emp表中的一行資料)

(3)使用屬性型別的優點:

不需要知道被引用的表列的具體型別;

如果被引用物件的資料型別發生改變,pl/sql變數的資料型別也隨之改變

PL SQL程式設計基礎 PL SQL簡介

課程教師 李興華 課程學習者 陽光羅諾 日期 2018 07 28 知識點 1 了解pl sql的主要特點 2 掌握pl sql塊的基本結構 pl sql語法結構 語法 declare 宣告部分,例如。定義變數 常量 游標。begin 程式編寫 sql語句 exeception 處理異常 end 說...

PL SQL學習筆記二

created on 2009 9 16 by administrator 當從成績表裡提取資料時,把成績少於60的學生姓名,課程,成績插入到不及格學生表,大於60小於80的插入良好學生表,大於80的插入優秀學生表.declare i integer 1 v tt integer 1 sum int...

基礎學習(一) PL SQL程式設計

1.pl sql 塊結構 整個pl sql塊分3部分 declare 宣告部分,可選 begin 執行部分,必須 exception 異常處理部分,可選 end2.資料型別與定義變數和常量 2.1 基本資料型別 1 數值型別 數值型別主要包括number pls integer 和 binary i...