【发布时间】:2020-06-12 14:46:48
【问题描述】:
Employee 表中以下 4 列的数据长度是多少?
表:员工
Column_Name ----- Data_Type ------- Nullable ---- Column_Id
Emp_ID VARCHAR2(10 BYTE) No 1
Emp_Name VARCHAR2(100 CHAR) No 2
Emp_Notes VARCHAR2(1000) No 3
Emp_det_created TIMESTAMP(9) No 4
表结构如下
CREATE TABLE employee
( Emp_ID VARCHAR2(10 BYTE) NOT NULL ENABLE,
Emp_Name VARCHAR2(100 CHAR) NOT NULL ENABLE,
Emp_Notes VARCHAR2(1000) NOT NULL ENABLE,
Emp_det_created TIMESTAMP (9) NOT NULL ENABLE,
USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 1000 NEXT 1948506 MINEXTENTS 1 MAXEXTENTS 2100000045
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "EMPL" ENABLE
) SEGMENT CREATION IMMEDIATE
PCTFREE 10 PCTUSED 20 INITRANS 1 MAXTRANS 255
NOCOMPRESS LOGGING
STORAGE(INITIAL 1000 NEXT 1948506 MINEXTENTS 1 MAXEXTENTS 2100000045
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE EMPL ;
O/P: select * from Employee ;
Emp_Id ---- Emp_Name---- Emp_Notes--- Emp_det_created
A10 -- Claire -- 很好 --- 04/01/2015
A20 -- Rosey--- 纯文本 ---- 03/25/2016
A30 -- Aven-- 普通消息 ---- 05/01/2017
【问题讨论】:
-
为什么需要知道?如果
TIMESTAMP是11 or 20 bytes,您真的担心吗?您是否关心VARCHAR2(10 BYTE)在磁盘上的最大大小可能为 11 或 12 字节,如果您主要在其中存储较小的字符串并且占用更少的空间?你知道你使用的是什么字符集,你是存储扩展字符还是只存储 ASCII? -
为什么要为列使用带引号的名称?不仅如此,您为什么要使用包含空格的引号名称? db<>fiddle
-
是的。我需要知道数据长度的最大大小。这个对吗? Timestamp(9) = 11 bytes .. varchar2(10) = 10bytes 的其他 3 个字段怎么样?和 varchar2(1000) = 1000 字节?关于 varchar2(100char)?
-
这取决于......你在数据库中使用什么字符集?
-
DDL 表中基本上没有空格.. 当我尝试在这里输入时.. 它出现了
标签: oracle