当前位置:首页 » 操作系统 » shell导入数据库

shell导入数据库

发布时间: 2022-07-10 12:03:30

linux 下如何使用shell 把处理好的csv文件导入到数据库

linux 下,可以使用cli程序把csv文件导入到数据库。具体代码如下:

sql">
$ORACLE_HOME/bin/sqlplus-Susername/password@instanceName>/dev/null2>&1<<!!
#对sqlplus作一些设置,使之只输出我们需要的文本
setechooff
setpagesize0
setverifyoff
setfeedbackoff
settermoutoff
setlinesize3000
settrimspoolon
#查询输出到临时文件
spool/tmp/some_tmp.csv
#select语句
selectcolumn1||','||column2||','||column3....
fromsome_tablewherecondition
spooloff
#这里可以添加多个查询,且每个查询可输出到不同的文件,如下面注释
#spool/tmp/some_tmp.csv
#selectcolumn1||','||column2||','||column3....
#fromsome_tablewherecondition
#spooloff
setmarkupHTMLoff
quit
!!
#计算记录总行数,如果是0则不发邮件
NUM=`cat/tmp/some_tmp.csv|wc-l`
if[$NUM-gt0]
then
#先写excel的每列的title
echo'Title_Of_Column1,Title_Of_Column2,....Title_Of_ColumnN'>/tmp/attachement.csv
#数据正文
cat/tmp/some_tmp.csv>>/tmp/attachement.csv
#发邮件
(
echo"From:[email protected]"
echo"To:[email protected]"
echo"MIME-Version:1.0"
echo"Content-Type:multipart/mixed;"
echo'boundary="A_Boundary_Name_You_Can_Change_It"'
echo"Subject:Subject"
echo""
echo""
#附件分隔符,上面的boundary前面加--
echo"--A_Boundary_Name_You_Can_Change_It"
echo'Content-Transfer-Encoding:x-uuencode'
echo'Content-Type:text/csv;'
echo'name="attachement.csv"'
echo'Content-Disposition:attachment;'
echo'filename="attachement.csv"'
echo""
uuencode/tmp/attachement.csvattachement.csv
echo"--A_Boundary_Name_You_Can_Change_It"
#附件结束
)|mailx-t
fi
#删除临时文件
rm-f/tmp/*.csv
exit0

㈡ 如何用shell脚本把del格式文件导入的DB2数据库表中

在DB2数据库中,在导出DEL文件时,默认的字符分隔符是"、字段分隔符是, (逗号)。有一个需求是要为Oracle数据库提供数据,因此就想使用“|”作为数据的字段分隔符。在查看了export的使用说明后,发现export的file-mod模式中可以通过CHARDELx和COLDELx,分别设置字符分隔符和字段分隔符。
注意:导出文件的分隔符是和数据库的代码页有关联的,即在代码页为819的数据库下,可以使用任何的字符(ASCII码)作为数据的分隔符,但是代码页为1386的数据库只能使用ASCII码值在0x00 - 0x3F 范围内的字符。

㈢ shell往mysql数据库导入新

本文介绍 MySQL 8.0 shell 子模块 Util 的两个导入特性 importTable/import_table(JS和python 版本的命名差异)、importJson/import_json的使用方法。


其中 import_table 是通过传统 MySQL 协议来通信,Import_json 是通过 X 插件协议来通信。MySQL 一直以来提供导入文件 SQL 命令 load data infile(单线程)以及对应的可执行文件 mysqlimport(多线程)。


比如我导入 100W 行示例数据到表 ytt.tl1,花了 24 秒。这个已经是 MySQL 默认导入来的最快的。分析那我们现在看下 mysqlimport 工具的升级版,mysqlshell 的 util 工具集。


使用这两个工具之前,必须得临时开启 local_infile 选项。1. import_table建立 3306 端口的新连接我这里切换为 python 模式清空掉示例表 Ytt.tl1import_table 有两个参数,第一个参数定义导入文件的路径,第二个定义相关选项,比如导入的格式,并发的数量等。定义文件路径(参数1)定义选项(参数2)执行导入:只花了不到 17 秒,比传统 mysqlimport 快了不少。


我们上面指定了显式指定了字段分隔符,那有没有已经定义好的组合格式呢? 答案是有的,选项 dialect 可以指定以下格式:csv,tsv,json,csv-unix那么上面的导入,我们可以更简单,改下变量 y_options1 的定义导入时间差不多。这里要说明下,dialect 选项的优先级比较低,比如添加了'linesTerminatedBy':' ', 则覆盖他自己的' '。


选项 diaelect 还有一个可选值为 json,可以直接把 json 结果导入到文档表里。比如我新建一张表 tl1_json重新定义文件以及导入选项。导入 JSON 数据速度也还可以,不到 24 秒。那导入 json 数据,就必须得提到以 X 插件协议通信的工具 import_json了。2. imort_json我们切换到 mysqlx 端口import_json 参数和 Import_table 参数类似,这里我改下选项我在手册上没有看到多线程的选项,所以单线程跑 35 秒慢了些。查看刚刚导入的数据import_json 不仅仅可以导入 Json 数据,更重要的是可以在 BSON 和 JSON 之间平滑的转换,有兴趣的同学可以去 TRY 下。


㈣ redis shell 导入到指定的数据库

1、导出redis

[plain]view plain

  • #!/bin/bash

  • REDIS_HOST=localhost

  • REDIS_PORT=6379

  • REDIS_DB=1

  • KEYNAME=redis:hash:*

  • KEYFILE=key.txt

  • echo"KEYS$KEYNAME"|redis-cli-h$REDIS_HOST-p$REDIS_PORT-n$REDIS_DB>$KEYFILE

  • OUTFILE=valuelist.txt

  • TEMPFILE=$OUTFILE.tmp

  • echo>$TEMPFILE

  • forkeyin`cat$KEYFILE`

  • do

  • echo$key

  • #echo"HGETALL$key"|redis-cli-h$REDIS_HOST-p$REDIS_PORT-n$REDIS_DB>>$TEMPFILE

  • echo"GET$key"|redis-cli-h$REDIS_HOST-p$REDIS_PORT-n$REDIS_DB>>$TEMPFILE

  • done

  • 2、整理导出的结果
  • [plain]view plain

  • cat$TEMPFILE|xargs-n2|awk-F""-vKEYNAME=$KEYNAME'{print"HSET"KEYNAME""$1,"""$2"""}'>$OUTFILE

  • 其中的xargs -n 2是把2行合成一行,换行符用空格代替
  • 然后用awk按空格分开,$1是keynam $2是key的值

    再次转换成HSET的格式,其中用到KEYNAME变量,这个要用-v预先定义。

    最后转化为 HSET KEYNAME KEY "VALUE"格式。

    3、导入转换的结果

    [plain]view plain

  • cat$OUTFILE|redis-cli-hlocalhost-p6379


  • 二、直接用Redis的Dump和Restore导出和导入

    [plain]view plain

  • redis-cli--rawmptest|head-c-1|redis-cli-xrestoretest10

㈤ 怎样使用 xshell 进行数据库 oracle 数据的导出导入

怎样使用 xshell 进行数据库 oracle 数据的导出导入
例如将scott用户下所有表,导入到test用户下
1 exp scott/tiger file=scott.dmp owner=scott
2 (1) 如果test用户下有scott的表,哪些需要先删除在导入
conn test/test
select 'drop table '||table_name||' purge;' from user_tables;
imp test/test file=scott.dmp fromuser=scott touser=test
(2) 如果test用户下没有scott用户的表,可以直接导入
imp test/test file=scott.dmp fromuser=scott touser=test

㈥ shell导入.dat文件到oracle

使用sqluldr可以实现。
1、linux下的格式化平文件向Oracle导入一般可以使用sqluldr进行导入。
2、示例,请注意使用Oracle账号执行下面的命令
sqlldr userid=jms/jms@tiod control=input.ctl log=input.log bad=input.log skip=1 errors=5000 rows=5000 bindsize=335542

㈦ 用shell命令解决XAMPP数据库导入文件限制

经常折腾
WordPress
的朋友通常都会搭建一个本地环境,调试修改完了再发布到线上,至于如何在本地安装
WordPress,这个可以参考我之前写的一篇《轻松10步本地安装WordPress(图)》文章,这篇文章中推荐使用
XAMPP
这个集
Apache
+
MySQL
+
php
于一身的套装软件,今天的话题同样也是围绕
XAMPP。
为了真实还原线上环境,我们会把线上的数据库备份下来,用
XAMPP

phpMyAdmin
导入到本地,当然,如果数据量不大是一切正常的,但如果终于有一天,你的数据量积累到一定的程度,XAMPP

phpMyAdmin
就会有文件大小限制、上传超时等各种问题,有一种解决办法是修改配置文件,但是我今天要推荐的是另一种方法
——
shell
命令,更加快速、直接、有效地导入数据库,可以从根本上避免文件大小限制、上传超时等问题。步骤如下:
第一,打开
CMD。开始
->
运行
->
CMD。
第二,进入
mysql
目录。
d:
cd
d:xamppmysqlbin
第三,启动
mysql,输入用户名及密码。
mysql
-u
wper
-p
Enter
password:
*******
第四,选择对应的数据库名。
mysql>
use
wp
第五,设置
utf8
编码。
mysql>
set
names
utf8;
第六,选择
sql
数据库文件路径并导入。
mysql>source
d:wangeim.sql
以上步骤详请对应如下图:
有图有文有解说,是不是很简单呢?try

try
吧,你也可以的。
文章来源:wange.im

㈧ 如何用shell脚本将在mysql数据库中得到的数据导入到oracle数据库中

有一个工具是mysql到oracle做数据迁移的叫Convert Mysql to Oracle 你可以试试,不知道合不合适。
非要弄shell的话,那可真是麻烦可以选择让程序员写个小程序转换sql的让后用shell调用。
真自己写shell。。。那就折腾导出来的 create、insert语句吧。想想都头大。是在没必要完全用shell弄。

热点内容
加密文件夹免费下载 发布:2024-11-20 10:48:47 浏览:772
有什么低配置好玩的单机游戏 发布:2024-11-20 10:22:18 浏览:700
去哪里可以把手机密码清除 发布:2024-11-20 10:17:06 浏览:530
什么游戏适合电脑配置不高的玩 发布:2024-11-20 09:52:02 浏览:235
安卓如何拷贝微信聊天记录 发布:2024-11-20 09:51:02 浏览:940
php中for 发布:2024-11-20 09:48:04 浏览:29
安卓手机用什么软件防止别人蹭网 发布:2024-11-20 09:37:18 浏览:838
顶级asmr助眠解压赫敏 发布:2024-11-20 09:36:34 浏览:428
帝瓦雷算法 发布:2024-11-20 09:16:11 浏览:52
怎么查看一个ip地址服务器关闭 发布:2024-11-20 09:12:26 浏览:443