Запрос OpenRowSet не возвращает результатов

#sql #sql-server #format #openrowset

#sql #sql-сервер #формат #openrowset

Вопрос:

Я хочу выбрать определенные значения из таблицы в SQL, используя значения в текстовом файле. Мой запрос заключается в следующем:

 select * from hsi.itemdata i join openrowset (
bulk 'C:text.txt',
FORMATFILE = 'C:format.txt'
) d on i.itemnum = d.dochandle
  

Мой текстовый файл содержит значения, которые определенно находятся в таблице hsi.itemdata. Вот скриншот таблицы с моим text.txt файл рядом с ним:
таблица hsi.itemdata с text.txt файл

Мой файл формата кажется правильным:

 10.0
1
1   SQLBIGINT   0   12  "n"    1   DocHandle   SQL_Latin1_General_CP1_CI_AS
  

Единственная проблема, которую я смог увидеть, заключается в том, что столбец i.itemnum является типом данных INT, и когда я попытался указать в своем файле формата столбец как SQLINT, я получил сообщение об ошибке «Ошибка преобразования данных при массовой загрузке (переполнение) для строки 1, столбца 1 (DocHandle)».

Проблема, с которой я сталкиваюсь, заключается в том, что когда я запускаю запрос, я не получаю результатов, и я не могу понять, почему это так. Я бы ожидал, что он вернет строки из таблицы hsi.itemdata, где информация соответствует тому, что находится в text.txt файл. Есть идеи?

Спасибо!

Комментарии:

1. И select * from openrowset( ... возвращает то, что вы думаете?

2. @Alex-k Если я просто запускаю select * from openrowset ( bulk 'C:text.txt', FORMATFILE = 'C:format.txt' ) , я получаю сообщение об ошибке: «Имя корреляции должно быть указано для массового набора строк в предложении from».