当前位置: 首页 > news >正文

南京网站建设与网络营销的关系国外网站怎么上

南京网站建设与网络营销的关系,国外网站怎么上,wordpress付费閱讀插件,建个网站 网页空间多少作者:杨文 DBA,负责客户项目的需求与维护,会点数据库,不限于MySQL、Redis、Cassandra、GreenPlum、ClickHouse、Elastic、TDSQL等等。 本文来源:原创投稿 *爱可生开源社区出品,原创内容未经授权不得随意使用…

作者:杨文

DBA,负责客户项目的需求与维护,会点数据库,不限于MySQL、Redis、Cassandra、GreenPlum、ClickHouse、Elastic、TDSQL等等。

本文来源:原创投稿

*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。


1、问题描述

有时我们在导入导出数据时,需要对数据进行处理,来满足业务上的数据需求,此时需要使用控制文件配合导数工具来满足业务上不同数据的需求。

2、控制文件模板:

lang=java(列名 字节偏移位置(可选) "预处理函数" 映射定义(可选),列名 字节偏移位置(可选) "预处理函数" 映射定义(可选),列名 字节偏移位置(可选) "预处理函数" 映射定义(可选)
);

简单示例:

lang=java
server=mysql/oracle
(c1 "nvl(c1,'not null')" map(field_position),c2 "none" map(field_position)
);

参数说明:

  • field_position为导入的数据文件中预处理数据的列位置。
  • 控制文件的命名规范:table_name.ctl,大小写与数据库中保持一致。
  • 控制文件的内容要求列名的顺序与表中定义的列顺序保持一致,且列名大小写与表中的列名大小写保持一致。

3、使用案例:

3.1、测试数据:

cat /data/test/TABLE/test.dat
1@##oceanbase@##2023-01-12 15:00:00.0@##1@##ob@##1@##ob
2@##oceanbase@##2023-01-12 15:00:00.0@##2@##ob@##2@##ob
3@##oceanbase@##2023-01-12 15:00:00.0@##3@##ob@##3@##obcreate table test01 (
id int(10) not null primary key,
name varchar(10),
time timestamp not null default '1971-01-01 01:01:01',
blank varchar(255) null
);create table test02 (
id int(10) not null primary key,
name varchar(10) not null,
time timestamp not null,
bar varchar(255) default null,
blank varchar(255) default null,
line varchar(255) default null,
mark  varchar(255) default null,
test  varchar(255) not null
);

3.2、案例1:

表列少于文本列:表全列导入。

控制文件:

vi /data/test01.ctl
lang=java(
id "none" map(1),
name "none" map(2),
time "none" map(3),
blank "none" map(5)
);

导入语句:

./obloader -h 10.186.60.94 -P 2883 -u root -p rootroot \
-c ywob -t mysql_yw_tent -D ywdb --table test01 --cut \
-f /data/test/TABLE/test.dat --log-path /data/ --external-data \
--replace-data --column-splitter '@##' --ctl-path /data/test01.ctl

输出结果:

All Dump Tasks Finished:
----------------------------------------------------------------------------------------------------No.#      |        Type       |        Name       |       Count       |       Status
----------------------------------------------------------------------------------------------------1        |       TABLE       |      test01       |         3         |      SUCCESS
-------------------------------------------------------------------------

可以看到是成功的。此时,我们进库再进行select查询数据进行验证,可以看到的确是成功的。

3.3、案例2:

表列少于文本列:表部分列导入。

控制文件:

vi /data/test01.ctl
lang=java(
id "none" map(1)
);

导入数据,可以看到报错信息:

Error:"Field 'id' doesn't have a default value"

修改控制文件:

vi /data/test01.ctl
lang=java(
id "none" map(1),
name "none" map(2)
);

此时再导入是成功的。

说明:

  • 插入部分列时,需要为插入的每列,在参数文件中指定对应的文本列。
  • not null列必须有对应的插入数据,或者是有缺省值。

3.4、案例3:

表列多于文本列:全列导入。

控制文件:

vi /data/test02.ctl
lang=java(
id "none" map(1),
name "none" map(2),
time "none" map(3),
bar "none" map(4),
blank "none" map(5),
line "none" map(6),
mark "none" map(7)
);

导入语句:

./obloader -h 10.186.60.94 -P 2883 -u root -p rootroot \
-c ywce -t mysql_yw_tent -D ywdb --table test02 --cut \
-f /data/test/TABLE/test.dat --log-path /data/ --external-data \
--replace-data --column-splitter '@##' --ctl-path /data/test02.ctl

输出结果:

All Dump Tasks Finished:
----------------------------------------------------------------------------------------------------No.#      |        Type       |        Name       |       Count       |       Status
----------------------------------------------------------------------------------------------------1        |       TABLE       |      test02       |         3         |      SUCCESS
----------------------------------------------------------------------------------------------------

可以看到是成功的。但是今天在另一个同版本的OB环境下意外的发现了一个怪事,竟然报错了:

Error: Column count doesn't match value count at row 1

报错信息:列数不匹配。

根据这种情况进行分析:发现JDK版本不一致。并且可以看到导入的数据文件比表结构少一列,数据文件以“@##”作为列分隔符,并且最后一列结尾没有分隔符。

解决:

方式1:修改控制文件:

vi /data/test02.ctl
lang=java(
id "none" map(1),
name "none" map(2),
time "none" map(3),
bar "none" map(4),
blank "none" map(5),
line "none" map(6),
mark "none" map(7),
test "none" map(1)
);

方式2:修改表结构,最后一个字段可以为null。

方式3:修改数据文件,在最后面添加‘@##’后缀。

3.5、在使用“obdumper+控制文件”导出数据时,也有可能会出现该报错信息:

Error: Column count doesn't match value count at row 1

可能的原因:数据库名大小写敏感,即数据库中的库名是小写,但是导出命令中写成了大写,导致控制文件中的配置内容不生效。

补充:

其实,还可以使用SUBSTR(char,position[,length ])进行截取处理数据;

示例:

SUBSTR('abc',0,3)

小建议:

数据导入后进行简单查看每个字段导入的数据是否是对应的。可能存在某些情况下数据导入了,但实际数据和字段并没有对齐,可能只是恰巧数据能存入对应字段。以及查看中文是否正常显示。

http://www.yayakq.cn/news/693815/

相关文章:

  • 企业门户网站自考网页制作与网站建设
  • 好创意的设计网站wordpress与dedecms
  • 做实体识别的网站做网站 做app好
  • 湖北网站设计制作多少钱怎么制作表格excel初学者视频
  • 个人网站背景图片网站设计工作流程
  • 重庆建设工程造价信息网站网站制作公司怎样帮客户做优化
  • 小程序代理推广wordpress最全seo标题
  • 营销网站建设模板东莞网站制作的方案
  • 邢台手机网站制作liunx做网站跳转
  • 网站制作策划书智慧团建平台
  • 淄博网站建设公司三农网站投放广告怎么做
  • 理财平台网站建设网站开发使用数据库的好处
  • 网站开发哪里好十大招聘网站排行榜
  • 凡科建的网站可以做seo吗爱站站长工具
  • 漂亮产品网站宁波网站建设服务服务商
  • 榆林 网站建设垂直购物网站建设
  • 网站icp备案系统下载网站建设的书籍
  • 婚恋网站建设分析商河网站建设公司
  • 网站建设qianhaiyouwordpress页面突然不能访问
  • 长春网站建设培训班安阳网络推广代理
  • 做的好微信商城网站吗如果做淘宝网站
  • 网站建设 管理规范网页制作的公司有哪些
  • 深圳做企业网站多少钱舟山建设银行网站
  • 公司网站维护好做吗江苏连云港网站制作公司
  • 网站建设期的网站案例网站 建设 开发 协议
  • 鞍山网站制作一般需要多少钱网站建设目标是什么意思
  • 做网站网站代理怎么找客源西地那非片
  • 海南网站建设平台淘宝官网首页设计
  • 哈尔滨做网站价格网址推荐网页设计素材
  • 哪里有免费的网站模板下载 迅雷下载 迅雷下载软件上海cms网站建设