栈空间不够会报错吗_oracle迁移达梦常见问题汇总

本文总结了一次Oracle数据库向达梦数据库迁移过程中遇到的问题,包括关键词冲突、表迁移错误、函数包问题等,并提供了相应的解决方法,如修改SQL、调整数据库设置等。
摘要由CSDN通过智能技术生成

0、说明

本文主要结合之前一次oracle迁移达梦的项目,将碰到的问题以及一系列踩过的坑列举出来供大家参考,数据库版本是达梦7。(本文中涉及到的部分对象名已用sch1,tab1等方式替换)

1、整体情况

迁移过程中失败任务数低于5%,大部分对象和数据都能够保证正常迁移。其中对于出错的任务,主要有导表和导函数包两部分。其中主要棘手的在与迁移函数包等对象时的问题。

https://www.cndba.cn/foucus/article/4142

2、迁移错误详解

2.1、通用问题

说明:对于直接使用DTS迁移失败的包,最好从源端获取完整的定义,重新核查报错原因 —— 避免编译通过后,报错 xxx 对象未在 xxx 包中定义!(包头和包体不匹配:包头定义了三个函数,在包体中,可能只有两个函数)https://www.cndba.cn/foucus/article/4142

2.1.1、关键词问题

a、关键词问题的处理方式

i、在包中手工改写,如,原先有变量名字为dateDiff,手动改写为“dateDiff”——用双引号屏蔽关键字。

ii、在客户端的配置文件(dm_svc.conf)中,配置对应关键字,迁移包时,不做改动,让驱动自动为我们做上述i中的事情。如下图即为配置屏蔽 TRACE和ROWS两个关键字:

达梦中的关键字可以在达梦SQL使用手册中查询,也可以使用下面SQL查询:

select * from V$RESERVED_WORDS where RESERVED='Y';

2.1.2、中文符号的问题

a、达梦的PLSQL中,不支持中文标点、异常空白符。(即不是空格、/r、/n的其他的空白符、不支持全角符号 —— 当成字符串处理的除外)

b、该空白符通过客户端工具,调整编辑器为显示空白字符,可以分别异常空白符

所有正常的空格,均会显示为:虚点;如果是没有虚点的空白符,即为异常的空白符(常见于从邮件中、网页、QQ聊天框等中,直接复制出来的SQL)

2.2、表迁移问题

2.2.1、标度大于精度

/* 任务失败: 创建表"sch1"."tab1" */

/* 第8 行附近出现错误:

标度大于精度 */

/* 相关SQL语句: */

CREATE TABLE "sch1"."tab1"

(

"REGION_NAME" VARCHAR2(20) NULL,

"RATE" NUMBER(3,4) NULL,

"SCORE" VARCHAR2(20) NULL,

"CHECK_MONTH" VARCHAR2(20) NULL,

"INSERT_TIME" TIMESTAMP(0) NULL

);

解决方式:

达梦里面精度

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值