You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
108 lines
2.6 KiB
108 lines
2.6 KiB
2 years ago
|
#!/bin/bash
|
||
|
|
||
|
#-----------------------------
|
||
|
# Shell-Kommando "DOQUERY"
|
||
|
#-----------------------------
|
||
|
|
||
|
#-------------------------------------------------------------------
|
||
|
# Shellvariablen setzen und eingegebene SQL-Anweisung (als Parameter)
|
||
|
# in der SuperX-Datenbank ausfuehren.
|
||
|
#-------------------------------------------------------------------
|
||
|
|
||
|
|
||
|
#. $SUPERX_DIR/db/bin/SQL_ENV
|
||
|
if [ "$1" = "" ]
|
||
|
then echo "Aufruf: DOQUERY <sql-Anweisung> <header (true|false)>(optional) <Delimiter>(optional) <Ausgabedatei>(optional) <format (txt|xml)>(optional)"
|
||
|
echo " "
|
||
|
echo "Aktion: DOQUERY führt die <sql-Anweisung> aus."
|
||
|
echo "Das Ergebnis kann mit Feldnamen (<header=true>) oder speziellem Format in eine Datei <Ausgabedatei> ausgegeben werden"
|
||
|
echo " "
|
||
|
exit 0
|
||
|
fi
|
||
|
|
||
|
sql=$1
|
||
|
header=$2
|
||
|
delim=$3
|
||
|
|
||
|
if [ "$delim" != "" ]
|
||
|
then DBDELIMITER="$delim"
|
||
|
fi
|
||
|
filename=$4
|
||
|
|
||
|
outformat=$5
|
||
|
|
||
|
if [ "$outformat" = "xml" ]
|
||
|
then SX_CLIENT="jdbc"
|
||
|
else
|
||
|
outformat="txt"
|
||
|
fi
|
||
|
|
||
|
if [ "$LANG" != "" ]
|
||
|
then LOCALE="-Duser.language=$LANG"
|
||
|
fi
|
||
|
if $CYGWIN; then
|
||
|
if [ "$filename" != "" ]
|
||
|
then
|
||
|
filename=`cygpath --path --windows "$filename"`
|
||
|
fi
|
||
|
CP=".;$JDBC_CLASSPATH;$XML_CLASSPATH"
|
||
|
IFX=`cygpath --path --windows "$SUPERX_DIR/db/conf/unldescr_informix_load.xml"`
|
||
|
PG=`cygpath --path --windows "$SUPERX_DIR/db/conf/unldescr_postgres_copy.xml"`
|
||
|
|
||
|
else
|
||
|
|
||
|
#outpfad="$filename"
|
||
|
CP=".:$JDBC_CLASSPATH:$XML_CLASSPATH"
|
||
|
IFX="$SUPERX_DIR/db/conf/unldescr_informix_load.xml"
|
||
|
PG="$SUPERX_DIR/db/conf/unldescr_postgres_copy.xml"
|
||
|
|
||
|
fi
|
||
|
|
||
|
case $SX_CLIENT in
|
||
|
|
||
|
jdbc)
|
||
|
java $LOCALE -cp "$CP" $JAVA_OPTS de.superx.bin.Doquery $LOGGER_PROPERTIES $DB_PROPERTIES "$sql" "$outformat" "$DBDELIMITER" $header $filename
|
||
|
|
||
|
;;
|
||
|
psql)
|
||
|
if [ "$header" != "true" ]
|
||
|
then
|
||
|
tuples_only='-t'
|
||
|
fi
|
||
|
|
||
|
if [ "$filename" = "" ]
|
||
|
then
|
||
|
#echo "$sql"
|
||
|
psql --dbname $DBNAME -c "$sql" $tuples_only -P fieldsep="$DBDELIMITER" -P pager=off
|
||
|
|
||
|
else
|
||
|
#Wir benutzen postgres copy nicht mehr, weil die Dateien vom User Postgres erzeugt werden.
|
||
|
#Wenn das trotzdem gewünscht ist, muss dr folgende Passus ent-kommentiert werden
|
||
|
#psql --dbname $DBNAME -P fieldsep="$DBDELIMITER" -c "$sql" $tuples_only -o $filename
|
||
|
java $LOCALE -cp "$CP" $JAVA_OPTS de.superx.bin.Doquery $LOGGER_PROPERTIES $DB_PROPERTIES "$sql" "txt" "$DBDELIMITER" $header $filename
|
||
|
|
||
|
|
||
|
fi
|
||
|
|
||
|
;;
|
||
|
dbaccess)
|
||
|
|
||
|
tmpfilename="tmp"$MANDANTID.sql
|
||
|
|
||
|
echo "$sql" >$tmpfilename
|
||
|
|
||
|
if [ "$filename" = "" ]
|
||
|
then
|
||
|
echo "$INFORMIXDIR/bin/dbaccess $DBNAME"
|
||
|
$INFORMIXDIR/bin/dbaccess $DBACCESS_PARAMS $DBNAME $tmpfilename
|
||
|
else
|
||
|
echo "$INFORMIXDIR/bin/dbaccess $DBNAME"
|
||
|
$INFORMIXDIR/bin/dbaccess $DBACCESS_PARAMS $DBNAME $tmpfilename >$filename 2>&1
|
||
|
|
||
|
|
||
|
fi
|
||
|
rm $tmpfilename
|
||
|
;;
|
||
|
esac
|
||
|
|