为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM8
【操作系统】:ky10.arrch64
【CPU】:
【问题描述】*:请问大佬们,DM8在通过dexpdp执行多表导出时,给某个表指定query条件目前报错,是不支持吗?
我现在执行时dexpdp *** tables=库名.表1,库名.表2 query="表2:"where count > 0""
执行会报错:Error Code:-2007,nearby [:] has error: Syntax error
是不是类似于expdp的tables+query组合?
就像下面这样的
expdp scott/*** directory=DIR dumpfile=dat.dmp tables=emp1,emp2,emp3 query='emp1:"WHERE deptno=20"', 'emp2:"WHERE age=30"', 'emp3:"WHERE year=2022"'
如果是的话,达梦的dexp也有类似的功能,我刚刚作了个简单的测试,测试情况如下,初步看应该能实现类似需求。
E:\dm8\bin>dexp SYSDBA/Dameng123@192.168.44.101 file=dat.dmp log=dat.log tables=T_CHAR,T_CHAR4,T_CHAR6 query="T_CHAR:\"where int_unicode = 48\"","T_CHAR4:\"where int_unicode = 49\"","T_CHAR6:\"where int_unicode = 50\""
dexp V8
version: 03134284488-20260330-320063-20200 Pack2
start dexp:
SYSDBA/******@192.168.44.101 file=dat.dmp log=dat.log tables=T_CHAR,T_CHAR4,T_CHAR6 query=T_CHAR:"where int_unicode = 48",T_CHAR4:"where int_unicode = 49",T_CHAR6:"where int_unicode = 50"
----- [2026-04-22 11:44:15]导出表:SYSDBA.T_CHAR -----
----- [2026-04-22 11:44:15]导出表:SYSDBA.T_CHAR4 -----
----- [2026-04-22 11:44:15]导出表:SYSDBA.T_CHAR6 -----
[表: T_CHAR]导出索引:IDX_T_CHAR_CH
[表: T_CHAR]导出索引:IDX_T_CHAR_CH_TYPE
[表: T_CHAR]导出索引:IDX_T_CHAR_F
[表: T_CHAR]导出索引:IDX_T_CHAR_GB18030
[表: T_CHAR]导出索引:IDX_T_CHAR_INT_UNICODE
[表: T_CHAR]导出索引:IDX_T_CHAR_UNICODE
[表: T_CHAR]导出索引:IDX_T_CHAR_UTF8
[表: T_CHAR]导出索引:CTIDX_T_CHAR_1
表SYSDBA.T_CHAR导出结束,共导出 1 行数据, 大小 0.292 KB
表SYSDBA.T_CHAR6导出结束,共导出 1 行数据, 大小 0.292 KB
表SYSDBA.T_CHAR4导出结束,共导出 1 行数据, 大小 0.292 KB
共导出 3 个TABLE
开始导出统计信息.....
整个导出过程共花费 0.425 s
成功终止导出, 没有出现警告

非常不理解为何这么做。 如果query针对不同表的查询条件,就不要这么搞。
如果多个表都有这个count>0条件,就不用写query的表前缀。