
# 配置Oracle连接器
Oracle连接器用于连接Oracle数据库，负责建立和维护应用程序和Oracle数据库之间的连接，并管理数据的传输。
- Oracle是一个关系型数据库，以其高性能而闻名。
- Oracle默认端口为1521，但是管理员可以根据需要将其更改为其他端口。
#### 创建Oracle连接
1. 登录[ROMA Connect控制台](https://console.huaweicloud.com/roma3)。
2. 在左侧导航栏选择"连接器"，在连接器页面单击"新建连接"。
3. 选择"Oracle"连接器。
4. 在弹窗中配置连接器信息，完成后单击"测试连接"，连接成功后单击"确定"。
   
   | 参数      | 说明                                                                                                                                                                                                                                                                   |
   |:---|:---|
   | 连接名称    | 填写连接器实例名称。                                                                                                                                                                                                                                                           |
   | 区域      | 选择区域。                                                                                                                                                                                                                                                                |
   | 项目      | 选择项目。                                                                                                                                                                                                                                                                |
   | 实例      | 选择实例，用于后续验证连通性。                                                                                                                                                                                                                                                      |
   | 连接与安全   | 选择数据库的连接模式。 - 默认：由系统根据用户配置自动拼接数据源连接字符串。  - 专业：由用户自己输入数据源连接字符串。   |
   | 主机IP地址  | **仅当"连接与安全"选择"默认"时需要配置。** 填写数据库的连接IP地址。                                                                                                                                                                                              |
   | 端口      | **仅当"连接与安全"选择"默认"时需要配置。** 填写数据库的连接端口号。                                                                                                                                                                                               |
   | 数据库名    | **仅当"连接与安全"选择"默认"时需要配置。** 填写要连接的数据库名。                                                                                                                                                                                                 |
   | pdb数据库名 | **仅当"连接与安全"选择"默认"时需要配置。** 填写要连接的pdb数据库名（CDB模式下填写）。                                                                                                                                                                                    |
   | 编码格式    | **仅当"连接与安全"选择"默认"时需要配置。** 填写数据库的编码格式。                                                                                                                                                                                                 |
   | 超时时间    | **仅当"连接与安全"选择"默认"时需要配置。** 填写连接数据库的超时时间。                                                                                                                                                                                               |
   | 连接字符串   | **仅当"连接与安全"选择"专业"时需要配置。** 填写Oracle数据库的JDBC格式连接串，例如：jdbc:oracle:thin:@{hostname}:{port}:{dbname}。                                                                                                                                        |
   | 用户名     | 连接数据库的用户名。                                                                                                                                                                                                                                                           |
   | 密码      | 连接数据库的用户密码。                                                                                                                                                                                                                                                          |
   | 描述      | 填写连接器的描述信息，用于识别不同的连接器。                                                                                                                                                                                                                                               |
      
   
 
#### 支持的动作
- 获取记录：该动作用于从Oracle数据库中检索数据，可通过指定表名、WHERE条件、Order by字段、Limit条数和Offset偏移量来查询数据。
- 添加记录：该动作用于向Oracle数据库的指定表中插入一行新数据。
- 更新记录：该动作用于更新Oracle数据库指定表中的一行或多行数据，可通过指定过滤条件来选择需要更新的行，并提供新的数据值。
- 增量获取记录：该动作可在指定开始时间后，定时获取Oracle数据库中新增或修改的记录。
  ![](https://support.huaweicloud.com/usermanual-roma/public_sys-resources/note_3.0-zh-cn.png)
  - 该动作需搭配定时器使用，并在Oracle中[启动LogMiner](https://support.huaweicloud.com/usermanual-roma/fdi-ug-190624017.html)。
  
  - 该动作在实验中，请勿用于生产。
    
- 删除记录：该动作用于删除Oracle数据库指定表中的一行或多行数据，可通过指定过滤条件来选择需要删除的行。
- 同步数据：该动作用于同步数据到指定Oracle数据表中。
  ![](https://support.huaweicloud.com/usermanual-roma/public_sys-resources/note_3.0-zh-cn.png)
  该动作需搭配定时器使用，并在Oracle中[启动LogMiner](https://support.huaweicloud.com/usermanual-roma/fdi-ug-190624017.html)。
  
- 自定义SQL：该动作用于使用原生SQL语句实现Oracle数据库的操作。
 
#### 配置参数
- 获取记录
  表1获取记录配置参数 
  | 参数         | 说明                                                                                             |
  |:---|:---|
  | 表名         | 选择或者填写要查询的数据库中的表名。                                                                             |
  | 字段名        | 选择要查询数据表的字段名。若不填写，则返回全部字段。                                                                     |
  | WHERE条件    | 指定条件来过滤查询结果，例如：column_name='value'。支持=、!=、\>、\<、\>=、\<=、like、in、not in、is null、is not null操作符。 |
  | Order by字段 | 指定一个或多个列来对查询结果进行排序，例如：id DESC。                                                                 |
  | Limit条数    | 限制返回结果的行数，例如：100。                                                                              |
  | Offset偏移量  | 指定从第几行开始返回数据，例如：15。                                                                            |
  | 数据结构       | 配置结果的输出字段，在选择数据库表时会自动生成。可手动进行修改。                                                               |
     
  表2获取记录输出 
  | 参数             | 说明                                                                                                                                   |
  |:---|:---|
  | Payload        | 返回json格式行数据。键表示数据库字段名称，值表示数据库字段值。每行数据以逗号拼接。Payload说明详见[组合应用引用变量](https://support.huaweicloud.com/usermanual-roma/roma_03_5212.html)。 |
  | Selected Count | 返回查询结果的行数。Property说明详见[组合应用引用变量](https://support.huaweicloud.com/usermanual-roma/roma_03_5212.html)。                                 |
     
  例如：执行成功后，payload 值如下：
  ```
  [
      {
          "Product_Id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
          "Created_Time": "2024-11-29T15:06:09Z",
          "Product_Price": 1299,
          "Product_Name": "Product A",
          "Product_Desc": "Product A"
      },
      {
          "Product_Id": "c3d7b1b7-4cd1-4d72-b1b8-7d38e1a1fe5a",
          "Created_Time": "2024-11-29T15:06:38Z",
          "Product_Price": 1099,
          "Product_Name": "Product C",
          "Product_Desc": "Product C"
      }
  ]
  ```
  
- 添加记录
  表3添加记录配置参数 
  | 参数   | 说明                                 |
  |:---|:---|
  | 表名   | 选择或者填写数据库中要插入数据的表名。                |
  | 插入数据 | 填写插入操作中目标字段的值（注意值要用英文单引号包住）。       |
  | 数据结构 | 配置结果的输出字段，在选择数据库表时会自动生成。在添加记录中无含义。 |
     
  表4添加记录输出 
  | 参数            | 说明                                                                                                   |
  |:---|:---|
  | Updated Count | 返回插入结果的行数。Property说明详见[组合应用引用变量](https://support.huaweicloud.com/usermanual-roma/roma_03_5212.html)。 |
     
  
- 更新记录
  表5更新记录配置参数 
  | 参数      | 说明                                                                                               |
  |:---|:---|
  | 表名      | 选择或者填写数据库中要更新数据的表名。                                                                              |
  | 更新数据    | 填写更新操作中目标字段的值。                                                                                   |
  | WHERE条件 | 指定条件以选择需要更新的行。例如：column_name='value'。支持=、!=、\>、\<、\>=、\<=、like、in、not in、is null、is not null操作符。 |
  | 数据结构    | 配置结果的输出字段，在选择数据库表时会自动生成。在更新记录中无含义。                                                               |
     
  表6更新记录输出 
  | 参数            | 说明                                                                                                   |
  |:---|:---|
  | Updated Count | 返回更新结果的行数。Property说明详见[组合应用引用变量](https://support.huaweicloud.com/usermanual-roma/roma_03_5212.html)。 |
     
  
- 增量获取记录
  表7增量获取记录配置参数 
  | 参数           | 说明                                                                                             |
  |:---|:---|
  | 表名           | 选择或者填写要增量获取记录的数据库中的表名。                                                                         |
  | 字段名          | 选择要查询数据表的字段名。                                                                                  |
  | WHERE条件      | 指定条件来过滤查询结果，例如：column_name='value'。支持=、!=、\>、\<、\>=、\<=、like、in、not in、is null、is not null操作符。 |
  | Order by字段   | 指定一个或多个列来对查询结果进行排序，例如：id DESC。                                                                 |
  | 增量获取时区       | 增量数据获取开始时区。                                                                                    |
  | 增量获取时间戳字段    | 增量数据获取的时间戳字段。所选字段需为'time'或'timestamp'类型。                                                       |
  | 增量获取时间戳初始值   | 增量数据获取的时间戳初始值。                                                                                 |
  | 重置增量获取时间初始值  | 是否开启重置增量获取时间初始值。未开启则从当前时间开始获取。                                                                 |
  | 增量获取时间补偿(毫秒） | 设置扩展的时间范围（单位：毫秒），用于避免遗漏可能延迟到达的记录。                                                              |
  | 数据结构         | 配置结果的输出字段，在选择数据库表时会自动生成。可手动进行修改。                                                               |
     
  表8增量获取记录输出 
  | 参数      | 说明                                                                                                                                   |
  |:---|:---|
  | Payload | 返回json格式行数据。键表示数据库字段名称，值表示数据库字段值。每行数据以逗号拼接。Payload说明详见[组合应用引用变量](https://support.huaweicloud.com/usermanual-roma/roma_03_5212.html)。 |
     
  增量获取记录示例：
  定时器（每天触发）→ Oracle（增量获取记录）→ 日志采集
  
- 删除记录
  表9删除记录配置参数 
  | 参数      | 说明                                                                                               |
  |:---|:---|
  | 表名      | 选择或者填写数据库中要删除数据的表名。                                                                              |
  | WHERE条件 | 指定条件以选择需要删除的行。例如：column_name='value'。支持=、!=、\>、\<、\>=、\<=、like、in、not in、is null、is not null操作符。 |
  | 数据结构    | 配置结果的输出字段，在选择数据库表时会自动生成。在删除记录中无含义。                                                               |
     
  表10删除记录输出 
  | 参数            | 说明                                                                                                   |
  |:---|:---|
  | Updated Count | 返回删除结果的行数。Property说明详见[组合应用引用变量](https://support.huaweicloud.com/usermanual-roma/roma_03_5212.html)。 |
     
  

- 同步数据
  表11同步数据配置参数 
  | 参数  | 说明                                                           |
  |:---|:---|
  | 表名  | 选择或者填写数据库中要同步数据的表名。 支持选择多个表。 |
  | 清空表 | 每次同步数据，是否先清空表。                                               |
     
  表12同步数据输出 
  | 参数      | 说明                                                                                                                                   |
  |:---|:---|
  | Payload | 返回json格式行数据。键表示数据库字段名称，值表示数据库字段值。每行数据以逗号拼接。Payload说明详见[组合应用引用变量](https://support.huaweicloud.com/usermanual-roma/roma_03_5212.html)。 |
     
  该动作可适用于以下场景：
  1. 从数据库获取流数据并将其保存到另一个数据库，目标表名应该与源表名相同：
     - oracle"获取数据库变更"动作 → oracle"同步数据"动作；
     
     - 定时器 任意触发动作 → oracle"增量获取记录"动作 → oracle"同步数据"动作。
      
  
  2. 从数据库获取流数据并将其保存到另一个数据库，目标表名应该与源表名不同，通过"数据映射"处理器完成表名映射：
     - oracle"获取数据库变更"动作 → 数据映射 → oracle"同步数据"动作；
     
     - 定时器 任意触发动作 → oracle"增量获取记录"动作 → 数据映射 → oracle"同步数据"动作。
      
   
- 自定义SQL
  表13自定义SQL配置参数 
  | 参数   | 说明                                                                               |
  |:---|:---|
  | 执行语句 | 执行语句内容会明文展示所输入信息，防止信息泄露。仅支持执行一条select、update、insert或delete语句。select语句最多返回500条数据。 |
     
  表14自定义SQL输出 
  | 参数             | 说明                                                                                                                                   |
  |:---|:---|
  | Payload        | 返回json格式行数据。键表示数据库字段名称，值表示数据库字段值。每行数据以逗号拼接。Payload说明详见[组合应用引用变量](https://support.huaweicloud.com/usermanual-roma/roma_03_5212.html)。 |
  | Updated count  | 更新数据行数                                                                                                                               |
  | Selected count | 查询数据行数                                                                                                                               |
  | Start time     | 节点执行开始时间。                                                                                                                            |
  | End time       | 节点执行结束时间。                                                                                                                            |
  | Execution time | 节点执行耗时，单位：ms。                                                                                                                        |
     
  
 
