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.
143 lines
3.7 KiB
143 lines
3.7 KiB
2 years ago
|
#!/bin/bash
|
||
|
|
||
|
#-----------------------------
|
||
|
# Shell-Kommando "DOSQL"
|
||
|
#-----------------------------
|
||
|
|
||
|
#-------------------------------------------------------------------
|
||
|
# Shellvariablen setzen und SQL-Anweisung(en) aus Datei
|
||
|
# in der SuperX-Datenbank ausfuehren.
|
||
|
#-------------------------------------------------------------------
|
||
|
#13.12.07 DQ Freemarker-Parsing auch mandantenfähig
|
||
|
#9.12.06 MB Erweiterung für Freemarker-Parsing
|
||
|
if [ "$1" = "" ]
|
||
|
then echo "Aufruf: DOSQL <Dateiname> <header (true|false)>(optional) <Ausgabedatei> (optional)"
|
||
|
echo " "
|
||
|
echo "Aktion: DOSQL führt die Kommandos in der Datei <Dateiname> aus."
|
||
|
echo "Das Ergebnis kann mit Feldnamen (<header=true>) in eine Datei <Ausgabedatei> ausgegeben werden"
|
||
|
echo " "
|
||
|
exit 0
|
||
|
fi
|
||
|
#. $SUPERX_DIR/db/bin/SQL_ENV
|
||
|
filename="$1"
|
||
|
header=$2
|
||
|
outfile=$3
|
||
|
|
||
|
fgrep -i -s "freemarker template" $filename > /dev/null
|
||
|
FLAG1=$?
|
||
|
fgrep -i -s "FREEMARKER TEMPLATE" $filename > /dev/null
|
||
|
FLAG2=$?
|
||
|
|
||
|
orgfilename="$filename"
|
||
|
tmpfilename="$filename"$MANDANTID.tmp$MANDANTENID.sql
|
||
|
if [ $FLAG1 -eq 0 -o $FLAG2 -eq 0 ]
|
||
|
then
|
||
|
rm -f $tmpfilename
|
||
|
|
||
|
case $JDBC_CLASSPATH in
|
||
|
*freemarker*)
|
||
|
;;
|
||
|
*)
|
||
|
if $CYGWIN; then
|
||
|
MY_PATH=`cygpath --path --windows "$SUPERX_DIR/webserver/tomcat/webapps/superx/WEB-INF/lib/freemarker.jar"`
|
||
|
JDBC_CLASSPATH="$JDBC_CLASSPATH;$MY_PATH"
|
||
|
echo "$JDBC_CLASSPATH"
|
||
|
else
|
||
|
JDBC_CLASSPATH=$JDBC_CLASSPATH:$SUPERX_DIR/webserver/tomcat/webapps/superx/WEB-INF/lib/freemarker.jar
|
||
|
fi
|
||
|
;;
|
||
|
esac
|
||
|
if $CYGWIN; then
|
||
|
tmpfilename=`cygpath --path --windows "$tmpfilename"`
|
||
|
fi
|
||
|
|
||
|
#Anlegen einer temp. Kopie filename.tmp$MANDANTENID.sql
|
||
|
java -cp $JDBC_CLASSPATH $JAVA_OPTS de.superx.bin.FMParser -dbproperties:$DB_PROPERTIES -in:$filename -out:$tmpfilename
|
||
|
if [ ! -f $tmpfilename ]
|
||
|
then
|
||
|
echo "Error : DOSQL abgebrochen"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
filename="$tmpfilename"
|
||
|
fi
|
||
|
|
||
|
fgrep -i -s "<xupdate>" $filename > /dev/null
|
||
|
FLAG1=$?
|
||
|
if [ $FLAG1 -eq 0 ]
|
||
|
then
|
||
|
if $CYGWIN; then
|
||
|
filename=`cygpath --path --windows "$filename"`
|
||
|
outfile=`cygpath --path --windows "$outfile"`
|
||
|
CP=".;$JDBC_CLASSPATH;$XML_CLASSPATH"
|
||
|
else
|
||
|
CP=".:$JDBC_CLASSPATH:$XML_CLASSPATH"
|
||
|
fi
|
||
|
if [ "$LANG" != "" ]
|
||
|
then LOCALE="-Duser.language=$LANG"
|
||
|
fi
|
||
|
java $LOCALE -cp $CP $JAVA_OPTS de.superx.bin.Dosql -logger:$LOGGER_PROPERTIES -dbproperties:$DB_PROPERTIES -sqlfile:"$filename" -outFormat:"txt" -delim:$DBDELIMITER -header:$header -outfile:$outfile
|
||
|
|
||
|
else
|
||
|
case $SX_CLIENT in
|
||
|
|
||
|
jdbc)
|
||
|
if $CYGWIN; then
|
||
|
filename=`cygpath --path --windows "$filename"`
|
||
|
outfile=`cygpath --path --windows "$outfile"`
|
||
|
CP=".;$JDBC_CLASSPATH;$XML_CLASSPATH"
|
||
|
else
|
||
|
CP=".:$JDBC_CLASSPATH:$XML_CLASSPATH"
|
||
|
fi
|
||
|
if [ "$LANG" != "" ]
|
||
|
then LOCALE="-Duser.language=$LANG"
|
||
|
fi
|
||
|
java $LOCALE -cp $CP $JAVA_OPTS de.superx.bin.Dosql -logger:$LOGGER_PROPERTIES -dbproperties:$DB_PROPERTIES -sqlfile:"$filename" -outFormat:"txt" -delim:$DBDELIMITER -header:$header -outfile:$outfile
|
||
|
|
||
|
;;
|
||
|
psql)
|
||
|
if [ "$header" != "true" ]
|
||
|
then
|
||
|
tuples_only='-t'
|
||
|
fi
|
||
|
|
||
|
if [ "$outfile" = "" ]
|
||
|
then
|
||
|
psql --dbname $DBNAME -f $filename $tuples_only
|
||
|
|
||
|
else
|
||
|
echo "Ergebnis mit Fieldsep $DBDELIMITER klappt mit psql noch nicht"
|
||
|
echo "Bitte benutzen Sie SX_CLIENT=jdbc"
|
||
|
psql --dbname $DBNAME -P fieldsep="$DBDELIMITER" -f $filename $tuples_only -o $outfile
|
||
|
|
||
|
fi
|
||
|
|
||
|
;;
|
||
|
dbaccess)
|
||
|
if [ "$header" = "true" ]
|
||
|
then
|
||
|
echo "Mit dbaccess ist kein Export der Feldnamen möglich"
|
||
|
exit 0
|
||
|
fi
|
||
|
|
||
|
if [ "$outfile" = "" ]
|
||
|
then
|
||
|
$INF_BIN/dbaccess $DBACCESS_PARAMS $DBNAME $filename
|
||
|
else
|
||
|
$INF_BIN/dbaccess $DBACCESS_PARAMS $DBNAME $filename >$outfile
|
||
|
fi
|
||
|
|
||
|
;;
|
||
|
hsql)
|
||
|
java -Xmx300M -cp .:$JDBC_CLASSPATH org.hsqldb.util.ScriptTool -database joolap -user admin -password ???? -script $filename
|
||
|
esac
|
||
|
fi
|
||
|
|
||
|
if [ -f $tmpfilename -a "$FM_DEBUG" == "" ]
|
||
|
then
|
||
|
echo
|
||
|
#Zum Debuggen auskommentieren:
|
||
|
rm -f "$tmpfilename"
|
||
|
fi
|
||
|
|