DEV Community

Query Filter
Query Filter

Posted on

dump3

94496111
dump2-4gpf

bcp "SELECT *
FROM ${DB_NAME}..${tableName}
WHERE INTERNTIMESTAMP >= dateadd(dd, -45, getdate())" \
queryout "$CUR_DAT_FILE" -c -t"$DELIMITER" \
-S"${SYBASE_SERVER_NAME}" -U"${SYBASE_DB_USER}" -P"${COMET_PSWD}" -I"${INTERFACE}" \
-b 5000 -e "$DATA_FILE_DIRECTORY/${tableName}_error.log"

HAS_TS=$(isql -S${SYBASE_SERVER_NAME} -U${SYBASE_DB_USER} -P${COMET_PSWD} -I${INTERFACE} -b -Q "
select count(*)
from ${DB_NAME}..syscolumns
where id = object_id('${DB_NAME}..${tableName}')
and name = 'INTERNTIMESTAMP'
" | tr -d '[:space:]')

if [ "$HAS_TS" -eq 1 ]; then
echo "Table ${tableName} HAS INTERNTIMESTAMP — exporting last 45 days."

bcp "SELECT * 
       FROM ${DB_NAME}..${tableName}
      WHERE INTERNTIMESTAMP >= dateadd(dd, -45, getdate())" \
    queryout "$CUR_DAT_FILE" -c -t"$DELIMITER" \
    -S"${SYBASE_SERVER_NAME}" -U"${SYBASE_DB_USER}" -P"${COMET_PSWD}" -I"${INTERFACE}" \
    -b 5000 -e "$DATA_FILE_DIRECTORY/${tableName}_error.log"
Enter fullscreen mode Exit fullscreen mode

else
echo "Table ${tableName} DOES NOT have INTERNTIMESTAMP — exporting full table."

bcp "${DB_NAME}..${tableName}" out "$CUR_DAT_FILE" -c -t"$DELIMITER" \
    -S"${SYBASE_SERVER_NAME}" -U"${SYBASE_DB_USER}" -P"${COMET_PSWD}" -I"${INTERFACE}" \
    -b 5000 -e "$DATA_FILE_DIRECTORY/${tableName}_error.log"
Enter fullscreen mode Exit fullscreen mode

fi

BCP_OUT_STATUS=$?

===================

bcp "
declare @sql varchar(5000)

if exists (
select 1
from ${DB_NAME}..syscolumns
where id = object_id('${DB_NAME}..${tableName}')
and name = 'INTERNTIMESTAMP'
)
select @sql = 'select * from ${DB_NAME}..${tableName} where INTERNTIMESTAMP >= dateadd(dd,-45,getdate())'
else
select @sql = 'select * from ${DB_NAME}..${tableName}'

exec(@sql)
" \
queryout "$CUR_DAT_FILE" \
-c -t"$DELIMITER" \
-S"${SYBASE_SERVER_NAME}" -U"${SYBASE_DB_USER}" -P"${COMET_PSWD}" -I"${INTERFACE}" \
-b 5000 -e "$DATA_FILE_DIRECTORY/${tableName}_error.log"

Top comments (0)