我有一个数据库,我可以使用字符串“jdbc:oracle:thin@ldap://SERVER_NAME:1234/SERVICE,cn=OracleContext,dc-world”连接到使用 jdbc。
但是,当我使用node-oracledb时,这个连接字符串不起作用,大概是因为Node没有使用jdbc。我可以使用什么连接字符串连接到数据库?
我有一个数据库,我可以使用字符串“jdbc:oracle:thin@ldap://SERVER_NAME:1234/SERVICE,cn=OracleContext,dc-world”连接到使用 jdbc。
但是,当我使用node-oracledb时,这个连接字符串不起作用,大概是因为Node没有使用jdbc。我可以使用什么连接字符串连接到数据库?
LDAP 没有可用的“Easy Connect”语法,因此您需要配置 ldap.ora 和 sqlnet.ora 文件,并在 node-oracledb(或 SQL*Plus、PHP OCI8 等其他工具)中使用非 Easy Connect 字符串别名, Python cx_Oracle, Golang godror 等)。
我被告知(!)步骤是:
调用 netca -> 目录使用
通过 netca->Naming Methods Configuration 配置命名以使用 LDAP。这将为名称查找设置 sqlnet.ora。
运行 netmgr 以设置 ldap 中的条目或运行 Enterprise Manager 以设置 ldap。
将这些文件复制到运行 Node.js 的机器上的子目录中,并将 TNS_ADMIN 设置为包含这些文件的目录。使用 Instant Client,您可以将其放在network\admin
Instant Client 库下的子目录中。请参阅手册条目可选的 Oracle 网络配置
将node-oracledb的connectString设置为3中配置的连接别名,例如“orcl”
为了使 ldap 连接正常工作,我必须执行以下操作:
在 oracle 客户端的 network/admin 文件夹中添加(这些是由我的数据库管理员提供的,但这里有示例:):
然后 connectString 只是服务名称,没有别的。因此,使用原始示例jdbc:oracle:thin@ldap://SERVER_NAME:1234/SERVICE,cn=OracleContext,dc-world
,connectString 将是SERVICE