powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / кто силён в понимании связки связки "unix-shell(ksh) <-> sqlplus"
10 сообщений из 10, страница 1 из 1
кто силён в понимании связки связки "unix-shell(ksh) <-> sqlplus"
    #39999921
DBAshnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народ, помогите плиз те, кто силён в понимании связки связки "unix-shell(ksh) <-> sqlplus". Не могу понять в чём тут ошибка - сразу после первого echo оно перескакивает сразу к utlrp.sql? Ему где то нужны ещё точки с запятой? Что то с EOF-ами не так?
Спасибо!

Код: powershell
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.
#!/bin/ksh

function patchThisDb {
   
  echo '2. 31326379/31219919... : ' $ORACLE_SID  
sqlplus / as sysdba <<EOF
  startup upgrade;
  quit;
EOF
  
$ORACLE_HOME/OPatch/datapatch -verbose

  echo '2. 31326379/31219919(utlrp)... : ' $ORACLE_SID  
sqlplus / as sysdba <<EOF
  shutdown;
  startup;
  @$ORACLE_HOME/rdbms/admin/utlrp.sql 
  shutdown immediate;  
  quit;
EOF

}

echo 'start mivHelpScrpt-2!'

export ORACLE_SID=HDMFTST;
patchThisDb;
export ORACLE_SID=HDMFCTL ;
patchThisDb;

currentDate=`date`
echo 'END mivHelpScrpti-2: ' $currentDate
...
Рейтинг: 0 / 0
кто силён в понимании связки связки "unix-shell(ksh) <-> sqlplus"
    #39999928
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А set -x не пробовал ставить?
...
Рейтинг: 0 / 0
кто силён в понимании связки связки "unix-shell(ksh) <-> sqlplus"
    #39999948
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
DBAshnik,

проверил у себя - все работает ок.

DBAshnik
сразу после первого echo оно перескакивает сразу к utlrp.sql?
покажи что именно ты получаешь, а то не очень понятно
...
Рейтинг: 0 / 0
кто силён в понимании связки связки "unix-shell(ksh) <-> sqlplus"
    #39999950
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBAshnik,

Код: plsql
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.
#!/bin/ksh

#SQLCMD="sqlplus / as sysdba"
SQLCMD="cat -"

function patchThisDb {
   
 echo '2. 31326379/31219919... : ' $ORACLE_SID  
$SQLCMD <<EOF
  startup upgrade;
  quit;
EOF
  
$ORACLE_HOME/OPatch/datapatch -verbose

echo '2. 31326379/31219919(utlrp)... : ' $ORACLE_SID  
$SQLCMD <<EOF
  shutdown;
  startup;
  @$ORACLE_HOME/rdbms/admin/utlrp.sql 
  shutdown immediate;  
  quit;
EOF

}
....
...
Рейтинг: 0 / 0
кто силён в понимании связки связки "unix-shell(ksh) <-> sqlplus"
    #39999951
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBAshnik,

И да, какая ОС и Версии?
...
Рейтинг: 0 / 0
кто силён в понимании связки связки "unix-shell(ksh) <-> sqlplus"
    #39999967
Фотография Aliona
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если этот скрипт запускаете в кроне, то обязательно надо считывать переменные окружения
и указывать полный путь к sqlplus

автор#!/bin/sh

# get enviroment settings from ".profile" file
. $HOME/.profile
....
$ORACLE_HOME/bin/sqlplus
...
...
Рейтинг: 0 / 0
кто силён в понимании связки связки "unix-shell(ksh) <-> sqlplus"
    #39999974
DBAshnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aliona
если этот скрипт запускаете в кроне, то обязательно надо считывать переменные окружения
и указывать полный путь к sqlplus

автор#!/bin/sh

# get enviroment settings from ".profile" file
. $HOME/.profile
....
$ORACLE_HOME/bin/sqlplus
...


спасибо. Но нет, не в кроне. (руками в командной строке!)
...
Рейтинг: 0 / 0
кто силён в понимании связки связки "unix-shell(ksh) <-> sqlplus"
    #39999975
serpv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Aliona

и указывать полный путь к sqlplus


А ещё лучше содержать в порядке oratab и использовать . oraenv
...
Рейтинг: 0 / 0
кто силён в понимании связки связки "unix-shell(ksh) <-> sqlplus"
    #40000323
DBAshnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vadim Lejnin
DBAshnik,

И да, какая ОС и Версии?


AIX 7.1 - Technology Level 5 - Service Pack 5

(Oracle 12c: 12.2.0.1.200714)
...
Рейтинг: 0 / 0
кто силён в понимании связки связки "unix-shell(ksh) <-> sqlplus"
    #40000377
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBAshnik,

AIX под рукой нет


У Вас варианты:
1) Проверить что EOF - у Вас абсолютно одинаковый, и не закрались
cyrilc буквы/пробелы/спецсимволы

2) Вместо EOF можно ипользовать любое слово
Код: plsql
1.
2.
3.
4.
5.
6.
7.
... <<EOF_TEXT1
...
EOF_TEXT1

... <<EOF_TEXT2
...
EOF_TEXT2



3) Посмотреть что получилось из вывода 22199456

4) Включить трассировку
Код: plsql
1.
2.
3.
set -x   # trace on
...
set +x # trace off



5) Переделать например так:
Код: powershell
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.
#!/bin/ksh

#SQLCMD="sqlplus / as sysdba"
SQLCMD="cat -"
T=echo

function patchThisDb {
   
  echo '2. 31326379/31219919... : ' $ORACLE_SID  

(
echo  startup upgrade;
echo   quit;
) | $SQLCMD
  
$T $ORACLE_HOME/OPatch/datapatch -verbose

  echo '2. 31326379/31219919(utlrp)... : ' $ORACLE_SID  

( 
echo shutdown;
echo  startup;
 echo @ ?/rdbms/admin/utlrp.sql 
echo  shutdown immediate;  
echo quit;
)| $SQLCMD

}

echo 'start mivHelpScrpt-2!'

export ORACLE_SID=HDMFTST;
ORAENV_ASK;. oraenv;unset ORAENV_ASK

patchThisDb;

export ORACLE_SID=HDMFCTL ;
ORAENV_ASK;. oraenv;unset ORAENV_ASK
patchThisDb;

currentDate=`date`
echo 'END mivHelpScrpti-2: ' $currentDate



p.s. Некоторые советы:
1) Используйте штатный oraenv/oratab
Это избавит от ошибок, когда/если ORACLE_HOME баз будут разными

2) В SQL*PLUS скриптах, для вызова символ "?" заменяется на текущую ORACLE_HOME, а "@" на текущий ORACLE_SID
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / кто силён в понимании связки связки "unix-shell(ksh) <-> sqlplus"
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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