123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- #!/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
|