代码改变世界

SQLcl 用文件夹直观管理数据库连接

2026-10-14 07:08  AlfredZhao  阅读(131)  评论(0)    收藏  举报

在 SQLcl 中管理多个数据库连接时,如果所有连接都堆在根目录下,查找起来会非常麻烦。笔者在实际使用中发现,conn 命令本身并没有提供 -folder 之类的参数,无法在保存连接时直接指定文件夹。想要让连接归入某个目录,需要采用“先建后移”的思路。

01 | 为什么不能直接保存到文件夹

使用 conn -save 连接名 ... 保存连接时,连接默认会落在根目录下。在本文使用的 SQLcl 版本中,conn 命令没有直接提供 -folder 或类似参数,所以保存这一步无法一步到位地指定目标文件夹;不同版本的行为请以所用版本的官方文档和实际测试结果为准。

flowchart LR A["conn -save 连接名"] --> B["连接默认落在根目录"] B --> C{"能否指定 -folder?"} C -- "不支持" --> D["需改用先建后移"]

02 | 标准操作步骤

既然不能一步完成,就分三步走:先建文件夹,再保存连接,最后把连接移动过去。

① 先创建文件夹

如果目标文件夹还不存在,先用 cm add 创建。下面按环境维度建两个文件夹,把开发环境和测试环境的连接分开管理:

SQL> cm add -folder dev/local
SQL> cm add -folder test/local

② 保存连接

正常保存连接,此时它会先进入默认的根目录。注意每个连接名必须唯一,不能重复,否则会与已有连接冲突:

SQL> conn -save dev_conn -savepwd <用户名>/<密码>@//localhost:1521/orcl
-- 注意:-savepwd 会将密码保存到本地连接配置中,请确认存储位置与权限安全,避免在共享环境中使用真实凭据
SQL> conn -save test_conn -savepwd username/password@//localhost:1521/orcl

③ 将连接移动到文件夹

使用 cm move 命令,配合 -conn 指定连接名,后面跟上目标文件夹路径。执行前请确认连接名与目标文件夹路径均正确,避免移动到非预期位置;如不确定,可先用 cm list 查看当前结构。把两个连接分别归入各自的文件夹:

SQL> cm move -conn dev_conn dev/local
SQL> cm move -conn test_conn test/local
flowchart TD subgraph ROOT["根目录"] R1["dev_conn"] R2["test_conn"] end subgraph DEV["dev/local"] D1["dev_conn"] end subgraph TEST["test/local"] T1["test_conn"] end R1 -- "cm move -conn dev_conn dev/local" --> D1 R2 -- "cm move -conn test_conn test/local" --> T1

03 | 验证结果

移动完成后,用 cm list 查看连接列表:

SQL> cm list

此时在 cm list 的输出中,应能看到 dev/local 文件夹下包含 dev_conn,test/local 文件夹下包含 test_conn;若连接仍显示在根目录,说明移动未生效,需检查 cm move 的连接名与路径是否正确。按环境分类后,连接管理变得一目了然,查找时不必再在一堆根目录连接里翻找。

flowchart TD ROOT["根目录"] ROOT --> DEV["dev/local"] ROOT --> TEST["test/local"] DEV --> D1["dev_conn"] TEST --> T1["test_conn"]

关注我,和AI一起成长~