В общем, после нескольких часов пинания встроенного в laravel драйвера sqlsrv, пришел к выводу, что проблема в самом драйвере. Пошел ковырять и искать решения для работы через odbc и нашел такой пакет:
techscope/laravel-sqlserver
При установке композером возникает ошибка, мол не установлен ext-odbc, установил командой (ubuntu)
sudo apt update && sudo apt install unixodbc php7.2-odbc
Далее, у меня проблема осталась, но ext-odbc точно установился ,т.к. выводился в списке подклчюенных. Списал на багулю пакета и установил командой
composer require techscope/laravel-sqlserver:dev-master --ignore-platform-reqs
После поправил в config/database.php секцию sqlsrv, добавив
/* ... */
'sqlsrv' => [
...
'odbc_driver' => '{ODBC Driver 17 for SQL Server}',
'TrustServerCertificate' => 'yes',
...
],
/* ... */
Значение для `odbc_driver` смотрим командой
head -1 /etc/odbcinst.ini
То, что в квадратных скобках пихаем в конфиге в фигурные.
Ну и добавить провайдер в donfig/app.php не забываем.
После проделанных манипуляций удалось выполнить целиком весь запрос в DB::select():
test = DB::select("declare @Entity int, @CompName varchar(250)
exec [foo].[prcBar] 'testlogin', 'testpass', @Entity output, @CompName output
select @Entity as entity, @CompName as comp_name
");
Важный момент - надо явно указать в выборке значения `@Var as col_name` иначе в массиве будет 1 элемент с пустым ключом и последним значением