[ОТВЕТИТЬ]
Опции темы
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, время: 13:15.

Все в прочитанное - Календарь - RSS - - Карта - Вверх 👫 Яндекс.Метрика
Форум сделан на основе vBulletin®
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd. Перевод: zCarot и OlegON
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.