Условный выбор, если существует - PullRequest
0 голосов
/ 27 декабря 2018

Я хотел бы иметь SQL-код для проверки, если существует таблица [grlf_lig], а не поля выбора, как я могу это сделать на informix?

Я использую код sheel для проверки, но он медленный, потому что он медленныйЯ должен записывать файлы на диск и делать проверки.

dbaccess sysmaster <<EOF  > /dev/null 2> /dev/null
set isolation to dirty read;
unload  to '$TMPFILE' delimiter "|"
select x0.sid,
x0.username,
x0.hostname,
x1.sqs_dbname,
dbinfo("UTC_TO_DATETIME",x0.connected) AS conn_dt
from
sysmaster:"informix".syssessions x0,
sysmaster:"informix".syssqlstat x1,
sysmaster:"informix".sysnetworkio n
where ( x0.sid = x1.sqs_sessionid ) and hostname is not NULL  and 
trim(hostname) <> ''
and trim(hostname) <> '-' AND sqs_dbname NOT LIKE 'sys%' AND sqs_dbname <> 
'-' AND n.sid = x0.sid
EOF

for I in `cat $TMPFILE`; do

 SID=`echo $I | awk -F'|' '{print $1}'`
 BD=`echo $I | awk -F'|' '{print $4}'`
 echo "" > $FILE
 dbaccess $BD <<EOF  > /dev/null 2> /dev/null
 set isolation to dirty read;
 unload to "$FILE" delimiter '|'
 select first 1 sid_f_lig, max(dtlogin_f_lig), winuser_f_lig, tty_f_lig, 
 cod_capli from grlf_lig where
 ( sid_f_lig = '$SID' and dtlogout_f_lig is null )
 group by  sid_f_lig, winuser_f_lig, tty_f_lig, cod_capli
 EOF

 if [ -s $FILE ]; then
    cat $FILE >> $FILE1
 fi
 done

Я хотел бы получить результаты быстро, потому что получение результатов занимает много времени.

...