Форум: "Базы";
Текущий архив: 2002.09.16;
Скачать: [xml.tar.bz2];
Внизподскажие как сделать запрос! Найти похожие ветки
← →
Nina (2002-08-26 15:13) [0]например вывести всех пользователей котрые сейчас активны?
select username
from v$session
where status ="ACTIVE"
чтобы в программке показали
сколько именно их активных 20 или 10!
подскажите как!??
← →
Lord Warlock (2002-08-26 15:15) [1]select Count(username)
from v$session
where status ="ACTIVE"
← →
Johnny Smith (2002-08-26 15:40) [2]Вот какой запрос формирует TOAD:
SELECT /*+ rule */
s.status "Status", s.serial# "Serial#", s.TYPE "Type",
s.username "DB User", s.osuser "Client User", s.server "Server",
s.machine "Machine", s.module "Module", s.terminal "Terminal",
s.program "Program", p.program "O.S. Program",
s.logon_time "Connect Time", lockwait "Lock Wait",
si.physical_reads "Physical Reads", si.block_gets "Block Gets",
si.consistent_gets "Consistent Gets",
si.block_changes "Block Changes",
si.consistent_changes "Consistent Changes", s.process "Process",
p.spid, p.pid, s.serial#, si.sid, s.sql_address "Address",
s.sql_hash_value "Sql Hash", s.action
FROM v$session s, v$process p, sys.v_$sess_io si
WHERE s.paddr = p.addr(+)
AND si.sid(+) = s.sid
AND (s.username IS NOT NULL)
AND (NVL (s.osuser, "x") <> "SYSTEM")
AND (s.TYPE <> "BACKGROUND")
ORDER BY 5
← →
Nina (2002-08-27 05:57) [3]Johnny Smith всё что вы написали я не очень поняла что это??
и расскажите потом как это значение вывывести например в Edit?
← →
Johnny Smith (2002-08-27 09:30) [4]2Nina (27.08.02 05:57)
Johnny Smith всё что вы написали я не очень поняла что это??
Что я написал?
Ну, вообще говоря это выборка активных пользователей и пользовательских процессов, которые сейчас юзают Oracle. Причем с наименованием приложений, с помощью которых те работают с базой. И еще протча и протча. При этом НЕ выводятся системные и бекграундные процессы.
Если же Вы хотите получить количество пользователей, подсоединенных к базе, несмотря на количество приложений, которые они используют (т.е. без учета пользовательских процессов), используйте
select count(username) from v$session
where username IS NOT NULL
and
NVL (osuser, "x") <> "SYSTEM"
and
TYPE <> "BACKGROUND"
← →
Nina (2002-08-27 11:43) [5]Johnny Smith >> а как теперь это значение вывести в приложении
в Edit например?
← →
Nina (2002-08-27 12:41) [6]Johnny Smith скажите что означает ...
and
NVL (osuser, "x") <> "SYSTEM"
and
TYPE <> "BACKGROUND"
← →
Johnny Smith (2002-08-27 12:49) [7]2Nina (27.08.02 11:43)
Чтобы вывести результат такого запроса в Edit, сделайте:
1) поместите текст запроса в Query;
2) выполните запрос;
3) выполнитеEdit1.Text:=Query.Fields[0].Value
;
2Nina (27.08.02 12:41)
Эти условия означают, что в выборку не попадут системные и бекграундные процессы (LGWR,DBWR и пр.)
← →
Nina (2002-08-27 13:24) [8]Johnny Smith
спаисбо большое!
в как это можно сделать через хранимую процедуру!
это правильно??
create or replace procedure kol
(kol out number)
as begin
select COUNT(USERNAME)
from v$session
WHERE STATUS ="ACTIVE"
AND USERNAME IS NOT NULL
end;
я просто с Ораклом ни когда не работала
не много с IB работала
спаисбо !
← →
Johnny Smith (2002-08-27 14:23) [9]Вот, пожалуй, правильный текст (Вы забыли into kol)
create or replace procedure kol
(kol out number)
as begin
select COUNT(USERNAME) into kol
from v$session
WHERE STATUS ="ACTIVE"
AND USERNAME IS NOT NULL
end;
спаисбо большое!
Всегда пожалуйста. Случай чего - пишите. Можно на мыло.
← →
Black Cat (2002-08-27 14:36) [10]Или так:
CREATE OR REPLACE FUNCTION "SYS"."KOL_USER"
return int
as
num int;
begin
select count(username) into num
from v$session
WHERE STATUS ="ACTIVE"
AND USERNAME IS NOT NULL;
return num;
end;
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.09.16;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c