<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>CHECK_CONS_NAME &#8211; 良的世界</title>
	<atom:link href="https://www.lemonary.cn/tag/check_cons_name/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.lemonary.cn</link>
	<description></description>
	<lastBuildDate>Tue, 12 Aug 2025 02:50:29 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://www.lemonary.cn/wp-content/uploads/2024/12/profile-150x150.jpg</url>
	<title>CHECK_CONS_NAME &#8211; 良的世界</title>
	<link>https://www.lemonary.cn</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>一次跨版本逻辑迁移的异常记录</title>
		<link>https://www.lemonary.cn/%e4%b8%80%e6%ac%a1%e8%b7%a8%e7%89%88%e6%9c%ac%e9%80%bb%e8%be%91%e8%bf%81%e7%a7%bb%e7%9a%84%e5%bc%82%e5%b8%b8%e8%ae%b0%e5%bd%95/</link>
					<comments>https://www.lemonary.cn/%e4%b8%80%e6%ac%a1%e8%b7%a8%e7%89%88%e6%9c%ac%e9%80%bb%e8%be%91%e8%bf%81%e7%a7%bb%e7%9a%84%e5%bc%82%e5%b8%b8%e8%ae%b0%e5%bd%95/#respond</comments>
		
		<dc:creator><![CDATA[shine]]></dc:creator>
		<pubDate>Tue, 12 Aug 2025 02:21:09 +0000</pubDate>
				<category><![CDATA[DM]]></category>
		<category><![CDATA[CHECK_CONS_NAME]]></category>
		<category><![CDATA[dexp/dimp]]></category>
		<guid isPermaLink="false">https://www.lemonary.cn/?p=2311</guid>

					<description><![CDATA[一、问题背景 数据迁移用户SJXT下的数据，由版本8.1.2.18（1.2.18-21.10.12-14871 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">一、问题背景</h2>



<p class="wp-block-paragraph">数据迁移用户SJXT下的数据，由版本8.1.2.18（1.2.18-21.10.12-148712-10013-ENT Pack15）迁移到8.1.3.26（&#8211;03134284058-20230614-193125-20046）版本中。</p>



<h2 class="wp-block-heading">二、问题描述</h2>



<p class="wp-block-paragraph">迁移方案为用户级逻辑导出导入（OWNER）。导出导入均使用目标端工具，即直接将数据通过远程dexp到目标端，然后通过dimp导入。流程如下：</p>



<p class="wp-block-paragraph">（1）目标端重建用户</p>



<pre class="wp-block-code"><code>drop user SJXT cascade;
create user "SJXT" identified by "xxxx" default tablespace "TBS_SJXT" default index tablespace "TBS_SJXT";
grant "SOI","VTI","PUBLIC","RESOURCE" to "SJXT";</code></pre>



<p class="wp-block-paragraph">（2）逻辑导出</p>



<pre class="wp-block-code"><code>./dexp USERID=sysdba/'"xxxxx"'@源端IP:5236 FILE=SJXT.DMP LOG=EXP_SJXT.LOG DIRECTORY=/data/soft OWNER=SJXT</code></pre>



<p class="wp-block-paragraph">（3）逻辑导入</p>



<pre class="wp-block-code"><code>nohup ./dimp USERID=sysdba/'"xxxxxx"'@localhost:5236 FILE=SJXT.DMP LOG=IMP_SJXT.LOG DIRECTORY=/data/soft OWNER=SJXT &amp; </code></pre>



<p class="wp-block-paragraph">导入日志中存在报错，源端共432张表，目标端导入314张表，118张表导入失败，通过日志查看到都是同样报错<code>[WARNING]create table fail, import table XXXXXX …</code></p>



<p class="wp-block-paragraph">详细日志细节如下：</p>



<pre class="wp-block-code"><code>----- &#91;2025-08-08 20:13:22]import table:VIOLATIONS_DISCIPLINE_LAWS -----
&#91;1/1548]create table VIOLATIONS_DISCIPLINE_LAWS  
 CREATE SCHEMA "SJXT" AUTHORIZATION  "SJXT" CREATE TABLE "VIOLATIONS_DISCIPLINE_LAWS"
(
"ID" VARCHAR2(50),
"MAJOR_DISCI_ILLEGAL_FACT" VARCHAR2(200),
"RESPONSIBLE_DEPARTMENT" VARCHAR2(200),
"BUSINESS_PROCESS" VARCHAR2(50),
"IS_RELY_EAT_INS" VARCHAR2(50),
"POLICY_PLAN_BREACH_P" VARCHAR2(50),
"FIVE_VOIDS_PROBLEM" VARCHAR2(50),
"NATURE_DISCIP_ILLEGAL_I" VARCHAR2(50),
"AMOUNT_INVOLVED" VARCHAR2(50),
"OFFENCE_OCCURRENCE_TIME" VARCHAR2(50),
"PROBLEMSCLUENO" VARCHAR2(50),
"S_FLAG" VARCHAR2(50),
"S_USER" VARCHAR2(50),
"S_DEPT" VARCHAR2(50),
"S_TDEPT" VARCHAR2(50),
"S_ODEPT" VARCHAR2(50),
"S_CMPY" VARCHAR2(50),
"S_ATIME" VARCHAR2(50),
"S_MTIME" VARCHAR2(50),
"INSURANCE_TYPE" VARCHAR2(50),
 CONSTRAINT "CONS134222904" CLUSTER PRIMARY KEY("ID")) STORAGE(CLUSTERBTR) ;

&#91;WARNING]Error Code:-2109,Invalid constraint name &#91;CONS134222904] 

&#91;WARNING]create table fail, import table VIOLATIONS_DISCIPLINE_LAWS ...</code></pre>



<p class="wp-block-paragraph">可以看到是因为约束名无效导致建表失败。</p>



<h2 class="wp-block-heading">三、问题复现与分析</h2>



<p class="wp-block-paragraph">后续通过测试环境复现报错，发现是数据库在后续版本新增了一个参数<code>CHECK_CONS_NAME</code>：在创建或重命名约束时，是否对约束名合法性进行检查。0：不检查；1：检查。</p>



<p class="wp-block-paragraph">该参数新增于版本：</p>



<p class="wp-block-paragraph">版本名称：DM8 三月月度版<br>发版日期：2023 年 4 月 17 日<br>版本号：<code>select * from v$version;</code><br>DM Database Server 64 V8<br>DB Version: 0x7000c<br>03134284044-20230417-187846-20040</p>



<p class="wp-block-paragraph">CONS+9位数字是数据库系统索引，由数据库自动维护生成的。参数早期会额外检查dimp导入时的建表语句，引起预期外的报错，从而因为约束名检查无法通过导致建表失败的迁移报错。</p>



<h2 class="wp-block-heading">四、问题解决</h2>



<p class="wp-block-paragraph">逻辑导入之前临时修改该参数为0便可成功导入数据。参数修改方法：</p>



<pre class="wp-block-code"><code>SP_SET_PARA_VALUE(1,'CHECK_CONS_NAME',0);</code></pre>



<p class="wp-block-paragraph">记得数据导入后将参数修改回1，SQL如下：</p>



<pre class="wp-block-code"><code>SP_SET_PARA_VALUE(1,'CHECK_CONS_NAME',1);</code></pre>
]]></content:encoded>
					
					<wfw:commentRss>https://www.lemonary.cn/%e4%b8%80%e6%ac%a1%e8%b7%a8%e7%89%88%e6%9c%ac%e9%80%bb%e8%be%91%e8%bf%81%e7%a7%bb%e7%9a%84%e5%bc%82%e5%b8%b8%e8%ae%b0%e5%bd%95/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
