如何递归地关闭sql-database(vertica)的会话(连接)

时间:2015-04-20 16:54:14

标签: sql vertica

我意外地通过JDBC驱动程序创建了许多与vertica数据库的连接。通过我的JDBC驱动程序以编程方式关闭它们是不可能的,剩下的唯一选择是用SQL查询关闭它们。在Vertica中,我想运行

select close_session(select session_id from sessions  where client_hostname like '%.195%');

select close_session() from sessions where session_id in (select distinct session_id from sessions  where client_hostname like '%.195%');

这两种选择都是错误的,不起作用。什么是正确的解决方案? (我无法使用close_all_sessions(),因为这会导致我的同事不断查询。我可以手动关闭50个会话,但无论如何都知道正确的工作方式很有用。)

1 个答案:

答案 0 :(得分:1)

首先,问问自己为什么要允许超过50个客户会话?

然后我会准备CLOSE_SESSION()语句并运行它们:

SELECT E'SELECT CLOSE_SESSION(\'' || session_id || E'\');' 
FROM   user_sessions
WHERE  client_hostname LIKE '%.195%';