PL/SQL 静态类型化(强类型化) 程序设计语言----数据类型

常量:声明时指定初始值,且值不能改变
定义方式:
constant_name constant datatype :=value;
常量名 constant(保留字 数据类型 := 赋值;

declare 
salary_rate constant number(7,2) :=0.25;--定义加薪常量值
salary number(7,2);
begin
  select emp_salary*(1+salary_rate) into salary from emp where emp_id = '8000';
 --输出
 dbms_output.put_line('加薪后薪水'||salary);
 end;

静态:类型在编译时检查
pl/sql 类型大致分为4类:
1。标量类型:存单个值 字符型、数字型、布尔型、日期型
2.复合类型:可包含多个标量类型 记录、嵌套表、索引表、变长数组
3.引用类型:指针 ref、cursor
4.lob类型:大对象类型 处理二进制和>4GB 的字符串

字符型类型:

char:定长字符类型 oracle<2000字节
long:存变长字符串 <32KB
long raw :存二进制数据 <32kB
nchar:存定长unicode数据 如双字节汉字
nvarchar2:存变长unicode数据
raw:存定长二进制数据 <32767个byte
rowid:物理行id,即表中数据行数
urowid:逻辑、物理行ID
varchar :ansi标准sql类型
varchar2:字符集 oracle <4KB


char VS byte
char:以字符为单位 一个字符可包含多个字节 默认值是1 赋值长度比定义小后面自动补白
byte:以字节为单位

declare
name char(2 byte);
name2 char(2 char);
name3 char;
name4 char(20);
begin
  name :='ab';--赋值为‘中国’则会报错:字符缓冲区太小
  name2 :='熊猫';
  name3:=1;
  name4 :='hello panda';
  dbms_output.put_line(length(name4));--name4长度为20 不足的位置补上空白字符
  end;

varchar2 两个子类型:String varchar
存值范围:1~32767(32KB)
数据库中数据类型最大为: 4000字节。

declare
name varchar2(25);
name2 varchar2(25 byte);
name3 varchar2(25  char);
begin 
  name :='中华人民共和国';
  dbms_output.put_line(length(name));--7
  name2:='中华人民共和国';
  dbms_output.put_line(length(name2));--7个字节
  end;

number 整数、浮点数
number(精度m,刻度n):数字总长度m\小数n位

declare
num1 number:=3.1415926;--3.1415926
num2 number(3):=3.1415926;--3  没有小数
--num3 number(4,3):=3145.1415926; --报错:精度太高
num4 number(4,3):=3.1415926; --3.142   一共四位  3位小数
num5 number(8,3):=31415.9267; --31415.927
num6 number(4,-3):=33333.333; --33000  从小数点向左清楚3位
num7 number(4,-3):=333.333;--0
num8 number(4,-1):=333;--330
num9 number(4,-1):=31415926;--报错 精度太高
begin
  dbms_output.put_line(num1);  
  dbms_output.put_line(num2);
  -- dbms_output.put_line(num3);
  dbms_output.put_line(num4);
  dbms_output.put_line(num5);
    dbms_output.put_line(num6);
        dbms_output.put_line(num7);
         dbms_output.put_line(num8);
         dbms_output.put_line(num9);
  end;

猜你喜欢

转载自blog.csdn.net/fightingitpanda/article/details/79727766
今日推荐