У меня файл фиксированной ширины, созданный с помощью скрипта BTEQ в Unix.Я могу правильно рассчитать длину для всех полей, пока поле не будет иметь какое-либо значение.
В скрипте BTEQ:
SELECT RPAD(COALESCE(SSO_ID,''),50,' ')||
RPAD(COALESCE(GENERIC4,''),100,' ')||
RPAD(COALESCE(GENERIC5,''),100,' ')||
RPAD(COALESCE(GENERIC6,''),100,' ')||
RPAD(COALESCE(GENERIC7,''),100,' ')||
RPAD(COALESCE(GENERIC8,''),100,' ')||
RPAD(COALESCE(GENERIC9,''),100,' ')||
RPAD(COALESCE(GENERIC10,''),100,' ')
FROM <view_name>
FILENM - это выходной файл, созданный с помощью вышеуказанного скрипта BTEQ:
LENGTH_SSO_ID=`cat $FILENM | grep 57080249 |cut -c1361-1410| tr " " "~" | wc -c`
LENGTH_GENERIC4=`cat $FILENM | grep 57080249 |cut -c1711-1810| tr " " "~" | wc -c`
LENGTH_GENERIC5=`cat $FILENM | grep 57080249 cut -c1811-1910| tr " " "~" | wc -c`
LENGTH_GENERIC6=`cat $FILENM | grep 57080249 cut -c1911-2010| tr " " "~" | wc -c`
LENGTH_GENERIC7=`cat $FILENM | grep 57080249 cut -c2011-2110| tr " " "~" | wc -c`
LENGTH_GENERIC8=`cat $FILENM | grep 57080249 cut -c2111-2210| tr " " "~" | wc -c`
LENGTH_GENERIC9=`cat $FILENM | grep 57080249 |cut -c2211-2310| tr " " "~" | wc -c`
LENGTH_GENERIC10=`cat $FILENM | grep 57080249 |cut -c2311-2410| tr " " "~" | wc -c`
Это вывод, который я получаю, в идеале я должен получить длину 100 для каждого столбца GENERIC.
LENGTH of SSO_ID=50
LENGTH of GENERIC4=5
LENGTH of GENERIC5=0
LENGTH of GENERIC6=0
LENGTH of GENERIC7=0
LENGTH of GENERIC8=0
LENGTH of GENERIC9=0
LENGTH of GENERIC10=0
Пожалуйста, сообщите, почему он дает неправильную длину для столбцов, которыевсегда иметь пробелы и встречаться в конце записи.