达梦V8的数据迁移工具DTS常见报错1及其解决办法

报错:line 1, column 85, nearby [identity] has error: Syntax error

procedure deleteBusiness(identity in varchar2,res out number)
                        is
                        businessId number(20) := 0 ;
                        getBusinessIdSQL varchar(300) ;
                        getBusinessStructureIdSQL varchar(200) ;
                        cursor1 types.cursorType ;
                        oneRow number(20) ;
                        begin
                         getBusinessIdSQL := 'select business.id from B business where business.esidentifier = ''' || identity || '''' ;
                         open cursor1 for getBusinessIdSQL;
                         loop
                            begin
                              fetch cursor1 into oneRow;
                              exit when cursor1 %NOTFOUND;
                              if oneRow is not null then
                                 begin
                                     businessId := oneRow ;
                                 end ;
                              end if ;
                            end;
                         end loop ;
                         close cursor1 ;
                         if businessId != 0 then
                            begin
                               getBusinessStructureIdSQL := 'select businessStructure.Id_Structure from A businessStructure where businessStructure.Id_Business = ' || businessId;
                               open cursor1 for getBusinessStructureIdSQL;
                               loop
                                   begin
                                      fetch cursor1 into oneRow;
                                          exit when cursor1 %NOTFOUND;
                                          if oneRow is not null then
                                             begin
                                                res := funDelStrc(oneRow) ;
                                             end ;
                                          end if ;
                                   end;
                               end loop ;
                               close cursor1 ;
                               res := funDelMenuRef(businessId) ;
                               delete from C businessMenu where businessMenu.Business_Id = businessId ;
                               delete from D businessButton where businessButton.Business_Id = businessId ;
                               delete from E businessOption where businessOption.Business_Id = businessId ;
                               delete from F packageRight where packageRight.Business = businessId ;
                               delete from G estype where estype.business_id = businessId ;
                               delete from H business where business.id = businessId ;
                            end ;
                         end if;
                         commit ;
                         res := 1 ;
                        end ;

在这里插入图片描述

报错:line 8,column 16,nearby [stat] has error: Syntax error


procedure createS is
                                       cursor structureIdsCur is SELECT distinct (REPLACE(REPLACE(table_name,'ESP_',''),'_TAMP','')) as id
                                           FROM USER_TABLES  WHERE TABLE_NAME LIKE 'ESP/_%' escape '/';
                                       oneId structureIdsCur%rowtype ;
                                       tablename varchar2(100);
                                       str varchar2(100);
                                       strsql varchar2(500);
                                       stat number ;
                                       cou number ;
                                begin
                                       for oneId in structureIdsCur loop
                                           tablename:= 'esp_' || oneId.id ;
                                           str:= 'select count(*) as int from A where tname=upper('''|| tablename||''')' ;
                                           execute immediate str into cou ;
                                           if cou>0 then
                                                   begin
                                                   strsql:= 'select nvl(max(id),0)+1 from ' || tablename ;
                                                   execute immediate strsql into stat ;
                                                   strsql:='create sequence seq_' || tablename || ' minvalue 1 maxvalue 999999999999999999999999999 start with '|| stat ||' increment by 1 nocache';
                                                   execute immediate strsql;
                                                   end;
                                            end if ;
                                       end loop ;

                                end createS;

在这里插入图片描述

解决办法1:

将在存储过程中涉及到达梦关键字例如“identity”,“stat”修改名字为“identity_1”,“stat_1”,重新执行./dts导入

解决办法2:

1、修改dm_svc.conf ,在KEYWORDS中添加达梦的关键字:标识用户关键字,所有在列表中的字符串,如果以单词的形式出现在SQL语句中,则这个单词会被加上双引号。该参数主要用来解决用户需要使用DM8中的保留字作为对象名使用的状况。

[dmdba@dmdb1 etc]$ cat /etc/dm_svc.conf 

TIME_ZONE=(+480)
LANGUAGE=(ch)
KEYWORDS=(identity,stat)


[dmdba@dmdb1 etc]$ 

2、重新开启./dts,重新执行导入

在这里插入图片描述

达梦在线服务平台:https://eco.dameng.com

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在达梦数据库v8中创建表,您可以按照以下步骤进行操作: 1. 首先,确保您已经安装了达梦数据库v8,并按照安装文档完成了安装和配置。 2. 使用数据库管理工具或命令行连接到达梦数据库。 3. 创建一个表空间来存储您的表。您可以使用以下命令创建一个名为"TEST"的表空间: ```sql create tablespace "TEST" datafile '/home/dmdba/dmdbms/data/DMOA/TEST.DBF' size 20240 autoextend on next 1 CACHE = NORMAL; ``` 这将创建一个名为"TEST"的表空间,并指定了数据文件的路径和大小。您可以根据需要进行调整。 4. 在您选择的表空间中创建表。您可以使用常规的SQL创建表的语法来创建表,例如: ```sql create table 表名 ( 列名1 数据类型1, 列名2 数据类型2, ... ); ``` 您可以根据需要定义表的列和数据类型。 请注意,以上步骤仅涵盖了创建表的基本过程。在实际使用达梦数据库v8时,您可能需要考虑其他因素,如表的约束、索引等。您可以参考达梦数据库v8的文档或使用在线文档来了解更多详细信息和操作指南。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [linux安装达梦数据库v8](https://blog.csdn.net/OceanWaves1993/article/details/129936878)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [达梦数据库v8,创建表空间、用户命令语句](https://blog.csdn.net/zhangbest2009/article/details/122146801)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值