powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / может ли bash-скрипт запускать на выполнение sql-файл?
10 сообщений из 10, страница 1 из 1
может ли bash-скрипт запускать на выполнение sql-файл?
    #37128457
rblr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
допустим, есть shell скрипт, который сканирует некий текстовый файл, на наличие sql-файлов, которые в нем прописаны. В случае, если sql-файл найден, возможно ли запустить его на выполнение?
...
Рейтинг: 0 / 0
может ли bash-скрипт запускать на выполнение sql-файл?
    #37128547
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, но баш может запустить утилиту СУБД, которая и выполнит этот SQL.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
может ли bash-скрипт запускать на выполнение sql-файл?
    #37128575
rblr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Дмитрий, подскажите пожалуйста, как это сделать?
...
Рейтинг: 0 / 0
может ли bash-скрипт запускать на выполнение sql-файл?
    #37128590
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rblrкак это сделать?
Сделать что? Запустить программу из баш-скрипта?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
может ли bash-скрипт запускать на выполнение sql-файл?
    #37128709
rblr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

да, именно
...
Рейтинг: 0 / 0
может ли bash-скрипт запускать на выполнение sql-файл?
    #37129192
miwaonline
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rblr,

А как он у тебя «сканирует некий текстовый файл»? Тоже ведь программы запускает. Ну так же и с скриптом. Для файрберда, например, надо написать что-то вроде

isql-fb -i your_script.sql

в тексте твоего скрипта.
...
Рейтинг: 0 / 0
может ли bash-скрипт запускать на выполнение sql-файл?
    #37129227
Фотография С0ВЕСТЬ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rblrDimitry Sibiryakov,

да, именно

Наглядный пример для Оракла:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
#!/bin/ksh
#
# dbexp.sh
# ========
#
# This script is provided by Database Specialists, Inc. 
# (http://www.dbspecialists.com) for individual use and not for sale. 
# Database Specialists, Inc. does not warrant the script in any way 
# and will not be responsible for any loss arising out of its use.
#
# Your feedback is welcome! Please send your comments about this script
# to scriptfeedback@dbspecialists.com
#
# This script performs a full database export of the specified database
# and sends an email message to the specified user if anything goes wrong.
# The export is written through a named pipe directly into a compressed file.
#
# This script is suitable for running via cron. As such, it generates no
# standard output. All output is written to a log. You will need to edit
# this script before using in order to invoke your password lookup facility
# or otherwise determine the correct Oracle password.
#
# This script has been used on Solaris  2 . 5 . 1  and  2 . 6  against Oracle  7 . 3 . 4  
# and  8 . 0 . 5  databases.
#
# Usage: dbexp.sh -d sid -t type -n notify_list [-c]
#        sid is the ORACLE_SID of the database to export. 
#        type is either FULL or STRUCT. FULL exports the entire database,
#            while STRUCT exports all of the DDL to recreate the database, but
#            not the actual data (rows in the tables).
#        notify_list is a list of comma-separated email addresses where email
#            should be sent if the export fails for any reason.
#        -c may optionally be specified to export in consistent mode.
#
# Version  03 - 26 - 1999 
#

#
# The quit_dbexp function sends a failure email message, cleans up, and exits.
#

function quit_dbexp
{
  echo $ 1  >> $LOGFILE
  mailx -s"Export of $ORACLE_SID database failed" $NOTIFY < $LOGFILE
  rm -f $TMPLOG $PIPEFILE $CERRFILE
  exit  1 
}

#
# Parse the command line arguments.
#

USAGE="Usage: `basename $0` -d sid -t type -n notify_list [-c]"
SID=""
EXP_TYPE=""
NOTIFY=""
CONSISTENT=""

while getopts :d:t:n:c opt
do
  case "$opt" in
    "d") SID="$OPTARG" ;;
    "t") typeset -u EXP_TYPE="$OPTARG"
         case "$EXP_TYPE" in
           "FULL")   EXP_ROWS="yes" ; FILENAME="full" ;;
           "STRUCT") EXP_ROWS="no" ; FILENAME="strct" ;;
           *)        echo "Export type must be FULL or STRUCT"  1 >& 2 
                     exit  1  ;;
         esac ;;
    "n") NOTIFY="$OPTARG" ;;
    "c") CONSISTENT="CONSISTENT=Y" ;;
    ":"|"?") echo "$USAGE"  1 >& 2  ; exit  1  ;;
  esac
done
 
let i=$#+ 1 
if [ "$i" != "$OPTIND" -o -z "$SID" -o -z "$EXP_TYPE" -o -z "$NOTIFY" ]
then
  echo "$USAGE"  1 >& 2 
  exit
fi

#
# Set up the Oracle environment.
#

export ORACLE_SID="$SID"
export ORAENV_ASK="NO"
export PATH="$PATH:/usr/local/bin"
. /usr/local/bin/oraenv
# Note: If oraenv does not set $ORACLE_BASE, you must set it here.

#
# Set up the general environment.
#

EXPDIR="$ORACLE_BASE/admin/$ORACLE_SID/exp"
LOGFILE="$EXPDIR/exp_${ORACLE_SID}_`date +%m%d%y`_${FILENAME}.log"
TMPLOG="$EXPDIR/exp_${ORACLE_SID}_`date +%m%d%y`_${FILENAME}.tmp"
EXPFILE="$EXPDIR/exp_${ORACLE_SID}_`date +%m%d%y`_${FILENAME}.dmp.Z"
PIPEFILE="$EXPDIR/exp_${ORACLE_SID}_`date +%m%d%y`_${FILENAME}.pipe"
CERRFILE="/tmp/exp_${ORACLE_SID}_`date +%m%d%y`_${FILENAME}.cerr"

cat <<EOF > $LOGFILE
Beginning database export at `date`
  Server is `uname -n`
  Database is $ORACLE_SID
  Export type is $EXP_TYPE
  Export file is $EXPFILE

EOF

#
# Purge full exports older than  3  days.
#

(cd $EXPDIR; find . -name exp_\*_full.dmp.Z -type f -mtime + 2  -exec rm -f {} \;)

#
# Get the necessary Oracle password.
#

ORAPWD="`<enter your password lookup service here> $ORACLE_SID system 2>&1"
# If you want to hardcode the Oracle password, change the above line to read:
# ORAPWD="<enter your password here>"

if [ "$?" != "0" ]
then
  echo $ORAPWD >> $LOGFILE
  quit_dbexp "Unable to get Oracle password for system schema"
fi
  
#
# Create a named pipe and begin the background compress.
#

/etc/mknod $PIPEFILE p >> $LOGFILE  2 >& 1 
[ "$?" != "0" ] && quit_dbexp "Error occurred while creating named pipe"

compress < $PIPEFILE > $EXPFILE  2 > $CERRFILE &

#
# Perform the actual export.
#

echo $ORAPWD | exp system full=y direct=y rows=$EXP_ROWS $CONSISTENT \
                   file=$PIPEFILE log=$TMPLOG >> $LOGFILE  2 >& 1 

RETCODE="$?"

echo "Export completed at `date` with status code $RETCODE\n" >> $LOGFILE

if [ "$RETCODE" != "0" ] 
then
  quit_dbexp " "
fi

#
# Make sure that the export log and background compress do not indicate 
# any errors.
#

grep "EXP\-" $TMPLOG > /dev/null  2 > /dev/null
RETCODE="$?"
[ "$RETCODE" = "0" ] && echo "Export log contains export errors" >> $LOGFILE
grep "ORA\-" $TMPLOG > /dev/null  2 > /dev/null
RETCODE2="$?"
[ "$RETCODE2" = "0" ] && echo "Export log contains Oracle errors" >> $LOGFILE
[ "$RETCODE" = "0" -o "$RETCODE2" = "0" ] && quit_dbexp " "

if [ -s "$CERRFILE" ]
then
  cat $CERRFILE >> $LOGFILE
  quit_dbexp "Error detected in background compress"
fi

#
# The export was successful. Now clean up and exit.
#

rm -f $TMPLOG $PIPEFILE $CERRFILE
exit  0 
...
Рейтинг: 0 / 0
может ли bash-скрипт запускать на выполнение sql-файл?
    #37131457
С0ВЕСТЬ,

что характерно, в этом скрипте ни разу не выполняется никакой sql.

автору -- опишите хотя бы, как в вашем текстовом файле отделить sql от всего остального.
...
Рейтинг: 0 / 0
может ли bash-скрипт запускать на выполнение sql-файл?
    #37140990
Rekrut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
#!/bin/sh
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2/db_1
export NLS_LANG=AMERICAN_AMERICA.UTF8
export LD_LIBRARY_PATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib
export ORACLE_SID=name
setuser=oracle
/opt/oracle/product/10.2/db_1/bin/sqlplus sys/sys@name as sysdba @/opt/oracle/file.sql

ну а там уже пишете что Вам надо в Вашем sql например:

alter database add logfile member '/u2/redo2/redo01.log' to group 1;
alter database add logfile member '/u2/redo2/redo02.log' to group 2;
alter database add logfile member '/u2/redo2/redo03.log' to group 3;
...
Рейтинг: 0 / 0
может ли bash-скрипт запускать на выполнение sql-файл?
    #37168449
rblr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rekrut,

спасибо! обязательно попробую.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / может ли bash-скрипт запускать на выполнение sql-файл?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]