|
1304 / 358 / 97
Регистрация: 14.10.2022
Сообщений: 1,087
|
||||||
Как создать fmt файл на основе вызова хранимой процедуры?18.09.2025, 14:56. Показов 924. Ответов 13
Метки нет (Все метки)
Коллеги, приветствую!
Есть проблема. В одной их подшефных БД имеется прядка 200 хранимых процедур. Все они вызываются однотипно, и организовать выгрузку данных нет проблем. Генерирую по названию API такие команды:
Проблемы начинаются потом. Дело в том, что эти API возвращают чуть-чуть разный результат, в смысле состава данных (да, примерно одинаковый, но нет, слегка разный). Мне нужно сгенерировать fmt файлы для всех этих 200 хранимок. И нет, sys.dm_exec_describe_first_result_set - не поможет, потому что в некоторых, чуть менее чем всех, хранимках используются временные таблицы. Какие есть соображения?
0
|
||||||
| 18.09.2025, 14:56 | |
|
Ответы с готовыми решениями:
13
Как создать отчет (форму) в Access на основе хранимой процедуры с параметрами Вставка тела хранимой процедуры вместо вызова по имени Вызов процедуры из хранимой процедуры |
|
868 / 528 / 148
Регистрация: 03.02.2013
Сообщений: 1,845
|
||||||
| 18.09.2025, 15:30 | ||||||
|
через промежуточную таблицу пробовал?
0
|
||||||
|
1304 / 358 / 97
Регистрация: 14.10.2022
Сообщений: 1,087
|
||
| 18.09.2025, 15:59 [ТС] | ||
|
The metadata could not be determined because statement 'insert #tDS_C (DS) Т.е. внутри хранимки есть вставка во временную таблицу.
0
|
||
|
668 / 291 / 120
Регистрация: 12.04.2022
Сообщений: 1,000
|
||
| 19.09.2025, 08:05 | ||
|
BCP Global temporary table data - Unable to create format file and export data
0
|
||
|
1304 / 358 / 97
Регистрация: 14.10.2022
Сообщений: 1,087
|
||
| 19.09.2025, 12:16 [ТС] | ||
|
Задача в том, что у меня есть под 1000 (уже, как выяснилось), ХП, которые вызываются однотипно, но возвращают немного разные по форме resultset-ы. Мне нужно выгружать результаты всех csv, и потом - загрузить на других серверах. (Для этого нужен SSIS, но что есть, то есть). Выгрузить очень просто. bcp, и никаких проблем. А вот чтобы ЗАгрузить - нужна информация о составе выгруженного. Собственно, я думал, что всё можно решить через sys.dm_exec_describe_first_result_set, а фот фиг. Пока попросил Дипсик написать мне на пауэршелл скрипт, который вызывает ХП по списку, подключившись через клиента, а потом описывает NET-овский resultset. Типы там, получаются NET-овские, но хотя бы так.
0
|
||
|
74 / 18 / 6
Регистрация: 18.01.2025
Сообщений: 83
|
|
| 19.09.2025, 12:46 | |
|
Можно еще попробовать вот этот инструмент задействовать наверное: SQL Server Integration Services (SSIS). Или его и так планируется использовать?
0
|
|
|
|
||||||||||||
| 19.09.2025, 15:32 | ||||||||||||
1
|
||||||||||||
|
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
|
|
| 19.09.2025, 20:53 | |
|
bcp умеет создавать fmt-файл
https://learn.microsoft.com/ru... bs=non-xml
1
|
|
|
1304 / 358 / 97
Регистрация: 14.10.2022
Сообщений: 1,087
|
||||||
| 20.09.2025, 23:22 [ТС] | ||||||
|
Неа. В данном случае - не умеет.
По всей видимости, проблему создают те же временные таблицы внутри ХП. Вот что получаю:
0
|
||||||
|
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
|
||
| 21.09.2025, 08:32 | ||
|
0
|
||
|
1304 / 358 / 97
Регистрация: 14.10.2022
Сообщений: 1,087
|
|
| 21.09.2025, 09:17 [ТС] | |
|
Ненене!
Во первых, это, что называется, "не в моей власти". Во вторых, это убьет производительность напрочь. Там во времяшки иногда миллионы записей сохраняются, сначала по select into, а потом по ним индексы строятся. Или ты имеешь ввиду, временно создать клон ХП, запустить bcp на создание fmt, а потом прибить? Ну... это очень вычурно... Надо подумать как :-)))
0
|
|
|
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
|
|
| 21.09.2025, 11:45 | |
|
0
|
|
|
1304 / 358 / 97
Регистрация: 14.10.2022
Сообщений: 1,087
|
|
| 23.09.2025, 09:02 [ТС] | |
|
invm, неа. не выйдет так.
Там постоянно select into используется. а into в переменную не сделать. Нужно ее сначала создать, с необходимым набором полей. ... и мы опять возвращаемся к получению набора полей.
0
|
|
|
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
|
|
| 23.09.2025, 12:08 | |
|
0
|
|
| 23.09.2025, 12:08 | |
|
Помогаю со студенческими работами здесь
14
Создание хранимой процедуры, которая создает хранимые процедуры Создание и вызов хранимой процедуры
Вызов хранимой процедуры Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
|
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|