datax达梦数据库

Oracle转达梦数据库

  • 失败案例:
{
	"job": {
		"setting": {
			"speed": {
				"byte": 1048576
			},
			"errorLimit": {
				"record": 0,
				"percentage": 0.02
			}
		},
		"content": [{
			"reader": {
				"name": "oraclereader",
				"parameter": {
					"username": "username",
					"password": "password",
					"connection": [{
						"jdbcUrl": ["jdbc:oracle:thin:@[host]:port:orcl"],
						"querySql":["select * from tableName"]
					}]
				}
			},
			"writer": {
				"name": "rdbmswriter",
				"parameter": {
					"connection": [{
						"jdbcUrl": "jdbc:dm://localhost:5236/XXX",
						"table": ["tableName"]
					}],
					"username": "username",
					"password": "password",
					"table": "tableName",
					"column": ["column1", "column2", "column3"]
				}
			}
		}]
	}
}

报错信息:
在这里插入图片描述

经多次测试和分析

错误原因:在tableName前没有添加库名前缀

纠正:将涉及达梦数据库tableName的前面全加上库名前缀“XXX”即可成功执行。

  • 成功案例:
{
	"job": {
		"setting": {
			"speed": {
				"byte": 1048576
			},
			"errorLimit": {
				"record": 0,
				"percentage": 0.02
			}
		},
		"content": [{
			"reader": {
				"name": "oraclereader",
				"parameter": {
					"username": "username",
					"password": "password",
					"connection": [{
						"jdbcUrl": ["jdbc:oracle:thin:@[host]:port:orcl"],
						"querySql":["select * from XXX.tableName"]
					}]
				}
			},
			"writer": {
				"name": "rdbmswriter",
				"parameter": {
					"connection": [{
						"jdbcUrl": "jdbc:dm://localhost:5236/XXX",
						"table": ["XXX.tableName"]
					}],
					"username": "username",
					"password": "password",
					"table": "tableName",
					"column": ["column1", "column2", "column3"]
				}
			}
		}]
	}
}

在这里插入图片描述

在这里插入图片描述

注意:以上代码涉及username、password、库名、表名均已替换,请换成自己的库表名称再做尝试。

读者在使用的时候最好使用datax官网的reader和writer数据库模板。

原创不易,侵权必究。

### 实现Oracle数据库连接到达梦数据库 #### 使用DataX作为迁移工具 为了实现从Oracle达梦数据库的数据传输,可以采用阿里云开发的开源工具——DataX。此工具支持多种异构数据源之间的高效数据同步功能[^3]。 对于具体操作而言,在配置文件`D:\datax\plugin\reader\rdbmsreader\plugin.json`以及`D:\datax\plugin\writer\rdbmswriter\plugin.json`中确认已加入对应版本的达梦驱动名称,这一步骤至关重要以保障读取器能够识别目标端口并建立有效链接。 ```json { "name": "dm", "class": "com.datax.plugin.writer.dmdbwriter.DmDbWriter" } ``` 上述JSON片段展示了如何指定达梦数据库写入插件类路径的一个例子;同样地,针对读取部分也需要相应调整来匹配Oracle环境下的需求。 #### JDBC驱动设置 除了利用专门设计用于跨平台间转移记录集的应用程序外,另一种常见的方式就是通过JDBC接口完成两套系统间的交互过程。此时需下载适用于各自品牌的Java桥接组件(即`.jar`包),并将它们加载至应用程序服务器或者命令行界面当中去执行必要的SQL语句从而达成目的。 例如,在Java项目里引入依赖项: ```xml <dependency> <groupId>com.oracle.database.jdbc</groupId> <artifactId>ojdbc8</artifactId> <version>19.8.0.0</version> </dependency> <!-- 达梦 --> <dependency> <groupId>dm</groupId> <artifactId>dmjdbc</artifactId> <version>7.1.6.24</version> </dependency> ``` 以上Maven坐标分别指向了最新版别的Oracle达梦关系型数据库管理系统对应的客户端库文件,确保开发者能够在编码期间顺利调用API函数实施查询动作或是事务处理逻辑。 #### 连接字符串构建 当所有前置条件均已满足之后,则可着手准备实际发起请求前的最后一环工作—拼凑URL参数串。这里给出一段Python风格伪代码用来展示怎样组合成兼容双方协议标准的形式化表达式: ```python import jaydebeapi as jdbc oracle_conn_str = 'jdbc:oracle:thin:@//host:port/service_name' dm_conn_str = 'jdbc:dm://host:port;DatabaseName=DB_NAME' conn_oracle = jdbc.connect( 'oracle.jdbc.driver.OracleDriver', oracle_conn_str, ['username', 'password'] ) conn_dm = jdbc.connect( 'dm.jdbc.Driver', dm_conn_str, ['username', 'password'] ) ``` 这段脚本示范了借助第三方模块`jaydebeapi`简化创建持久性会话对象的过程,并指明了不同厂商产品特有的语法结构差异之处以便读者参照学习。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值