2017-01-10 8 views
0

У меня есть хранимая процедура, которая запрашивает связанную таблицу базы данных DB2. Запроса одна большая строка, хотя, например, так:Обрезать результаты запроса DB2

SET @sql = 'SELECT * FROM openquery(TRAP_DB2, ''SELECT...'')' 

exec sp_executesql @sql 

Проблема заключается в том, что результаты возвращают кучу белого пространства, потому что очевидно, что люди DB2 используются CHAR вместо VARCHAR, заставляя столбцы быть определенной длиной ,

Как я могу обрезать результаты моего запроса, чтобы он не возвращал лишнее пустое пространство?

ответ

1

Согласно DB2 Documentation вам нужно функцию TRIM:

>>-TRIM--(--+---------------------------------------+--string-expression--)->< 
      | .-BOTH-----.       |       
      '-+----------+--+---------------+--FROM-'       
       +-B--------+ '-trim-constant-'         
       +-LEADING--+              
       +-L--------+              
       +-TRAILING-+              
       '-T--------' 

Так что в вашем случае:

SELECT TRIM(<Your Field Name Here>) 
FROM <Your Table Here> 
+0

Да, я пробовал, и, к сожалению, кажется, ошибка разрешения какого-либо вида потому что он не работает. Невозможно получить информацию о столбцах от поставщика OLE DB «IBMDADB2.DB2COPY1» для связанного сервера «TRAP_DB2». – blacksaibot

+0

@blacksaibot Подробная информация о том, что вы уже пробовали, и проблемы, с которыми вы сталкиваетесь, очень полезны людям, которые пытаются помочь вам в решении вашей проблемы. Пожалуйста, добавьте эти данные на свой вопрос, а также любые другие вокруг вашей ситуации. – iamdave