Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / кто силён в понимании связки связки "unix-shell(ksh) <-> sqlplus" / 10 сообщений из 10, страница 1 из 1
17.09.2020, 15:56
    #39999921
DBAshnik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
кто силён в понимании связки связки "unix-shell(ksh) <-> sqlplus"
Народ, помогите плиз те, кто силён в понимании связки связки "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
17.09.2020, 16:04
    #39999928
Вячеслав Любомудров
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
кто силён в понимании связки связки "unix-shell(ksh) <-> sqlplus"
А set -x не пробовал ставить?
...
Рейтинг: 0 / 0
17.09.2020, 16:26
    #39999948
Sayan Malakshinov
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
кто силён в понимании связки связки "unix-shell(ksh) <-> sqlplus"
DBAshnik,

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

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

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

автор#!/bin/sh

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

автор#!/bin/sh

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


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

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


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

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


AIX 7.1 - Technology Level 5 - Service Pack 5

(Oracle 12c: 12.2.0.1.200714)
...
Рейтинг: 0 / 0
18.09.2020, 19:52
    #40000377
Vadim Lejnin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
кто силён в понимании связки связки "unix-shell(ksh) <-> sqlplus"
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
Форумы / Oracle [игнор отключен] [закрыт для гостей] / кто силён в понимании связки связки "unix-shell(ksh) <-> sqlplus" / 10 сообщений из 10, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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