powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как узнать какое приложение запустило login.sql
7 сообщений из 7, страница 1 из 1
Как узнать какое приложение запустило login.sql
    #39468276
Extortioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Знакомлюсь с утилитой sqlcl, решил для себя нарисовать файл login.sql, который содержал бы в себе настройки для этой программы, типа
Код: plaintext
1.
set linesize 160
set pagesize 3000 и т.д.

Но проблема в том, что этот же файл исполняется и в том случае, если запускается sqlplus, и всё бы ничего но хочется, чтобы при запуске sqlcl отрабатывала команда
Код: plaintext
set sqlprompt "@|cyan &_user@&_connect_identifier> |@"
Чтобы получит цветную строчку приглашения, но если эта строка будет выполнена в sqlplus, то мы получим совсем не то, что ожидали - цвета, естественно, не будет, зато будет такая строка:
Код: plaintext
06:36:32 @|cyan SYS@subd>; |@

В связи с этим хотелось бы понять, кто именно запустил этот скрипт, чтобы в одном случае делать установку
Код: plaintext
set sqlprompt '&_user@&_connect_identifier> ',
а в другом
Код: plaintext
set sqlprompt "@|cyan &_user@&_connect_identifier> |@"

нашёл, что отличие между этими режимами отображается в show appinfo - в одном случае
Код: plaintext
"appinfo is OFF and set to "SQLcl"
, в другом
Код: plaintext
"appinfo is OFF and set to "SQL*Plus" 
но как получить это значение для анализа - не понятно, в идеале хотелось бы получить что-то типа такого

Код: plaintext
1.
2.
3.
4.
5.
6.
if prog = 'SQL*Plus'
  set sqlprompt '&_user@&_connect_identifier> '
else
  set sqlformat ansiconsole
  set sqlprompt "@|cyan &_user@&_connect_identifier> |@"  
end
Подскажите пож-ста, куда копать?
...
Рейтинг: 0 / 0
Как узнать какое приложение запустило login.sql
    #39468286
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Extortionerотличие
Код: plsql
1.
define _SQLPLUS_RELEASE
...
Рейтинг: 0 / 0
Как узнать какое приложение запустило login.sql
    #39468289
Extortioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Elic,
DEFINE _SQLPLUS_RELEASE = "1201000200" (CHAR) - sql*plus
DEFINE _SQLPLUS_RELEASE = "0402001797719" (CHAR) - sqlcl

И что делать с этими значениями, если потом когда-нибудь сменится версия?
...
Рейтинг: 0 / 0
Как узнать какое приложение запустило login.sql
    #39468291
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ExtortionerИ что делать с этими значениями, если потом когда-нибудь сменится версия?Хаджа Насредин про сходимость версий сказал бы "или-или".
...
Рейтинг: 0 / 0
Как узнать какое приложение запустило login.sql
    #39468292
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тем более, что разрядность и них разная.
...
Рейтинг: 0 / 0
Как узнать какое приложение запустило login.sql
    #39468301
dba123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Extortioner,

Попробуй так, м.б. достаточно будет
Код: plsql
1.
2.
3.
4.
5.
6.
7.
--login.sql:
column client_program_name new_value programname;
select sys_context('userenv','CLIENT_PROGRAM_NAME') as client_program_name from dual;

SQL>define
DEFINE PROGRAMNAME = "sqlplus.exe" (CHAR)
--DEFINE PROGRAMNAME = "SQLcl" (CHAR)
...
Рейтинг: 0 / 0
Как узнать какое приложение запустило login.sql
    #39468350
Extortioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dba123,
Да, спасибо! уже ближе к теме!

DEFINE PROGRAMNAME = "java@out-linux.XXX.ru" - sqlcl
DEFINE PROGRAMNAME = "sqlplus@out-linux.XXX.ru" - sqlplus
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как узнать какое приложение запустило login.sql
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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