PL/SQL data types

type of data

Scalar type (SCALAR, or basic data type): used to hold a single value, such as: string, number, date, boolean

Composite type (COMPOSITE): A composite type can store multiple values ​​internally, similar to a collection of multiple variables, such as: record types, nested tables, index tables, variable arrays, etc. are called conforming types

Reference type (REFERENCE): used to point to another different object, for example: REF CURSOR, REF

LOB type: large data type, can store up to 4G of information, mainly used to process binary data;

Common Scalar Types

Numerical type: NUMBER ([total length of data, total length of decimal places) BINARY_INTEGER

char; VARCHAR2(length) ROWID

Date type: DATE, TIMESTAMP

Numeric data can store integers and floating-point numbers

Data Types -- Examples

Observe the difference between CHAR and VARCHAR2

DECLARE

v_info_char CHAR(10);

v_info_varchar VARCHAR2 (10);

BEGIN

v_info_char: = 'VDATA';

v_info_varchar: = 'VDATA';

DBMS_OUTPUT.put_line('v_info_char:'||LENGTH(v_info_char));

DBMS_OUTPUT.put_line('v_info_varchar:'||LENGTH(v_info_varchar));

END;

v_info_char: 10

v_info_varchar: 5

Validate NCHAR and NVARCHAR2

DECLARE

v_info_nchar NCHAR(20);

v_info_nvarchar NVARCHAR2(20);

BEGIN

v_info_nchar:='MR.HONG';

v_info_nvarchar:='13820305037';

DBMS_OUTPUT.put_line('v_info_nchar:'||LENGTH(v_info_nchar));

DBMS_OUTPUT.put_line('v_info_nvarchar:'||LENGTH(v_info_nvarchar));

END;

/

v_info_nchar:20

v_info_nvarchar:11

date type

DATE type

Define a DATE variable

DECLARE

v_date1 DATE:=SYSDATE;

v_date2 DATE: = SYSTIMESTAMP;

v_date3 DATE:='2018-05-01'; --TO_DATE(2018-05-01 23:59:59,‘yyyy-mm-dd hh24:mi:ss’

BEGIN

DBMS_OUTPUT.put_line(TO_CHAR(v_date1,'yyyy-mm-dd hh24:mi:ss'));

DBMS_OUTPUT.put_line(TO_CHAR(v_date2,'yyyy-mm-dd hh24:mi:ss'));

DBMS_OUTPUT.put_line(TO_CHAR(v_date3,'yyyy-mm-dd hh24:mi:ss'));

END;

/

2018-05-02 15:28:39

2018-05-02 15:28:39

2018-05-01 00:00:00

TIMESTAMP is more precise than DATE type

Define a variable of type TIMESTAMP

DECLARE

v_timestamp1 DATE:=SYSDATE;

v_timestamp2 TIMESTAMP:=SYSDATE;

v_timestamp3 TIMESTAMP: = SYSTIMESTAMP;

BEGIN

DBMS_OUTPUT.put_line(v_timestamp1);

DBMS_OUTPUT.put_line(v_timestamp2);

DBMS_OUTPUT.put_line(v_timestamp3);

END;

/

2018-05-02 15:49:46

02-MAY-18 03.49.46.000000 PM

02-MAY-18 03.49.46.541681 PM

v_timestamp2 TIMESTAMP WITH TIME ZONE:=SYSTIMESTAMP;

v_timestamp3 TIMESTAMP WITH LOCAL TIME ZONE:=SYSTIMESTAMP;

02-MAY-18 04.10.24.412348 PM +08:00

02-MAY-18 04.10.24.412353 PM

define boolean variable

DECLARE

v_flag BOOLEAN;

BEGIN

v_flag:=true;

IF v_flag THEN

DBMS_OUTPUT.put_line('fullfill');

END IF;

END;

/

Subtype

DECLARE

SUBTYPE score_subtype IS NUMBER(5,2) NOT NULL;

v_score score_subtype:=99.35;

BEGIN

DBMS_OUTPUT.put_line('score:'||v_score);

END;

/

DECLARE

SUBTYPE string_subtype IS VARCHAR2(200);

v_company string_subtype;

BEGIN

v_company:='www.vdedu.com';

DBMS_OUTPUT.put_line(v_company);

END;

/

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325306183&siteId=291194637