Форум OlegON > Ресурсы OlegON > Вопросы сервера > Программы OlegON

Скрипт для экспорта заказов : Программы OlegON

23.04.2024 16:07


02.05.2008 19:54
OlegON
 
Для выполнения нужен iconv (у меня локаль UTF8):
Код:
#!/bin/bash

OUT=/home/kulabukhov/exchange/
CLIENT=100095

TNS_ADMIN=/opt; export TNS_ADMIN
ORACLE_SID=TABERCO; export ORACLE_SID
NLS_LANG=AMERICAN_AMERICA.CL8MSWIN1251; export NLS_LANG
CNT=`cat cnt`

echo 'SET LINESIZE 1200'>rep.sql
echo 'SET PAGESIZE 0'>>rep.sql
echo 'SET FEEDBACK OFF'>>rep.sql
echo 'SET ECHO OFF'>>rep.sql
echo 'SET VERIFY OFF'>>rep.sql
echo 'SET PAUSE OFF'>>rep.sql
echo 'SET TRIMSPOOL OFF'>>rep.sql
echo "select distinct l.id from smdoclog l,smdocuments d where l.doctype='OR' and l.newstate=2 and d.clientindex="$CLIENT" and d.doctype='OR' and d.id=l.id and recid >"$CNT";">>rep.sql
echo 'exit;'>>rep.sql
sqlplus -s 'supermag/qqq@TABERCO' @rep>out.txt

echo 'SET LINESIZE 1200'>rep.sql
echo 'SET PAGESIZE 0'>>rep.sql
echo 'SET FEEDBACK OFF'>>rep.sql
echo 'SET ECHO OFF'>>rep.sql
echo 'SET VERIFY OFF'>>rep.sql
echo 'SET PAUSE OFF'>>rep.sql
echo 'SET TRIMSPOOL OFF'>>rep.sql
echo 'select max(recid) from smdoclog;'>>rep.sql
echo 'exit;'>>rep.sql
CNT=`sqlplus -s 'supermag/qqq@TABERCO' @rep`

cat out.txt | while read line
do
NAME=$line
FIL=`echo $line | iconv -f CP1251 -t UTF8`
echo 'SET LINESIZE 1200'>rep.sql
echo 'SET PAGESIZE 0'>>rep.sql
echo 'SET FEEDBACK OFF'>>rep.sql
echo 'SET ECHO OFF'>>rep.sql

echo 'SET VERIFY OFF'>>rep.sql
echo 'SET PAUSE OFF'>>rep.sql
echo 'SET TRIMSPOOL OFF'>>rep.sql
echo "select to_char(createdat,'dd.mm.yyyy')||';'||opcode||';'||userop||';'||location||';'||totalsum||';'||commentary||';'||chr(13) from smdocuments where doctype='OR' and id='"$NAME"';">>rep.sql
echo 'exit;'>>rep.sql
HDR=`sqlplus -s 'supermag/qqq@TABERCO' @rep`
echo $HDR>$OUT$FIL

echo 'SET LINESIZE 1200'>rep.sql
echo 'SET PAGESIZE 0'>>rep.sql
echo 'SET FEEDBACK OFF'>>rep.sql
echo 'SET ECHO OFF'>>rep.sql
echo 'SET VERIFY OFF'>>rep.sql
echo 'SET PAUSE OFF'>>rep.sql
echo 'SET TRIMSPOOL OFF'>>rep.sql
echo "select distinct s.specitem||';'||(select barcode from smstoreunits f where f.article=s.article and rownum=1)||';'||s.article||';'||c.name||';'||s.quantity||';'||s.itemprice||';'||s.totalprice||';'||chr(13) from smspec s, smstoreunits u, smcard c where s.docid='"$NAME"' and s.doctype='OR' and s.article=u.article and s.article=c.article;">>rep.sql
echo 'exit;'>>rep.sql
sqlplus -s 'supermag/qqq@TABERCO' @rep>>$OUT$FIL
echo $FIL
done

rm sqlnet.log
rm rep.sql
echo $CNT>cnt
Часовой пояс GMT +3, время: 16:07.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.