標量資料型別:
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...