CONCAT语法每次都会出错

时间:2019-07-05 11:40:14

标签: sql oracle

大家好,我有一个简单的问题,但事实证明这很耗时。因此,即时通讯编写了一个选择,我想在其中选择一个字符串并将其与列连接起来

结果应如下所示;

ERIP -> <suppliername>

我有

SELECT 'ERIP' || ' -> ' || s.suppliername,
s.supplierunn,
...

到目前为止,我已经尝试过

SELECT CONCAT('ERIP', '->', s.suppliername),
       ...

SELECT CONCAT(CONCAT('ERIP', '->'), s.suppliername),
       ...

SELECT || 'ERIP' || '->' || s.suppliername,
      ...

我收到ORA-01722错误或ORA-00909

有人可以引导我吗?带有少量解释的投票也会获得投票

如所指出的,WHERE语句就是问题所在。

以前它给出了错误

WHERE ss.outserverid = '43'

将其更改为

WHERE ss.outserverid LIKE '%43%'

1 个答案:

答案 0 :(得分:2)

这应该有效:

 SELECT 'ERIP ->'|| s.suppliername ..
    ..
    From <Table>
WHERE ss.outserverid = 43; -- Removes quotes across 43

看起来列ss.outserverid的数据类型为Number,而您试图将其等同于varchar。如上图所示尝试。

编辑:

演示以说明;不会引起任何问题,它是行终止符,不应引起任何错误:

SQL> SELECT * FROM V$VERSION;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
PL/SQL Release 11.2.0.4.0 - Production
CORE    11.2.0.4.0  Production
TNS for Linux: Version 11.2.0.4.0 - Production
NLSRTL Version 11.2.0.4.0 - Production

SQL> create table test(col number);
Table created

SQL> select * from test;
       COL
----------

SQL>