如何以递归方式关闭到 sql-database (vertica) 的会话(连接)

How to close sessions (connections) to sql-database (vertica) recursively

我不小心通过 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 个会话,但无论如何了解正确的方法还是很有用的)

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

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

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