Я создаю файл формата «Ragged right» (фиксированный), используя SQL для указания данных для извлечения.
SELECT
'D' AS DTL_REC_TYP
,CAST(CONVERT(VARCHAR, dbo.GetCycleDate(), 120) AS CHAR(10)) AS DTL_FILE_GL_DT
,CAST(CONVERT(VARCHAR, GETDATE(), 120) AS CHAR(19)) AS DTL_FILE_CREATE_DT
,LEGAL_ENTTY_CD AS DTL_LEGAL_ENTITY
,CLIENT_ID AS DTL_CLIENT_ID
,ACCT_NUM AS DTL_ACCT_NUM
,BEN_OPT_CD AS DTL_BEN_OPT_CD
FROM
MyTable
Client_ID - это столбец INT в базе данных.
В: Как получить правильное выравнивание в столбце?
Я собирался изменить свой SQL, чтобы сделать это, но это выглядит ужасно:
,RIGHT('000000000' + CAST(CLIENT_ID As varchar(9)),9) AS DTL_CLIENT_ID
или
,RIGHT(' ' + CAST(CLIENT_ID As varchar(9)),9) AS DTL_CLIENT_ID
Есть ли лучший способ сделать это в SSIS вместо T-SQL. Если нет, есть ли немного лучший способ в T-SQL? Мне кажется, что формат фиксированного плоского файла должен или, по крайней мере, может быть точно определен в SSIS и что SQL.
![enter image description here](https://i.stack.imgur.com/dPJqt.png)