返回顶部
首页 > 资讯 > 数据库 >dimp时报错,字符串截断
  • 688
分享到

dimp时报错,字符串截断

2024-04-02 19:04:59 688人浏览 独家记忆
摘要

现象描述 达梦也有自己的逻辑备份工具(dexp 、dimp )用法和oracle 类似,详细用法可以参考官方手册dexp&dimp.pdf 但是,我们有时候在进行dimp 时,会碰到字符串截断

现象描述

达梦也有自己的逻辑备份工具(dexp 、dimp )用法和oracle 类似,详细用法可以参考官方手册dexp&dimp.pdf

但是,我们有时候在进行dimp 时,会碰到字符串截断的问题。

碰到这种问题,我们怎么解决呢?

受限我们一定要非常明确,字符串截断这个报错,一定就只是精度不足,这里只是针对两种可能的情况的,描述下该问题。

只需要考虑两个问题:

Ø   是否表结构不一致,就是dexp 的表,是varchar (500 ),我们导入的表只是varchar (400

这种情况少,因为有时候我们经常是全用户新建导入,表结构也是源端带入过来的。

Ø   Dexp 源端的数据库实例字符集,是否和dimp 目的端数据库实例的字符集一致

这个是我们可能没有注意的问题。

处理方法

处理方法一:核查表结构是否一致

是否表结构不一致,就是dexp 的表,是varchar (500 ),我们导入的表只是varchar (400 )

这个问题好理解,就是字面意思,我们只需要把目的表的精度改成和源端一致,重新清空目的表,再导入即可。

处理方法二:核查数据库实例字符集

我们碰到这个问题的时候,实际上就是我们从UTF-8 的数据库实例上dexp 出来的数据库,往GB18030 的数据库实例上dimp ,才会碰到这个问题。

默认情况下,达梦数据库实例的varchar 字段的精度,表示的含义是字节,而对于汉字而言,在UTF-8 编码下的字节占用,是比GB18030 编码下的字节占用,要大。

所以反过来说,对于dexp&dimp 搬过来的表结构,都是一致的情况下,比如:都是varchar (400 ),可以存放的汉子个数,是不一样的。

备注:

-           对于同一项目内的数据库实例、可能需要互相进行数据传递的实例之间,务必把数据库底层参数(含字符集)规划并切实设置成一致!

-           同一项目内的数据库实例,请务必保持一致、非同一项目内,有数据传递需求,但是相关性不搞,且确实不能保持一致的字符集,可以通过手动放大目的端数据库实例上的varchar 字段精度。为什么可以这样处理,方法二中已经说明。

这是一个把数据库实例中目标表中的所有varchar 字段,精度放大一倍的脚本(当成sql 执行):通过控制游标查出来的表即可。

declare

begin

for rs in(

select sch.name sch,tab.name tab,col.name   col,COl.length$ len from sysobjects sch,sysobjects tab ,syscolumns col

where sch.id=tab.schid and   sch.name||'.'||tab.name in (

'USER.TABUTKMONITOR',

'USER.TABUTHORIZATioNRISKLOG',

'USER.TABUSTOMER',

'USER.TABARD',

'USER.TABOSSREPORT',

'USER.TABUDGETENTITYCARDS',

'USER.TABRANSACTIONLOG',

'USER.TABCCOUNT',

'USER.TABSTOMERINFO',

'USER.TABRANSACTIONLOG',

'USER.TABUTHORIZATIONRISKLOG'

)

and tab.id=col.id and col.TYPE$ in   ('VARCHAR','VARCHAR2') ) loop

declare

begin

 execute immediate 'alter table   "'||rs.sch||'"."'||rs.tab||'" modify '||rs.col||'   varchar('||rs.len*2||');';

exception when others then

 print(sqlerrm);

end;

end loop;

end;

您可能感兴趣的文档:

--结束END--

本文标题: dimp时报错,字符串截断

本文链接: https://lsjlt.com/news/47115.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • dimp时报错,字符串截断
    现象描述 达梦也有自己的逻辑备份工具(dexp 、dimp )用法和Oracle 类似,详细用法可以参考官方手册dexp&dimp.pdf 但是,我们有时候在进行dimp 时,会碰到字符串截断...
    99+
    2024-04-02
  • shell字符串截取报错:Bad substitution的解决
    问题重现: 当前系统Ubuntu16 shell进行字符串截取 运行 ${GIT_COMMIT:0:6}报错: /tmp/jenkins7505855461406722507.sh: 4: /tmp/jenkins7...
    99+
    2022-06-04
    shell字符串截取报错 shell字符串截取
  • shell字符串截取报错:Bad substitution怎么办
    小编给大家分享一下shell字符串截取报错:Bad substitution怎么办,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!问题重现:当前系统Ubuntu16...
    99+
    2023-06-09
  • Mysql字符串截取
    一、left()         从左边截取字符串 用法:left(str,length), 即:left(被截取字符串,截取长度) select left('fuyinghao',4);      ...
    99+
    2023-09-18
    mysql 数据库
  • php字符串截取
    一、strstr获取指定字符串之后或之前所有字符 1、使用 strstr("原始字符","指定的字符",布尔值) 布尔值为可选,为 true 返回第一次出现之前的字符串部分,默认为false 返回 返回第一次出现之前的字符串部分 str...
    99+
    2023-08-31
    php Powered by 金山文档
  • Python字符串截取
    1.字符串取值方式正序 说明:从左到右索引默认0开始的,最大范围是字符串长度少1 语法:[头下标:尾下标] 示例1: #!/usr/bin/python # -*- coding: UTF-8 -*- # 正序取值 mystr = 'abc...
    99+
    2023-01-31
    字符串 Python
  • Python 字符串操作之字符串的截取
    字符串的截取 字符串的截取是实际应用中经常使用的技术,被截取的部分称为“子串”。Java中使用函数substr()获取子串,C#使用函数substring()获取子串。而Python由于内置了序列,可以通过前面介绍的索引...
    99+
    2023-09-11
    python c# 开发语言
  • CSS中怎么用省略号截断长字符串
    这篇文章给大家分享的是有关CSS中怎么用省略号截断长字符串的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 答:使用CSS文本溢出属性 您可以将CSStext-overflow...
    99+
    2024-04-02
  • Oracle中获取字符串下标、截取字符串
    Oracle中获取字符串下标、截取字符串   获取下标: SELECT INSTR("AAA-BBB-CCC-DDD", "-", 1, 1) as 字符位置 FROM dual   截取字符串:   SELEC&#...
    99+
    2014-08-21
    Oracle中获取字符串下标 截取字符串
  • java截取字符串后几位字符
    Java中的String类提供了一个substring(int from, int to)方法用于截取字符串中位置为from到to-1位置的字符。因为字符串的字符位置是从0开始的,而substring(int from,...
    99+
    2018-03-29
    java基础 java 截取 字符串 后几位 字符
  • mysql中怎么在查询时截取字符串
    本篇文章给大家分享的是有关mysql中怎么在查询时截取字符串,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。SELECT substri...
    99+
    2024-04-02
  • JavaScript怎么截取字符串
    本文小编为大家详细介绍“JavaScript怎么截取字符串”,内容详细,步骤清晰,细节处理妥当,希望这篇“JavaScript怎么截取字符串”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新...
    99+
    2024-04-02
  • css怎么截取字符串
    本篇内容主要讲解“css怎么截取字符串”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“css怎么截取字符串”吧! 代码如下:<h...
    99+
    2024-04-02
  • C#怎么截取字符串
    这篇文章主要介绍“C#怎么截取字符串”,在日常操作中,相信很多人在C#怎么截取字符串问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C#怎么截取字符串”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!C#截取字...
    99+
    2023-06-17
  • MySQL 字符串截取操作
    一:MySQL 字符串截取相关函数 首先来看一下 MySQL 中跟字符串截取相关的函数有: left(), right(), substring(), substring_index()、 mid()...
    99+
    2023-09-21
    mysql 字符串截取 substr substring_index
  • JS怎么截取字符串
    本篇内容主要讲解“JS怎么截取字符串”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JS怎么截取字符串”吧!substr() 方法substr() 方法可在字符串中抽取从&nb...
    99+
    2023-06-29
  • Linux字符串怎么截取
    今天小编给大家分享一下Linux字符串怎么截取的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。假设有变量 var=http:/...
    99+
    2023-06-28
  • Java截取字符串方法
    主要有以下几种方法:     1、通过subString()方法来进行字符串截取(最常用)    2、通过StringUtils(apache的)提供的方法或者StrUtil(hutool的)    3、split()+正则表达式...
    99+
    2023-09-01
    java 开发语言
  • Python如何截取字符串
    本文小编为大家详细介绍“Python如何截取字符串”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python如何截取字符串”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。前言Python 提供了很多截取字符串的方...
    99+
    2023-07-02
  • Mysql - 字符串截取、拆分
    前言 在开发过程中,字符串的截取虽然可以在程序代码中来做,但是如果可以在 SQL 语句中处理,又不会造成 SQL 语句变的很复杂,那自然就可以在 SQL 语句中处理,速度还会更快一点。这个就需要根据具体的业务进行衡量了 概述 一、截取字符串...
    99+
    2023-08-19
    mysql 字符串截取 字符串拆分
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作