查询以列出db2中的所有数据库

2w3rbyxf  于 2022-11-07  发布在  DB2
关注(0)|答案(2)|浏览(1111)

“SELECT name FROM master.sys.databases WHERE name NOT IN('master ',' tempdb ',' model ',' msdb')”在SQL服务器中,上面的命令用于检索数据库列表。同样,使用Python程序检索DB2中的数据库列表的命令是什么?
db2服务器平台:Windows数据库:编目的

rqmkfv5c

rqmkfv5c1#

使用Db2-LUW时,您不使用SQL来检测哪些数据库可用,而是通过命令来完成,尽管也可以使用其他方法。
对于具有catalogued数据库的Db2-LUW,可以使用python通过解析命令db2 list db directory的输出来读取数据库目录(假设您有一个包含db2命令行处理器的Db2-client)。
请注意,非IBM(第三方)Db2客户机可能具有其他功能,因此此答案仅涉及由IBM提供的包含Db2 CLP程序的Db2客户机。
您需要了解编目数据库的传统概念,所有这些概念都在免费的在线Db2知识中心中进行了解释。请参阅命令(非SQL)list database directorycatalog databasecatalog tcpip node等。
如果数据库未在数据库目录中编录,而是在名为db2dsdriver.cfg得XML文件或等效文件中配置,则不能使用此方法,但可以解析XML文件以查找DATABASE与DSN节.
此外,如果您的数据库位于i系列上,则IBM i access数据库适用不同的注意事项。
有一个示例代码here,在函数query_sdb_dir中(您可以解析命令db2 list db directory的输出)。但是,这假定您安装了一个包含Db2 CLP的Db2客户端(即在MS-Windows上,您的路径上有db2.exe,这是命令行处理器CLP)。默认情况下,使用Python ibm_db时,您不会获得此可执行文件,因为它不是Python ibm_db模块默认附带的占用空间很小的CLIDRIVER的一部分。但是,您可以先安装包含CLP的Db2驱动程序(在MS-Windows上为db2.exe),将环境变量IBM_DB_HOME设置为指向其安装位置,然后再安装pip install ibm_db,它将使用您预先存在的Db2驱动程序,并且不会安装默认的clidriver。
还有其他方法,通常涉及数据库连接和使用监视功能。但发现操作(没有数据库连接)似乎是您的问题的主题。

wi3ka0sx

wi3ka0sx2#

以下语句(如果您有权使用这些表函数)返回由同一Db2 for LUW示例管理的活动数据库的列表,该示例管理您所连接到的数据库。

-- Preferred method since Db2 9.7
SELECT DISTINCT DB_NAME 
FROM TABLE (MON_GET_MEMORY_SET ('DATABASE', NULL, -2))

-- For Db2 versions before 9.7
SELECT DISTINCT DB_NAME 
FROM TABLE (SNAP_GET_DB (NULL))

您不会在此列表中看到非活动数据库(如果有)。

相关问题