Oracle проблема с concat () - PullRequest
0 голосов
/ 29 мая 2020
SELECT EMPLOYEE_ID, CONCAT(FIRST_NAME," ",LAST_NAME) AS EMPLOYEE_NAME, HIRE_DATE
FROM EMPLOYEES

Я попытался запустить приведенный выше код, и он выдает ошибку (недопустимое количество аргументов) для конкатенации. Я пытаюсь добавить пробел между FIRST_NAME и LAST_NAME.

Ответы [ 3 ]

0 голосов
/ 29 мая 2020

Полученная ошибка предполагает, что вы используете Oracle в качестве СУБД, но не MySQL, и получаете код ошибки ORA-00909.

В Oracle можно поместить не более двух аргументов. 's CONCAT(), и использование двойных кавычек в ней запрещено, вместо них можно использовать одинарные. Итак, в вашем случае попробуйте использовать как

SELECT EMPLOYEE_ID, CONCAT(CONCAT(FIRST_NAME,' '),LAST_NAME) AS EMPLOYEE_NAME, HIRE_DATE
  FROM EMPLOYEES

или каналы как операторы конкатенции

SELECT EMPLOYEE_ID, FIRST_NAME||' '||LAST_NAME AS EMPLOYEE_NAME, HIRE_DATE
  FROM EMPLOYEES
0 голосов
/ 29 мая 2020

Пожалуйста, используйте запрос ниже,

SELECT EMPLOYEE_ID, FIRST_NAME||' '||LAST_NAME AS EMPLOYEE_NAME, HIRE_DATE
FROM EMPLOYEES;
0 голосов
/ 29 мая 2020

должно работать, если имена полей верны, синтаксических ошибок нет. если вы просто хотите добавить разделитель между полями, попробуйте SELECT CONCAT_WS ('', FIRST_NAME, LAST_NAME);

...