首批通过分布式安全可靠测评,为关键业务系统打造
OPEN_CONNECTION
更新时间:2026-05-13 19:04:30
OPEN_CONNECTION 用于打开一个与指定服务的 TCP 或 IP 连接。
功能适用性
该内容仅适用于 OceanBase 数据库 Oracle 模式。
语法
UTL_TCP.OPEN_CONNECTION (
remote_host IN VARCHAR2,
remote_port IN PLS_INTEGER,
local_host IN VARCHAR2 DEFAULT NULL,
local_port IN PLS_INTEGER DEFAULT NULL,
in_buffer_size IN PLS_INTEGER DEFAULT NULL,
out_buffer_size IN PLS_INTEGER DEFAULT NULL,
charset IN VARCHAR2 DEFAULT NULL,
newline IN VARCHAR2 DEFAULT CRLF,
tx_timeout IN PLS_INTEGER DEFAULT NULL,
wallet_path IN VARCHAR2 DEFAULT NULL,
wallet_password IN VARCHAR2 DEFAULT NULL,
RETURN connection;
参数解释
| 参数 | 解释 |
|---|---|
| remote_host | 需要连接服务的主机名。当为 NULL 时会报错。 |
| remote_port | 服务侦听的连接端口号。 |
| local_host | 提供给服务的主机名称。(保留字段)。 |
| local_port | 服务侦听的连接端口号。(保留字段)。 |
| in_buffer_size | 输入缓冲区大小(字节)。为 0 表示不使用缓冲区,为 NULL 表示没有主动设置缓冲区,由操作系统控制其大小。缓冲区最大值为 32767 字节。 |
| out_buffer_size | 输出缓冲区大小(字节)。为 0 表示不使用缓冲区,为 NULL 表示没有主动设置缓冲区,由操作系统控制其大小。缓冲区最大值为 32767 字节。 |
| charset | 在线字符集,会在发送和接收数据时进行字符集转化。 |
| newline | 换行符。将会在添加到 write_line 发送的文本行后。 |
| tx_timeout | UTL_SMTP 包在连接的读取和写入操作超时之前的等待时间(单位秒),在读取操作中,如果没有数据可供立即读取,则此包将超时。在写入操作中,如果输出缓冲区已满,并且没有数据被发送到网络而不被阻塞,则此包将超时。0 代表不等待,NULL 代表一直等待。 |
| wallet_path | 目前暂不支持该字段,当前该字段默认为 NULL。 |
| wallet_password | 目前暂不支持该字段,当前该字段默认为 NULL。 |
返回值
| 返回值 | 描述 |
|---|---|
| connection | 与服务的 TCP/IP 连接。 |
使用说明
- 同一个 Session 最多打开 16 个连接。
open_connection打开的连接需要显式关闭,属于会话级别资源,不可跨会话使用,断开会话时会关闭当前会话所有连接。remote_host可以为 IP 或网址,内部进行转换。local_host和local_port属于保留字段,在建立 TCP/IP 连接时将会被忽略,返回的conntection变量中,这两个字段设置为NULL。