Синтаксис CONCAT каждый раз ошибается - PullRequest
0 голосов
/ 05 июля 2019

Добрый день всем, у меня есть простая проблема, но она оказывается очень трудоемкой. Поэтому я пишу выборку, в которой я хочу взять строку и объединить ее со столбцом

Результат должен выглядеть следующим образом;

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 Ответ

2 голосов
/ 05 июля 2019

Это должно работать:

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

Похоже, столбец ss.outserverid имеет тип данных Number, и вы пытаетесь приравнять его к varchar. Попробуйте, как показано выше.

Edit:

Демонстрация, поясняющая, что ; ничего не вызывает, это терминатор строки и не должно вызывать никаких ошибок:

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> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...