В Oracle (+) обозначает «необязательную» таблицу в JOIN.Таким образом, в вашем запросе
SELECT a.id, b.id, a.col_2, b.col_2, ...
FROM a,b
WHERE a.id=b.id(+)
это левое внешнее соединение таблицы 'b' с таблицей 'a'.Он вернет все данные таблицы «а» без потери данных, когда другая сторона (необязательная таблица «б») не имеет данных.
Современный стандартный синтаксис для того же запроса будет
SELECT a.id, b.id, a.col_2, b.col_2, ...
FROM a
LEFT JOIN b ON a.id=b.id
или с сокращением для a.id=b.id
(поддерживается не всеми базами данных):
SELECT a.id, b.id, a.col_2, b.col_2, ...
FROM a
LEFT JOIN b USING(id)
Если удалить (+)тогда это будет обычный запрос внутреннего соединения
Более старый синтаксис в Oracle и других базах данных:
SELECT a.id, b.id, a.col_2, b.col_2, ...
FROM a,b
WHERE a.id=b.id
Более современный синтаксис:
SELECT a.id, b.id, a.col_2, b.col_2, ...
FROM a
INNER JOIN b ON a.id=b.id
Или просто:
SELECT a.id, b.id, a.col_2, b.col_2, ...
FROM a
JOIN b ON a.id=b.id
Он будет возвращать все данные только в том случае, если оба значения идентификаторов таблиц a и b одинаковы, что означает общую часть.
Если вы хотите сделать свой запрос правым соединением
Это то же самое, что левое соединение, но переключает, какая таблица является необязательной.
Старый синтаксис Oracle:
SELECT a.id, b.id, a.col_2, b.col_2, ...
FROM a,b
WHERE a.id(+)=b.id
Современный стандартный синтаксис:
SELECT a.id, b.id, a.col_2, b.col_2, ...
FROM a
RIGHT JOIN b ON a.id=b.id
Справка и справка:
https://asktom.oracle.com/pls/asktom/f?p=100:11:::::P11_QUESTION_ID:6585774577187
Левое внешнее объединение с использованием знака + в Oracle 11g
https://www.w3schools.com/sql/sql_join_left.asp