Сохранить вложение из потока и получить исходные байты

Результат настоящих запросов через PDO_ODBC. Собственные учебные объекты после наблюдений удалены.

Результат выполнения
НаблюдениеРезультат
Вложениеdocument: 22 байт
Точные байты4F44424331373800FF0D0A6174746163686D656E740A
Пустое вложениеempty: SQL NOT NULL, 0 байт
Отсутствующее вложениеmissing: SQL NULL
Обычный fetchVARBINARY получен как hex-текст
Файлattachment.bin: байты совпали с source.bin
Полученные строки и наблюдения
{
    "states": [
        {
            "id": "1",
            "label": "document",
            "is_missing": "0",
            "byte_length": "22"
        },
        {
            "id": "2",
            "label": "empty",
            "is_missing": "0",
            "byte_length": "0"
        },
        {
            "id": "3",
            "label": "missing",
            "is_missing": "1",
            "byte_length": null
        }
    ],
    "default_representation": "hex_text",
    "default_php_type": "string",
    "bytes": 22,
    "sha256": "959ae3e4ef5e1607b4f2c281bec5f90c58220b180f7d8a4ffa0ab7e88eb4a147",
    "hex": "4F44424331373800FF0D0A6174746163686D656E740A",
    "sql_hex_matches_default": true
}

result.json содержит те же данные. Реквизиты входа сюда не записываются.