如何使用PL/SQL将sql脚本数据shell脚本导入数据库库

Mysql命令行导入sql数据
字体:[ ] 类型:转载 时间:
下面是在命令行下导入sql数据的方法,需要的朋友可以参考下。
我的个人实践是:phpmyadmin 导出 utf-8 的 insert 模式的 abc.sql ftp abc.sql 到服务器 ssh 到服务器 mysql -u abc -p use KKK(数据库名,如果没有就 create database KKK) set names 'utf8' source abc.sql 注意:我看到 set character set utf8; 的说法,那样不行,中文乱码。 1.首先在命令行控制台中打开mysql 或许命令的如下: mysql -u root -p database_name 然后或许会提示输入对应的密码 2.下面这条命令或许对你有用,当你想更换一个数据库的时候 mysql&use database_name 然后使用下面这个命令 mysql&source d:\datafilename.sql 当然你需要将文件所在的路径搞清楚,并且正确地使用了他 进入mysql 安装所在的目录的子目录bin. 输入执行导入sql的命令. 例如: 你的mysql 安装在 d:\mysql 步骤如下: 开始 -& 运行 -& 输入CMD D: cd mysql\bin mysql -u root -p123456 test &d:\a.sql 其中 root 为你的mysql管理员用户名, 123456 为密码 test为数据库名称 d:\a.sql 为备份下来的数据文件所在位置. 如果是Windows的话,从命令提示符下到MYSQL文件目录中的Bin文件夹下,执行命令 mysql -u root -p databasename & db.sql 其中root是你MYSQL的用户名,databasename是你数据库的名称,而db.sql你是的文件.注意你必须把db.sql放到bin文件夹下才可以.当然文件的位置可以换. 如果是LINUX的话,直接输入 mysql databasename & db.sql
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具【在线请教】如何通过pl/sql简单实现把excel表数据批量导入Oracle中已创建的表?-Oracle/基础和管理-oracle-电脑编程网【在线请教】如何通过pl/sql简单实现把excel表数据批量导入Oracle中已创建的表?-Oracle/基础和管理作者:qdjnlmk 和相关&&【在线请教】如何通过pl/sql简单实现把表数据批量导入Oracle中已创建的表?[color=#0000FF]
如果我想把一批表中数据批量插入Oracle中,不知如下方法可行?
1,先在Oracle库中创建对应excel列字段的空数据表tab;
2、然后把excel数据批量导入已创建的空表tab中;
3、再然后用insert into 表 select 列1,列2,列3 from tab命令批量插入数据,完成任务;
请教各位高手,不知道这种发放可行吗???还有就是关键第2部,如何把excel表中的数据批量导入在Oracle中已创建的tab中呢???[/color]------回答---------------其他回答(1分)---------把execel数据转成CSV格式(利用execel的另存为那个功能另存为CSV格式),然后利用sqlldr把数据导入到你相应的表中使用sqlldr的时候,是要先建好表结构的,然后建一个控制文件,再在command下执行sqlldr就可以了------其他回答(1分)---------我晕·Excel不是连接的函数吗?直接做成一列为insert 的插入语句就可以啦!如果你想用程序写·那你就先利用ODBC查询Excel然后利用JDBC插入(JAVA)。------其他回答(1分)---------用sqlloader:
1、打开MicroSoft
2、文件(F)→新建(N)→工作簿→
3、输入以下数据,存盘为test.xls,如图:
4、文件(F)→另存为(A)→
保存类型为:制表符分隔,起名为text.txt,保存到C:\
5、连入SQL*Plus
以system/manager用户登录,
system/manager
创建表结构
    id       number,        --序号
    username    varchar2(10),     --用户名
    password    varchar2(10),     --密码
    sj       varchar2(20)     
--建立日期
    );
6、创建SQL*Loader输入数据所需要的文件,均保存到C:\,用记事本编辑:
控制文件:input.ctl,内容如下:
data          
--1、控制文件标识
  infile
'test.txt'      
--2、要输入的数据文件名为test.txt
  append
test    --3、向表test中追加记录
  fields
terminated
X'09'  --4、字段终止于X'09',是一个制表符(TAB)
  (id,username,password,sj)  
-----定义列对应顺序
a、insert,为缺省方式,在数据装载开始时要求表为空
b、append,在表中追加新记录
c、replace,删除旧记录,替换成新装载的记录
d、truncate,同上
7、在DOS窗口下使用SQL*Loader命令实现数据的输入
C:\&sqlldr
userid=system/manager
control=input.ctl
  默认日志文件名为:input.log
  默认坏记录文件为:input.bad
8、连接到SQL*Plus中,查看是否成功输入
& 拷贝,粘帖------其他回答(1分)---------如果数量不多,就用PL/SQL 自带的工具就可以了:工具--ODBC导入器用户/系统 DSN:选“EXCEL FILES”点连接,选则EXCEL 文件转到“到ORACLE的数据&选择表。选择对应字段就可以了。------其他回答(1分)---------日常工作中往往涉及到数据导入工作,平时办公中excel应用十分广泛,导入工作我们一般都是将excel内容复制到文本文件中然后利用sqlldr工具导入。较新版本的Sql Developer提供了直接excel导入到表的功能,下面我们来尝试一下:需要导入的excel的数据如下:辅导书在Oracle中建立实验所需要的表:凤飞飞其中t1为主键;点中创建好的表右键选择导入数据,选择需要导入的excel文件(目前仅支持xls格式不支持xlsx格式):1231若表格中有列名,则钩上”标题?”选项:2222单击下一步,选择需要的列:3333选择完成后单击下一步,将源数据列与目标表列一一对应:vvv单击下一步,选择导入前验证导入参数,出现以下条目:验证表名 SUCCESS验证源列是否映射了目标列 SUCCESS验证源列是否定义了数据类型 SUCCESS验证列的大小字段 SUCCESS针对列大小检查数据 SUCCESS验证日期列是否具有日期格式 SUCCESS验证是否支持这些数据类型的导入 SUCCESS单击完成,消息窗口出现导入日志:bbbb注意到这一步为止仍没有commit,需要到相关窗口点下commit按钮:nnnn目前Sql Developer中的excel导入功能已经较为完善,在版本1.5.5之前普遍存在next按钮无反应的bug。转载请注明源地址: ------其他回答(1分)---------最简单的办就是复制+粘贴1) 执行select * from yourtable for update2)按下编辑锁3)从excel中copy数据(从Excel中copy数据时,最前面要多拷一空列)4)到PL/SQL中查询结果的最后带*号的行上粘贴5)再点编辑锁右边的“对钩”,再F10提交相关资料:|||||||【在线请教】如何通过pl/sql简单实现把excel表数据批量导入Oracle中已创建的表?-Oracle/基础和管理来源网络,如有侵权请告知,即处理!编程Tags:                &                    转:如何用plsql从oracle中导入导出数据
转:如何用plsql从oracle中导入导出数据
12:15:00来源:
如何使用PLSQL Developer从oracle数据库 导入导出数据 用pl/sql developer导出表的数据时有三种方式:Oracle Export,Sql Insert,pl/sql developer 只有“Oracle Export”方式导出再导入后,表结构和索引结构没有发生变化,另两种方式都改变了索引类型。另外 Sql Insert的那个可以导成sql,可以用文本编辑器打开。 pl/sql developer 也可以导出,但文本编辑器不能打开。 区别: Oracle Export,Sql Insert,pl/sql developer 第一种是导出为.dmp的文件格式,.dmp文件是二进制的,可以跨平台,还能包含权限,效率也很不错,用得最广 第二种是导出为.sql文件的,可用文本编辑器查看,通用性比较好,但效率不如第一种,适合小数据量导入导出。尤其注意的是表中不能有大字段(blob,clob,long),如果有,会提示不能导出(提示如下: table contains one or more LONG columns cannot export in sql format,user Pl/sql developer format instead),可以用第一种和第三种方式导出。 第三种是导出为.pde格式的,.pde为Pl/sql developer自有的文件格式,只能用Pl/sql developer自己导入导出;不能用编辑器查看, 导出数据到excel文件: 选中数据表--query data--选中要导出的数据--右键copy to excel excel数据导入到数据库: 1.在Excel中准备好要导入的数据。具体操作:在Excel中,把第一列设置为空列,第二列以后的列应与要导入的数据表的字段相对应。 2.登录PLSQL Developer,找到需要导入数据的数据库表后,点击右键--edit data,进入了编辑此表的数据对话框,并点击最左侧选中一空行。 3.copy Excel表中的数据记录,将数据粘贴到上步中PLSQL Developer显示的表列中。 4.点击PLSQL Developer中的对号按钮进行Post。 注意:PLSQL Developer不认识“-” ?在pl/sql中使用exp/imp工具实现oracle数据导出/导入
阅读:2026次&&&时间: 04:21:07&&
在pl/sql中使用exp/imp工具实现oracle数据导出/导入Oracle
数据导入导出imp/exp就相当于oracle数据还原与备份。exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把
dmp文件从本地导入到远处的数据库服务器中。&利用这个功能可以构建两个相同的数据库,一个用来测试,一个用来正式使用。&执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行,&DOS中可以执行时由于 在oracle 8i 中& 安装目录\ora81\BIN被设置为全局路径,&该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出。&oracle用java编写,SQLPLUS.EXE、EXP.EXE、IMP.EXE这两个文件有可能是被包装后的类文件。&SQLPLUS.EXE调用EXP.EXE、IMP.EXE所包裹的类,完成导入导出功能。&下面介绍的是导入导出的实例。数据导出:&1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中&& exp
file=d:\daochu.dmp full=y&2 将数据库中system用户与sys用户的表导出&& exp
file=d:\daochu.dmp owner=(system,sys)&3 将数据库中的表inner_notify、notify_staff_relat导出&&& exp& file= d:\data\newsmgnt.dmp tables=(inner_notify,notify_staff_relat)&&4 将数据库中的表table1中的字段filed1以"00"打头的数据导出&& exp
file=d:\daochu.dmp tables=(table1) query=\" where filed1 like '00%'\"& & 上面是常用的导出,对于压缩,既用winzip把dmp文件可以很好的压缩。& 也可以在上面命令后面 加上 compress=y 来实现。数据的导入&1 将D:\daochu.dmp 中的数据导入 TEST数据库中。&& imp & file=d:\daochu.dmp&& imp
full=y& file=file= d:\data\newsmgnt.dmp ignore=y && 上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。&& 在后面加上 ignore=y 就可以了。&2 将d:\daochu.dmp中的表table1 导入&imp & file=d:\daochu.dmp& tables=(table1) &&基本上上面的导入导出够用了。不少情况要先是将表彻底删除,然后导入。&注意:&操作者要有足够的权限,权限不够它会提示。&数据库时可以连上的。可以用tnsping TEST 来获得数据库TEST能否连上。附录一:&给用户增加导入数据权限的操作&第一,启动sql*puls&第二,以system/manager登陆&第三,create user 用户名 IDENTIFIED BY 密码 (如果已经创建过用户,这步可以省略)&第四,GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW ,&& DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,&&& & DBA,CONNECT,RESOURCE,CREATE SESSION& TO 用户名字 &第五, 运行-cmd-进入dmp文件所在的目录, &&& & imp userid=system/manager full=y file=*.dmp&&&& &或者 imp userid=system/manager full=y file=filename.dmp&执行示例:&F:\Work\Oracle_Data\backup&imp userid=test/test full=y file=inner_notify.dmp屏幕显示Import: Release 8.1.7.0.0 - Production on 星期四 2月 16 16:50:05 2006(c) Copyright 2000 Oracle Corporation.& All rights reserved.连接到: Oracle8i Enterprise Edition Release 8.1.7.0.0 - ProductionWith the Partitioning optionJServer Release 8.1.7.0.0 - Production经由常规路径导出由EXPORT:V08.01.07创建的文件已经完成ZHS16GBK字符集和ZHS16GBK NCHAR 字符集中的导入导出服务器使用UTF8 NCHAR 字符集 (可能的ncharset转换). 正在将AICHANNEL的对象导入到 AICHANNEL. . 正在导入表&&&&&&&&&&&&&&&&& "INNER_NOTIFY"&&&&&&&&& 4行被导入准备启用约束条件...成功终止导入,但出现警告。附录二:&Oracle 不允许直接改变表的拥有者, 利用Export/Import可以达到这一目的.& 先建立import9.par,& 然后,使用时命令如下:imp parfile=/filepath/import9.par& 例 import9.par 内容如下:&&&&&&& FROMUSER=TGPMS&&&&&&& &&&&&&& TOUSER=TGPMS2&&&& (注:把表的拥有者由FROMUSER改为TOUSER,FROMUSER和TOUSER的用户可以不同)&&&&&&&&&& &&&&&&& ROWS=Y&&&&&&& INDEXES=Y&&&&&&& GRANTS=Y&&&&&&& CONSTRAINTS=Y&&&&&&& BUFFER=409600&&&&&&& file==/backup/ctgpc_.dmp&&&&&&& log==/backup/import_.log
[商业源码]&
[商业源码]&
[商业源码]&
[商业源码]&
[商业源码]&
[商业源码]&
[商业源码]&
[商业源码]&
[商业源码]&
[商业源码]&
Copyright &
All Rights Reserved《第六章》数据库转移——导入导出、备份还原
所谓数据库的转移,说白了就是把开发使用的数据库服务器上做好的表、数据、存储过程等复制出来,再导入到另一个服务器中。
一般来说方法有三种:
一是利用数据库自己的带参命令exp和imp进行,这种方式古老又低效,但因为其传统又官方,是老DBA彰显水平的必备手段;
二是利用第三方工具借助于数据库本身提供的功能(如Oracle的exp.exe以及imp.exe;SQL Server的Integration Service和“备份/还原”功能)进行图形化界面操作,本质上与第一种方法是一样的,但因为其操作简单方便,莫名其妙的常常被老DBA鄙视;
三是利用第三方工具为用户独创的“脚本输出/脚本执行”功能,也就是将数据库对象的CREATE文输出成SQL文件,然后利用这个SQL文件就可以随时再次创建数据库。这在PL/SQL和Object Browser中都有提供。
本文将以Object Browser为图例对后两种方法进行讲解,因为其中文界面较为简单易懂。最后再简单的交流一下关于DataPump的问题。
那么首先,我们来介绍一下Oracle的导入导出功能。说白了就是数据库对象以二进制文件(.DMP)的形式输出,之后再解析并输入到另一个数据库环境中。
■Oracle导出
1.从菜单进入导出界面
2.在[选择]页中,可以指定导出的对象范围。
全数据库:
数据库上所有用户的所有对象全部导出
用户指定:
指定用户下的所有对象
只导出指定的表,可指定多张表
表空间指定:
指定表空间下的所有对象全部导出
在文件名那一栏里输入要保存的DMP文件的全路径。也可通过浏览选择。目标对象里显示要导出的对象,可选对象里是通过你指定的导出方法列出所有可选的对象。
3.在[选项]里可以设置更多高级选项,这与oracle自身的exp所需要的参数几乎是一样的。
[连接用户ID]可以指定导出时使用的用户。可以指定为当前连接的用户,也可以指定其他用户。指定其他用户的话需要输入那个用户的用户ID和密码。
[Buffer长度]和[记录长度]可设置buffer字节数和record的字节数。
一般可以使用默认的,但如果有些表里有非常多的字段,或者存储了非常大的数据(比如LOB型等),为了避免出错,需要把它调大一些。
[同时导出的数据库对象]可以指定是否同时导出权限,索引,数据,制约。数据库的转移如果只转移表结构而不包含其中数据的话,就将[数据]取消选中。
[增量导出的种类]如下:
&&&&&&&&无:导出所有对象
&&&&&&&&完全:导出所有对象
&&&&&&&&增量:只导出上一次执行导出以来发生变化的对象
&&&&&&&&累计:只导出上一次执行导出以来发生变化的对象,但是在DMP中包含了压缩过的上一次导出的DMP。
[对象的分析]可以设置在导入时生成的统计信息
&&&&&&&&无:不统计
&&&&&&&&估计:只统计一部分的样例。
&&&&&&&&完全:统计
[NLS_LANG]里可以设置导出DMP要使用的字符集编码,不添即为数据库默认。
[扩展空间压缩]选中时,在扩展空间里存储的数据被整合在导出的DMP中
[表的制约]选中时,将会在导出过程中检查数据的一致性
[后台运行]选中时,导出过程将不在界面中体现。
[输出记录]可以指定导出结果的日志保存路径
[使用工具]就是Oracle客户端自带的exp.exe
4,点击[执行]按钮。就执行导出,在[结果日志]里会显示执行的结果。
■Oracle导入
导出成功之后,就会在指定目录下生成一个二进制的.DMP文件,数据库转移就是利用此文件导入到新的数据库中。首先,要连接到新的数据库中。
1.从菜单进入导入界面
2.在[选择]页中设置[导入方法]
全数据库:将DMP以整个数据库的形式导入
用户指定:将DMP文件中指定用户导入到当前连接数据库的指定用户中(此时点击右侧的[一览]按钮,将列出DMP中所有的用户)
表指定:只导入DMP文件中的指定的表(此时点击右侧的[一览]按钮,将列出DMP中所有的表)
在目录中可以输入DMP文件的绝对路径,也可以通过文件浏览方式找到DMP文件。
在[选项]页中的设置项与导出时的基本一致,就不多介绍了。
3.点击[执行]按钮,开始导入。显示正常结束后就完成了数据库的导入。
■脚本输出
脚本输出也是数据库备份,数据库转移的一种方法。
这里说的脚本,就是创建表,存储过程等各种数据库对象的SQL语句的.SQL(DDL)文件,当然也包括向表中插入数据的INSERT文。
任何第三方工具都可以直接查看,修改,执行这些.SQL文件,从而方便的建立起数据库。
1.在[对象列表]页面里列出了当前连接用户下所有的数据库对象,包括表、视图、存储过程、索引等等。选中要导出的对象,右键选择[脚本输出],调出输出界面
[将同时输出的脚本汇总在一起]选中时,所有的SQL输出到一个文件中。不选中时,每个对象生成单独的SQL文件。
[创建与类型相应的子文件夹]选中时,所有Table的SQL文件将生成到Table文件夹中。所有View的SQL文件将生成到View文件夹中。
各种不同的对象类型将被归类在不同的文件夹中。
不选中时,统一生成在一个文件夹内。
[名称表]是一个很人性化的设置。它让你在数据库中建立一张表,用来表示表明与SQL脚本文件的文件名之间的匹配关系。
也就是说,生成的SQL脚本文件名可以由你按照你自己的意愿和规则自定义。
[输出SCHEMA名]可以设置是否在SQL中带上SHEMA信息。
[在输出TABLE脚本时,包含从属于该表的索引脚本]
[输出TABLE脚本时,同时输出数据(INSERT)语句]这里可以设置insert语句是附加在表的脚本文件中,还是保存在新建的“DATA”目录下,
或者另存为“表名_DATA.SQL”文件中。
[输出EXTANT信息]里可以设置脚本文件中需要包含哪些EXTENT信息。
[输出View脚本时包含项目名]设置是否在“CREATE VIEW 视图名 AS ”之后加上字段名
[输出View脚本时使用FORCE选项]设置是否在VIEW的脚本中附加FORCE设置(只限Oracle)
[输出对象权限]各脚本文件末尾,是否输出赋予对象权限的GRANT语句。
[不导出空白行]可以在导出时自动将脚本中的空行删除。
因为很多人在使用SQL*Plus执行脚本时,经常因为脚本中的空行而错误无法执行的情况。
2.点击[开始]按钮开始导出脚本文件。
脚本已输出,看看我们的文件夹下,多么的整齐!
各种对象分门别类的各就各位,数据也以_DATA.SQL另存了出来。
拥有了这些脚本,就相当于拥有了整个数据库!
这些脚本可以理解为数据库的备份,而且还不是不可修改的硬备份,而是随时可以查看修改任你处置的软备份。
■脚本执行
接下来,就可以通过执行这些脚本来创建新的数据库。
1.从菜单进入[脚本执行]界面
从右侧目录中选择脚本所在文件夹或脚本文件,需要执行的脚本文件或文件夹可以整体移动到左侧,作为脚本执行对象。
2.点击[执行]按钮,在确认对话框中可以设置是否在执行后删除该脚本文件,是否在发生错误时中断处理。
这里特殊说一下,
在执行就很多脚本文件的时候经常因为错误而中断,绝大多数都是因为执行顺序的原因。
比如在创建VIEW的时候,他参照的TABLE还没有被创建,就会出错误。
这种情况下,我们选中[将正确完成的SCRIPT从列表中删除]的话,就可以反复执行,直到列表被清空时就说明所有脚本都被正确执行了。
■如何选择用那种方式?
上面我们已经介绍了以DMP和脚本两种方式进行的导入导出。实际操作的时候,有人会问“我该用哪一种方法呢?“
我们把两种方法的优缺点总结一下:
脚本输出/脚本执行
输出文件种类
二进制DMP文件
SQL文本文件
生成的文件较小可以导出二进制型数据
可以查看和修改输出文件的内容跨不同数据库间也适用
跨不同的数据库时有问题
存在二进制型数据时有问题
最主要的区别就是二进制还是SQL文本。二进制存储,占用空间小;SQL文本形式查看编辑更方便。
如果数据库中存在LOB型的数据时(SQLServer为BINARY型),就只能使用DMP导入导出方式了。
但是,因为Oracle自身的导入导出功能并不保证向下兼容,因此当导入导出的两个数据库版本不同时经常发生问题。
SQLServer也有一样的版本兼容问题,“SQL Server转移”的时候往往会发生错误。
因此当导出和导入的数据库版本不一致的时候,推荐使用脚本输出/脚本执行的方式进行。
■关于DataPump
从Oracle10g开始,除了传统的exp/imp的DMP文件之外,家族里来了个新家伙,叫做DataPump(数据泵)。自出生以来就备受争议,而经过实际使用发现,他与exp/imp并没有本质意义上的不同。
主要区别如下:
1,exp/imp是基于Oracle客户端的。而DataPump是基于Oracle服务端的。
在这一点上,它只解决了Oracle服务器端不需要装客户端的问题…却导致了DataPum导出的文件只能保存在服务器端。
为了解决这个尴尬的情况,Oracle让它支持了网络传输…
2,DataPump导出的数据虽然也是.dmp,但是他与exp/imp导出的.dmp文件并不完全兼容。
3,DataPump号称的支持并行线程,支持挂起重启,支持空间估算等…让高贵的,配置强大的Oracle服务器们情何以堪。
4,非要找出一个优点的话,那就是DataPump允许对导入导出对象进行版本控制,解决了上面说到的DMP版本向下不兼容的问题。
因为DataPump的基本使用方法与exp/imp几乎一样,只是在更多的参数上会有问题。
有问题的同学可以浏览以下官方文档。

我要回帖

更多关于 数据库脚本怎么导入 的文章

 

随机推荐