Oracle SQL - 数据类型
Oracle SQL - Data Type
您好,我目前正忙于在 SQL 中创建一个视图。我对一种数据类型有一个问题,对于我的值 X_SOURCE_ADDRESS
这 2020 年的最大字符是 18
.
但在 DB 中,此列在 VARCHAR2(255)
中,在 powerBi 中,此列的数据量很大。
是否可以声明另一种数据类型?
查询:
专栏:
不久:CAST.
这是一个示例:table dept
有一个名为 dname
的列,即 varchar2(20)
:
SQL> desc dept
Name Null? Type
----------------------------------------- -------- ----------------------------
DEPTNO NOT NULL NUMBER
DNAME VARCHAR2(20) --> this
LOC VARCHAR2(20)
如果我创建视图,dept
列将继承 table 的数据类型:
SQL> create view v_dept as select * from dept;
View created.
SQL> desc v_dept
Name Null? Type
----------------------------------------- -------- ----------------------------
DEPTNO NOT NULL NUMBER
DNAME VARCHAR2(20) --> this
LOC VARCHAR2(20)
但是,如果您 cast
将其用于其他用途,您会得到想要的:
SQL> drop view v_dept
2 /
View dropped.
SQL> create view v_dept as
2 select deptno,
3 cast(dname as varchar2(50)) as dname, --> this
4 loc
5 from dept;
View created.
SQL> desc v_dept
Name Null? Type
----------------------------------------- -------- ----------------------------
DEPTNO NOT NULL NUMBER
DNAME VARCHAR2(50) --> this
LOC VARCHAR2(20)
SQL>
您好,我目前正忙于在 SQL 中创建一个视图。我对一种数据类型有一个问题,对于我的值 X_SOURCE_ADDRESS
这 2020 年的最大字符是 18
.
但在 DB 中,此列在 VARCHAR2(255)
中,在 powerBi 中,此列的数据量很大。
是否可以声明另一种数据类型?
查询:
专栏:
不久:CAST.
这是一个示例:table dept
有一个名为 dname
的列,即 varchar2(20)
:
SQL> desc dept
Name Null? Type
----------------------------------------- -------- ----------------------------
DEPTNO NOT NULL NUMBER
DNAME VARCHAR2(20) --> this
LOC VARCHAR2(20)
如果我创建视图,dept
列将继承 table 的数据类型:
SQL> create view v_dept as select * from dept;
View created.
SQL> desc v_dept
Name Null? Type
----------------------------------------- -------- ----------------------------
DEPTNO NOT NULL NUMBER
DNAME VARCHAR2(20) --> this
LOC VARCHAR2(20)
但是,如果您 cast
将其用于其他用途,您会得到想要的:
SQL> drop view v_dept
2 /
View dropped.
SQL> create view v_dept as
2 select deptno,
3 cast(dname as varchar2(50)) as dname, --> this
4 loc
5 from dept;
View created.
SQL> desc v_dept
Name Null? Type
----------------------------------------- -------- ----------------------------
DEPTNO NOT NULL NUMBER
DNAME VARCHAR2(50) --> this
LOC VARCHAR2(20)
SQL>