Я предлагаю (с помощью некоторой структуры) выполнять команды в sqlplus, но не запускаю его сам. Я хотел бы узнать версию этого sqlplus.Как узнать версию sqlplus изнутри sqlplus
ответ
Within SQL * Plus, есть некоторые предопределенные подстановки переменных:
SQL> define
DEFINE _DATE = "23-NOV-13" (CHAR)
DEFINE _CONNECT_IDENTIFIER = "" (CHAR)
DEFINE _USER = "" (CHAR)
DEFINE _PRIVILEGE = "" (CHAR)
DEFINE _SQLPLUS_RELEASE = "1102000100" (CHAR)
DEFINE _EDITOR = "Notepad" (CHAR)
Обратите внимание на _SQLPLUS_RELEASE. Вы ссылаетесь на это в SQLPLUS.
Например, вы можете сделать что-то вроде:
sqlplus -S /nolog<<EOF
prompt &_SQLPLUS_RELEASE
quit
EOF
Я не думаю, что вы можете с фактическим запросом. Вы может быть в состоянии получить его с этим:
SELECT
PROGRAM, MODULE
from v$session s
order by s.sid;
Колонка Модуль может содержать номер версии, она не может. Это зависит от программы. Если память работает правильно, sqlplus не дает этого. Например, ЖАБА дает "жаба Freeware 11.0.0.116"
Проблема с этой идеей заключается в том, что я далек от единственного пользователя, подключенного к этой базе данных, поэтому поиск моих сеансов будет затруднен. – Gnurfos
Вы также можете просто подключить к Sqlplus через COMMANDE линии. В LINUX Вы можете сделать следующее: [orafresh @ ljsrv1123 ~] $ SQLPLUS/AS SYSDBA
SQL * Plus: Release 11.1.0.7.0 - Производство в Пт Июл 14 12:47:36 2017
Copyright (c) 1982, 2008, Oracle. Все права защищены.
Подключено к: Oracle 11g Database Enterprise Edition Release 11.1.0.7.0 - 64-битную производство С секционирования, OLAP, Data Mining и Real Application Testing варианты
SQL>
Надежда, что помогает,
Спасибо, это работает! – Gnurfos