PL SQL 2 2 變數 賦值和運算子

2021-08-22 14:58:08 字數 3244 閱讀 7448

--pl/sql 2.2 變數、賦值和運算子

--注:pl/sql變數可以分為兩大類:標量變數(基本變數)和復合變數(陣列、引用游標、使用者定義型別)

--注:資料型別的約束與非約束

--標量變數列表

--1.布林

boolean

--2.字元

char

character

long --實現向後相容性

long raw

nchar

nvarchar

rowid --實現向後相容性,替代物是(urowid)通常只有在dba工作中才會接觸到通用行id

urowid

varchar2

string

varchar

--3.日期、時間戳

-- interval:間隔; 幕間休息; (數學) 區間;

-- stamp:郵票; 印( stamp的名詞複數 ); 跺腳; 標誌

interval day to second

interval year to month

timestamp

timestamp with time zone

timestamp with local zone

--4.數值

number

double precision

float

decdecimal

numeric

intinteger

smallint

binary_integer

natural

naturaln

positive

positiven

******_integer

pls_integer

ieee-754

binary_double

binary_float

--大物件資料型別

bfile --在資料庫儲存乙個對外部二進位制檔案的引用

blob

clob

--2.2.1文字資料型別

--最佳實踐:應該始終使用可變長度字串,

--除非存在某個非常強的業務原因,要求使用固定

--長度的資料型別。

--如何對變長和定長資料型別賦值以及分配空間

declare

lv_fixed char(40) :='something not quite long';

lv_variable varchar(40) :='something not quite long';

lv_clob clob :='something not quite long';

begin

dbms_output.put_line('fixed length ['||length(lv_fixed)||']');

dbms_output.put_line('varying length ['||length(lv_variable)||']');

dbms_output.put_line('clob length ['||length(lv_clob)||']');

end;

--fixed length:[40]

--varying length[25]

--clob length[25]

--日期、時間戳型別

--注:data是日期、時間和間隔的基本型別

--1.日期

declare

lv_date_1 date := '28-apr-75';

lv_date_2 date :='29-apr-1975';

lv_date_3 date :=to_date('19750430','yyyymmdd');

lv_date date :='12-may-1075';

lv_date_4 :=sysdate;

lv_date_5:=lv_date_4;

begin

lv_date:=lv_date+3;

dbms_output.put_line('implicit ['||lv_date_1||']');

dbms_output.put_line('implicit ['||lv_date_2||']');

dbms_output.put_line('implicit ['||lv_date_3||']');

dbms_output.put_line('date['||lv_date||']');

dbms_output.put_line(to_char(lv_date_4,'dd-mon-yy hh24:mi:ss'));--日期轉化為字串

dbms_output.put_line(to_char(trunc(lv_date_5),'dd-mon-yy hh24:mi:ss'));--trunc內建函式將標量日期減少為乙個整數

end;

--2.間隔

declare

lv_interval interval day to second;

lv_interval1 interval day(9) to second;

lv_interval2 interval year to month;

lv_end_day date :=sysdate;

lv_end_day1 timestamp :=systimestamp;

lv_start_day date :='28-apr-2009';

lv_start_day1 timestamp :='28-apr-2009';

begin

lv_interval:=to_timestamp(lv_end_day)-to_timestamp(lv_start_day);

dbms_output.put_line(lv_interval);

lv_interval1:=lv_end_day1-lv_start_day1;

dbms_output.put_line(lv_interval1);

lv_interval2:=to_char(extract(year from lv_end_day)-extract(year from lv_start_day))||'-'||to_char(extract(month from lv_end_day))-extract(month from lv_start_day)));

dbms_output.put_line(lv_interval2);

end;

--時間戳

賦值運算子 , 和變數作用域

在宣告使用全域性作用域的變數時,要特別小心。package main import fmt var name string 戀碼 func setlocalname func setname func main 執行 碼農 hhbhhb 具體的差別,看 兩個運算子的文件。當你宣告乙個全域性變數,想在...

位運算子和賦值運算子

位運算只能對整數進行,可以是整數型變數也可以是被識別為整數型別的字面量。位運算是對該整數實際儲存的二進位制串的二進位制位進行操作,可以進行6種位運算 運算子作用 按位與 按位或 按位異或 按位取反 左移 右移位運算都不改變運算元本身的值,而是位運算表示式本身的值為進行位運算之後的值,例如 char ...

指標運算子和賦值運算子

取位址運算子,求得某個變數位址 指標運算子,求得所指位址的空間裡的值 c語言中,稱作賦值運算子,作用是將乙個數值賦給乙個變數或將乙個變數的值賦給另乙個變數,由賦值運算子組成的表示式稱為賦值表示式。簡單賦值 一般形式 變數名 表示式 注意 在程式中可以多次給乙個變數賦值,每賦一次值,與該變數相應的儲存...