home *** CD-ROM | disk | FTP | other *** search
/ PC World 1998 October / PCWorld_1998-10_cd.bin / software / prehled / komix / DATA.Z / dropora < prev    next >
Text File  |  1997-09-26  |  1KB  |  60 lines

  1. #! /bin/sh
  2.  
  3. #
  4. # Drop all user objects from an Oracle database
  5. #
  6.  
  7. usage() {
  8.     echo "Usage: dropora [-n] <username/password>[@server]"
  9.     echo ""
  10.     echo "Note: This uses \$ORACLE_HOME/bin/sqlplus, so make sure that"
  11.     echo "      ORACLE_HOME is set.  On an installation without SQL*Net,"
  12.     echo "      leave off the '@server' part, and make sure that"
  13.     echo "      ORACLE_SID is set to the system identifier."
  14.  
  15.     exit 1
  16. }
  17.  
  18. if [ $# -lt 1 -o $# -gt 2 ]; then
  19.     usage
  20. fi
  21.  
  22. drop=1
  23. if [ $# = 2 ]; then
  24.     if [ "$1" = "-n" ]; then
  25.     drop=0
  26.     shift
  27.     else
  28.         usage
  29.     fi
  30. fi
  31.  
  32. connect=$1
  33. tmp=/tmp/ora.$$
  34. shift
  35.  
  36. $ORACLE_HOME/bin/sqlplus -s $connect <<EOF >$tmp
  37. set heading off
  38. set linesize 255
  39. select object_type, object_name from user_objects;
  40. EOF
  41.  
  42. if [ "$drop" = "1" ]; then
  43.  
  44. (
  45.  
  46. grep '^TABLE' $tmp | awk '{print "DROP TABLE "$2";"}'
  47. grep -v '^TABLE' $tmp | awk '{if (NF == 2) print "DROP "$1" "$2";"}'
  48.  
  49. ) | $ORACLE_HOME/bin/sqlplus -s $connect >/dev/null 2>&1
  50.  
  51. else
  52.  
  53. grep '^TABLE' $tmp | awk '{print "DROP TABLE "$2";"}'
  54. grep -v '^TABLE' $tmp | awk '{if (NF == 2) print "DROP "$1" "$2";"}'
  55.  
  56. fi
  57.  
  58. rm -f $tmp
  59. exit 0
  60.