达梦数据库mysql存储过程用dts根据迁移到达梦数据库时报错:错误号: -2007 错误消息: 第 53 行, 第 7 列[1062]附近出现错误: 语法分析出错100


九龙坡土狗
九龙坡土狗 2024-04-09 14:45:23 48985
分类专栏:问题 问题分类: 其它未定义问题
系统自动结题
3 个回答
  • 1843880570 进阶 2024-04-09 15:41:43

    DM DTS 工具存放在 DM 数据库安装目录下 tool 文件夹,执行 ./dts 即可运行 DM DTS 工具。
    新建工程,选择迁移,并右键新建迁移。
    在新建工程对话框中填写工程名和工程描述信息,点击【确定】按钮,成功添加了一个工程。如下图所示:


    展开工程节点,选择【新建迁移】。输入迁移名称:test 迁移描述:从mysql迁移到DM
    点击【确定】按钮,完成迁移的创建。


    选择迁移方式
    默认打开目录为 DM DTS 工具介绍,选择【下一步】。迁移方式选择【MySQL–>DM】方式,如下图所示:

     

    选择数据源和目的库
    分别输入主机名 (IP) 端口(MySQL 默认端口 3306,DM 默认端口 5236),用户名和口令(DM 默认口令 SYSDBA),数据库名 (test),如下图所示:


    这里指定驱动后,报错提示连接数据库失败。我查了一下造成这个问题的原因,是mysql的时区值设置的不正确。mysql默认的时区值是美国,中国的时区要比美国晚8小时,需要采用+8:00的格式。
    登录数据库查询:
    show variables like’%time_zone’; //查看mysql中设置的时区值
    (这里忘了截图,不过查询结果大致上是这样的)

    那么解决方法如下:
    找到配置文件my.ini,用notepad打开,在[mysql]节点下加上

    default-time-zone='+08:00'
    1


    修改后重启mysql服务

    重新查询时区值

    这样就可以顺利选择要迁移的库了

     

    指定对象复制或查询
    选择源模式和目的模式。从数据源复制对象,目的模式可选择现有模式。

    -- 创建表空间
    create tablespace "TEST" datafile 'E:\DM\DMTBS\TEST.DBF' size 256 autoextend on next 2 maxsize 10240 CACHE = NORMAL;
    -- 创建用户
    create user "TEST01" identified by "TEST01@111" default tablespace "TEST";
    -- 分配权限
    grant "DBA","PUBLIC","VTI","SOI" to "TEST01";
    1
    2
    3
    4
    5
    6

     

    选择迁移对象
    此处选择要迁移的模式并核对目的模式、对象。如需调整,用户可根据名称具体选择。
    mysql迁移DM,建议迁移顺序:先表结构,再数据,再约束索引
    选择所有需要迁移的表,点击转换按钮


    迁移表结构
    可设置迁移策略,包括表定义、主键、约束条件、索引、数据、读写行数设置等参数,可供用户调整策略。
    列映射选项中可调整列名、数据类型、精度、主键(唯一)、空值限制等参数。

    取消勾选数据,约束,索引,保留表结构相关。

    勾选左下角的应用当前选项到其他同类对象。


    审阅迁移任务


    同样的步骤,重新迁移数据。


    最后迁移约束和索引

     

    验证数据
    至此,整个迁移全部完成,打开DM管理工具,找到对应模式,


    总结
    具体迁移中遇到的报错问题,结合实际分析解决。

    赞同 0 反对 0

  • 媛可爱 新手 2024-04-09 23:13:37

    很显然,mysql的语法结构与达梦数据库的语法结构不完全一致,达梦的语法很像Oracle,所以在迁移的过程中,很容易出现语法错误,如果需要完整解决这个问题,需要你将53行的语句贴出来,然后确定哪个关键词不被达梦所识别,换成能被达梦识别的语句就可以了

    赞同 0 反对 0

  • prtyaa 新手 2024-04-15 00:01:23

    数据库中有一种数据类型叫BLOB,如果你遇到了和我同样的问题,请找到这一字段,然后把带有这些字段的插入指令中blob的字段数值全部改为to_blob(“x”)。
    例如某一字段是blob类型的,名字叫BLOB_COLUMN,本来要插入的是0x,那么不报错的插入语法是:INSERT “TABLE_NAME”.“BLOB_COLUMN” VALUES(to_blob(“0”));

    赞同 0 反对 0

    丫哈哈哈哈哈哈哈各个环节
九龙坡土狗新手
粉丝 0 发表 16 + 关注 私信
上周热门
统信系统能生成某一指定文件夹下的所有文件列表吗  2773
统信系统有自己的字幕屏幕保护程序吗  2533
统信软件能支持pandas吗  2456
统信系统如何在保证自己数据安全的基础上,进行数据分析,比如使用pandas进行大数据分析  2445
安全与发展,统信系统是如何在两者之间权衡,满足用户高效办公的要求  2104
统信系统的数据安全机制是什么  1770
统信软件支持python为什么不支持安装pandas  1115
您好,我想问一下,就是这银河麒麟系统,背景黑屏怎么办啊,其他的都正常,就是没有背景,设置里面的背景一点击系统就不响应了怎么解决?  178
我想连接共享打印机可是,搜索驱动时候没有,怎么办  162
uos有支持活体检测的软件吗  150
本周热议
麒麟系统登录输入密码后又需要重新输入密码,确定密码正确。如何处理? 12
求麒麟系统下的Broadcom 802.11n 无线网卡驱动 10
银河麒麟桌面操作系统V10 SP1安装应用时会反复提示安全授权认证,如何才能取消呢? 10
统信UOS系统下安装HP打印机驱动问题 10
银河麒麟系统登录时用户名是中文,如何将输入法切换成中文进行登录? 9
如何在统信系统使用VFP? 9
使用正版软件承诺书每年一签有相关的政策文件吗? 8
银河麒麟系统安装软件需要密码授权,单用户模式修改密码不行,如何解决 8
uos系统怎么装了向日葵,向日葵打不开啊? 7
有偿使用中国长城信创运维工程师(初级)证书 7

加入交流群

请使用微信扫一扫!