SELECT FROM AS 导致 ORA-01722: 无效号码

Posted

技术标签:

【中文标题】SELECT FROM AS 导致 ORA-01722: 无效号码【英文标题】:SELECT FROM AS resulting in ORA-01722: invalid number 【发布时间】:2017-06-11 12:59:12 【问题描述】:

当我尝试运行以下命令时,我在 oracle sql developer 中遇到错误

SELECT VENDOR_CONTACT_LAST_NAME + ', ' + VENDOR_CONTACT_FIRST_NAME AS FULL_NAME
FROM VENDORS

错误是 ORA-01722:无效号码。这两列都是 VARCHAR2(50 BYTE),我的搜索表明尝试将 char 转换为数字可能会出错,但我没有这样做,所以我很困惑,因为语法对我来说是正确的。

【问题讨论】:

【参考方案1】:

大概,你的名字不是数字。 Oracle 中字符串连接的正确语法是||:

SELECT (VENDOR_CONTACT_LAST_NAME || ', ' || VENDOR_CONTACT_FIRST_NAME) AS FULL_NAME
FROM VENDORS;

【讨论】:

谢谢,成功了。我想知道为什么这个页面上没有提到这一点,因为他们确实指出了不同语言存在的差异,就像你可以看到他们展示了它是如何使用 mysql w3schools.com/sql/sql_alias.asp 初学者。数据类型部分涵盖Access, MySQL and SQL Server:显然 W3School 认为这些是学生最有可能使用的数据库。它们在语法方面没有那么明确,但我假设示例目标针对这三个。 有道理,我只是认为他们这样做了,因为我之前看过这个,它确实提到了它并显示了不同的语法w3schools.com/sql/sql_top.asp

以上是关于SELECT FROM AS 导致 ORA-01722: 无效号码的主要内容,如果未能解决你的问题,请参考以下文章

db2中可以实现create table A as select * from B吗

应用及函数

CREATE VIEW AS SELECT FROM 检查表是不是存在

oracle中,用create table ... as select * from table_a...语句备份或者其他用途会不会产生归档日志,

lambda表达式中如何在group by 后将查询出的字段象sql一样使用as定义一个名 比如select a as C from b

#1.从学生表中查询所有学生的所有信息SELECT * FROM `student`#2.从学生表查询所有学生的学号姓名信息并分别赋予别名SELECT StudentNo AS ‘学号‘, St