一、如果你想导入数据库的数据存放于一个txt文件中,并且这些数据之间是有分隔符做了分割的,那么就可以使用sqlldr来将数据导入到数据库中。
我只是简单的举个栗子,方便演示。假设数据之间靠‘|’来进行分隔,数据的形式如下:
狂鼠|1|23|5|搞破坏|66号公路|
..........................
..........................
..........................
..........................
..........................
...........................
..........................
法鸡|11|33|4|天降正义|花村|
好,假设上面就是你想插入oracle数据库的数据,你应该进行以下操作:
1、将这个txt文件以及ctl文件放入到你的服务器上【比如说,你想将上述数据导入到你的开发数据库,那么你就将txt文件以及ctl文件放入到你对应的开发数据库的某个目录下,好比你放到了这样的目录:data/db/a】,至于说ctl文件里长什么样,我贴出来,但在这之前,你是不是应该创建一个后缀是ctl的文件了?下面睁大眼看ctl文件里的详细内容:
LOAD DATA
INSERT
INSERT INTO 你要插入的数据库的表名
FIELDS TERMINATED BY '|' ----------注意啊,从-----往后我写的是注释:BY '|' 是因为你的数据是按照‘|’来进行分隔的,如果你的数据是用别的符号分隔,那你就换成自己的分隔符号就行。
(
name,--------注意,这里还是注释,就是你的数据库表的列名
sex,
age,
class,
hobby,
address
)
2、利用你的工具【可能是xshell,也可能是crt,也允许你用别的连接工具】,使用命令进入到你的步骤1的目录中。进入的命令是这样的:cd /data/db/a;这样你就来到了你的存放txt文件的地方,你可以在你的当前目录下使用:ls 来查看是否有这样的一个文件,假如有这个ctl文件,并且文件名叫test.ctl以及存在一个txt文件,这个txt文件叫test.txt。
3、执行命令:sqlldr ‘数据库用户名/“数据库密码”’@数据库连接:端口号/数据库名 control=/data/db/a/test.ctl data=/data/db/a/test.txt errors=5000000 rows=50000 log=/data/db/a/test bad=/data/db/a/test.bad direct=true
执行步骤3,只需要把上面的汉字以及各个路径换成自己的真实的就行了。
二、如果你想导入的数据是以.sql的文件形式存在的,并且这个.sql文件里还是insert类型的语句:
1、将这个.sql文件放到环境的某个目录下
2、还是使用cd 的命令进入到这个文件所在的位置
3、执行:sqlplus 数据库名/数据库密码@数据库连接:端口号/数据库名
执行步骤3,只需要把上面的汉字换成自己的真实的就行了