mirror of https://github.com/sipwise/kamailio.git
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.
104 lines
2.6 KiB
104 lines
2.6 KiB
#!/bin/sh
|
|
#
|
|
# control tool for maintaining Kamailio
|
|
#
|
|
#===================================================================
|
|
|
|
##### ----------------------------------------------- #####
|
|
### ORACLE specific variables and functions
|
|
#
|
|
SESSOPT="set term off feed 0 lin 8000 pages 50000 ver off colsep '|'
|
|
col count(*) jus l format 'tm'
|
|
alter session set nls_date_format='DD-MM-RR HH24:MI:SS';
|
|
"
|
|
|
|
##### ----------------------------------------------- #####
|
|
### load SQL base
|
|
#
|
|
if [ -f "$MYLIBDIR/kamctl.sqlbase" ]; then
|
|
. "$MYLIBDIR/kamctl.sqlbase"
|
|
else
|
|
echo "Cannot load SQL core functions '$MYLIBDIR/kamctl.sqlbase' - exiting ..."
|
|
exit -1
|
|
fi
|
|
|
|
if [ -f "$MYLIBDIR/kamdbfunc.oracle" ]; then
|
|
. "$MYLIBDIR/kamdbfunc.oracle"
|
|
else
|
|
echo "Cannot load ORACLE core functions '$MYLIBDIR/kamdbfunc.oracle' - exiting ..."
|
|
exit -1
|
|
fi
|
|
|
|
##### ----------------------------------------------- #####
|
|
### binaries
|
|
if [ -z "$SQLPLUS" ] ; then
|
|
locate_tool sqlplus
|
|
if [ -z "$TOOLPATH" ] ; then
|
|
echo "error: 'sqlplus' tool not found: set SQLPLUS variable to correct tool path"
|
|
exit
|
|
fi
|
|
SQLPLUS="$TOOLPATH"
|
|
export SQLPLUS
|
|
fi
|
|
|
|
if [ -z "$KAMAILIO_ORASEL" ] ; then
|
|
locate_tool kamailio_orasel
|
|
if [ -n "$TOOLPATH" ] ; then
|
|
KAMAILIO_ORASEL="$TOOLPATH"
|
|
export KAMAILIO_ORASEL
|
|
fi
|
|
fi
|
|
|
|
##### ----------------------------------------------- #####
|
|
|
|
# input: sql query, optional sqlplus command-line params
|
|
oracle_query() {
|
|
# if password not yet queried, query it now
|
|
prompt_oracle_pw rw
|
|
mdbg "oracle_query: $SQLPLUS $2 -S -L -R 3 $DBRWUSER@$DBNAME '$1'"
|
|
RC=`echo "$SESSOPT $1" | $SQLPLUS $2 -S -L -R 3 ${DBRWUSER}/${DBRWPW}@${DBNAME}`
|
|
RE=$?
|
|
echo "$RC"
|
|
if [ $RE -eq 0 ]; then
|
|
echo "$RC" | $EGREP -qi "error"
|
|
if [ $? -eq 0 ]; then RE=1; fi
|
|
fi
|
|
if [ $RE -eq 0 ]; then
|
|
echo "$RC" | $EGREP -q "ORA-[0-9]"
|
|
if [ $? -eq 0 ]; then RE=1; fi
|
|
fi
|
|
return $RE
|
|
}
|
|
|
|
# input: sql query, optional sqlplus command-line params
|
|
oracle_ro_query() {
|
|
# if password not yet queried, query it now
|
|
prompt_oracle_pw ro
|
|
if [ -z "$KAMAILIO_ORASEL" ]; then
|
|
mdbg "oracle_ro_query: $SQLPLUS $2 -S -L -R 3 $DBROUSER@$DBNAME '$1'"
|
|
RC=`echo "$SESSOPT $1" | $SQLPLUS $2 -S -L -R 3 ${DBROUSER}/${DBROPW}@${DBNAME}`
|
|
RE=$?
|
|
echo "$RC"
|
|
if [ $RE -eq 0 ]; then
|
|
echo "$RC" | $EGREP -qi "error"
|
|
if [ $? -eq 0 ]; then RE=1; fi
|
|
fi
|
|
if [ $RE -eq 0 ]; then
|
|
echo "$RC" | $EGREP -q "ORA-[0-9]"
|
|
if [ $? -eq 0 ]; then RE=1; fi
|
|
fi
|
|
return $RE
|
|
else
|
|
mdbg "oracle_ro_query: $KAMAILIO_ORASEL $DBROUSER@$DBNAME $2 -N -e '$1'"
|
|
$KAMAILIO_ORASEL ${DBROUSER}/${DBROPW}@${DBNAME} $2 -Ne "$1"
|
|
return $?
|
|
fi
|
|
}
|
|
|
|
DBCMD=oracle_query
|
|
DBROCMD=oracle_ro_query
|
|
DBRAWPARAMS=""
|
|
if [ -n "$KAMAILIO_ORASEL" ]; then
|
|
DBRAWPARAMS="-B"
|
|
fi
|