В чем разница между оператором «||» и функцией concat в Oracle?

Можно ли объяснить разницу междуconcat() функция и|| оператор в Oracle?

Какой из них лучше с точки зрения производительности?

Ответы на вопрос(2)

CONCAT ; функция может работать только с 2 переменными или столбцами, в то время как «concat» Операция может быть выполнена для любого количества переменных или столбцов.

 10 февр. 2014 г., 22:41
На Oracle,this is true.
 17 мая 2014 г., 06:38
CONCAT будет принимать столько входов, сколько вы хотите в MySql.
Решение Вопроса

|| является стандартным оператором объединения строк ANSI (хотя, к сожалению, не каждая база данных<cough>SQL Server</cough> выбирает поддержку стандарта). Многие базы данных поддерживаютCONCAT функция, так что может быть проще портировать код с помощьюCONCAT в разные базы данных.

 10 июл. 2012 г., 00:38
+1 за & lt; кашель & gt; только теги :-)
 10 июл. 2012 г., 00:57
Ну давай на SQL сервере есть эквивалентный оператор+ который так же, какoracle's partial support of ANSI standard functions Функции CHARACTER_LENGTH, OCTET_LENGTH, SUBSTRING или POSITION.
 10 июл. 2012 г., 03:15
Не говоря уже о том, что NULL эквивалентен пустой строке в Oracle.
 10 июл. 2012 г., 00:27
Я знаю только две СУБД, которые не соответствуют стандарту SQL: SQL Server и MySQL. И MySQL может быть по крайней мере настроен на прием|| как оператор конкатенации.
 10 июл. 2012 г., 01:04
@ConradFrix - правда, и я, конечно, не имею в виду, что любая база данных реализует весь стандартный набор функций SQL (кто-то должен будет объяснить, почему это не так легко реализовать).POSITION а такжеSUBSTRING например, вместо того, чтобы документировать, что их не существует, и если бы это был вопрос, я бы с радостью вызвал Oracle). В этом конкретном случае досадно, что SQL Server не соответствует стандарту, потому что практически любая другая база данных это делает, а SQL Server является единственным удерживающим средством, что означает, что вы можете последовательно объединять строки между базами данных.

Ваш ответ на вопрос