我现在有一个表,表名叫做company
NAME ADDRESS CITY STATE
------------------ ------------ -------- ----------
AA ZZ RR CN表中各个字段类型:(DESC COMPANY)
名称 是否为空 类型
---------------------------------------------------
NAME CHAR(30)
ADDRESS CHAR(50)
CITY CHAR(30)
STATE CHAR(5)
我现在为它创建一个视图
CREATE VIEW ENVELOPE(NAME,MAIL_DADRESS) AS
SELECT NAME,ADDRESS+' '+CITY+' '+STATE
FROM COMPANY;
创建的视图是成功的,但是我只要一用SELECT * FROM ENVELOPE;
就会提示无效数字。
后来我使用DESC ENVELOPE;查看发现
名称 是否为空 类型
-------------------------------
NAME CHAR(30)
MAIL_ADDRESS NUMBER
为什么使用+号联合了以后MAIL_ADDRESS会变成NUMBER类型?
如果SELECT NAME,ADDRESS+' '+CITY+' '+STATE
改成SELECT NAME,ADDRESS+" "+CITY+" "+STATE
则视图都创建不了。
请问为什么呢?困扰一下午了,我是初学者望大家不吝赐教谢谢。
NAME ADDRESS CITY STATE
------------------ ------------ -------- ----------
AA ZZ RR CN表中各个字段类型:(DESC COMPANY)
名称 是否为空 类型
---------------------------------------------------
NAME CHAR(30)
ADDRESS CHAR(50)
CITY CHAR(30)
STATE CHAR(5)
我现在为它创建一个视图
CREATE VIEW ENVELOPE(NAME,MAIL_DADRESS) AS
SELECT NAME,ADDRESS+' '+CITY+' '+STATE
FROM COMPANY;
创建的视图是成功的,但是我只要一用SELECT * FROM ENVELOPE;
就会提示无效数字。
后来我使用DESC ENVELOPE;查看发现
名称 是否为空 类型
-------------------------------
NAME CHAR(30)
MAIL_ADDRESS NUMBER
为什么使用+号联合了以后MAIL_ADDRESS会变成NUMBER类型?
如果SELECT NAME,ADDRESS+' '+CITY+' '+STATE
改成SELECT NAME,ADDRESS+" "+CITY+" "+STATE
则视图都创建不了。
请问为什么呢?困扰一下午了,我是初学者望大家不吝赐教谢谢。
SELECT NAME,ADDRESS||' '||CITY||' '||STATE
FROM COMPANY;
连接符号是||
如果表中已经是 char 类型,可以用 rtrim(ADDRESS) 函数消除字符串后面的空格。