请问$ORACLE_HOMEbinsqlldr 有关

请问$ORACLE_HOMEbinsqlldr 有关,第1张

这是oracle连接串的语法格式

用户名与密码直接用/分隔

密码与tnsname(配置的数据库服务名)用@分隔

这样的连接串作为一个参数传入到程序中进行解析连接数据库

除了sqlloader之外,像sqlplus、exp/imp等命令方式的都是支持这样的参数格式

1、 运行MySQL Migration Toolkit,一路“Next”到“Source Database”,在Database System中选择Oracle Database Server,如果第一次使用会告之要求加载驱动程序ojdbc14jar。

加载驱动程序之后,界面将变成如下的形式,在其中填写Oracle数据库的连接信息,按“Next”继续。

2、 在Target Database中默认Database System为MySQL Server,在Connection Parameters中填写相应的MySQL数据库的连接信息,按“Next”继续。

3、进行数据库连接测试,测试通过后按“Next”到Source Schemata Selection,点选准备进行数据迁移的Schemata后按“Next”继续。

4、在Object Type Selection,点Detailed selection按钮,在下方左侧列表中选择不进行迁移的表,将其放入右侧列表中,即左侧列表剩余的表都将进行数据迁移。选择好之后按“Next”继续。

5、在Object Mapping的Migration of type Oracle Schema,如果要设置参数,点Set Parameter按钮。如果默认数据库表为UTF8的话,则选择Multilanguage;如果默认数据库表为GBK的话,则需要选择User defined,并在下方填写charset=gbk, collation=gbk_general_ci。Migration of type Oracle Table中要设置参数点Set Parameter按钮。如果默认数据库表为UTF8的话,则选择Data consistency/multilanguage;如果默认数据库表为GBK的话,则需要选择User defined,并在下方填写addAutoincrement=yes, charset=gbk, collation=gbk_general_ci, engine=INNODB。选择好之后按“Next”继续。

6、再到Manual Editing,在这里可以修改建表脚本。由于Oracle与MySQL之间语法规则的差异,通常需要对脚本的数据类型以及默认值进行调整,比如Oracle中通常会对Timestamp类型的数据设置默认值sysdate,但在MySQL中是不能识别的。在Filter中选择Show All Objects,然后在Migrated Objects中选择要修改脚本的表,再点击左下方的Advanced就可以进行脚本编辑了。修改完之后点击右侧Apply Changes按钮保存,按“Next”继续。

7、然后一路“Next”,如果没有提示出错的话,就可以将指定表中的数据导入MySQL了。如果有提示出错信息,则需要返回到Manual Editing处对脚本重新进行修改。

需要补充一点,在导大容量数据特别是CLOB数据时,可能会出现异常:“Packets larger than max_allowed_packet are not allowed”。这是由于MySQL数据库有一个系统参数max_allowed_packet,其默认值为1048576(1M),可以通过如下语句在数据库中查询其值:

show VARIABLES like '%max_allowed_packet%';

修改此参数的方法是在mysql文件夹找到myini文件,在myini文件[mysqld]中添加一行:

max_allowed_packet=16777216

重启MySQL,这样将可以导入不大于16M的数据了,当然这数值可以根据需要作调整。

一、在for中循环设置变量时,需要开启环境变量延迟,这样在for里面的变量才能正常使用。

环境变量延迟的命令是

setlocal enabledelayedexpansion

开启后,变量调用时原本的百分号就要用感叹号代替了,比如原来的%file%就要改成!file!

二、echo多行输出到文本不是您那样写的

这是错误的

echo " insert into XYK_UNAC select distinct  from XYK_UNAC_INC;

commit;

quit; " > D:\data\CARD\sql\upt_TABsql这样才是正确的

(echo insert into XYK_UNAC select distinct  from XYK_UNAC_INC;

echo commit;

echo quit;)> D:\data\CARD\sql\upt_TABsql

echo insert into XYK_UNAC select distinct  from XYK_UNAC_INC;>D:\data\CARD\sql\upt_TABsql

echo commit;>>D:\data\CARD\sql\upt_TABsql

echo quit;>> D:\data\CARD\sql\upt_TABsql

三、在bat中,注释是用rem或:: 而且必须占用单独一行,不能和其它命令共用一行

rem 我是注释内容

::我是注释内容

而您使用/  /是C语言,Java等其它语言的注释写法,它并不适用于cmd命令行(bat脚本)

四、关于转义符,^|^这个没必要这样写,只需在要转义的符号前面加^即可,后面不需要加的。

五、这个只是作为建议,每行代码与上下文做缩进处理,这样后续查看时能知道每行代码作用于那部分了,同时也能知道有没有正常结束,针对for命令是很有用的,如果不进行缩进,那么很容易看花眼,少写一个结束的右括号,那么就导致命令无法正常执行,bat运行时也会一闪而过。如下图这样进行代码缩进:

好了,您的代码大致就是这些问题,如果修改后依旧无法正常执行,请追问。如果已解决,请及时结题。谢谢~~

sqlloader  是一个程序,  用来把  文本文件里面的数据,   导入到 Oracle 数据库里面。

下面是一个简单的例子:

SQLLoader

首先需要一个 控制文件test_mainctl,内容如下:

LOAD DATA

INFILE

INTO TABLE test_main

FIELDS TERMINATED BY ','

(ID, VALUE)

BEGINDATA

1,Test

其中,

第一行LOAD DATA意思是告诉SQLLoader,要干啥 这里是加载数据。

第二行INFILE 意思是数据从哪里来 这里是包含在控制文件中。

第三行INTO TABLE 意思是数据要导到哪里? 这里是要到 test_main 表。

第四行FIELDS TERMINATED BY意思是数据之间用什么符号分隔? 这里是用 逗号 分隔。

第五行是数据要按什么顺序写到列里面

第六行BEGINDATA是告诉SQLLoader,后面的都是数据了。

然后开始运行 sqlldr 程序

D:\temp>sqlldr userid=test/test123 control=test_mainctl

SQLLoader: Release 102010 - Production on 星期日 3月 13 14:58:22 2011

Copyright (c) 1982, 2005, Oracle  All rights reserved

SQLLoader-601:  对于 INSERT 选项, 表必须为空。表 TEST_MAIN 上出错

在 SQL Plus 中,

SQL> truncate table test_main;

表被截断。

以后,再次测试执行

D:\temp>sqlldr userid=test/test123 control=test_mainctl

SQLLoader: Release 102010 - Production on 星期日 3月 13 14:58:56 2011

Copyright (c) 1982, 2005, Oracle  All rights reserved

达到提交点 - 逻辑记录计数 1

起始位置就是这样的,因为快捷方式用的就是TTPlayerexe

目标之所以这样是因为网吧为了降低经营成本所以不用杀毒软件,为了降低病毒伤害的可能性所以都在用还原精灵或同类产品进行文件备份,所以每开关机一次就是一次还原的过程后面的这个\\movie\ghost$\mp3ttpl就是文件的备份位置注意这个ghost就是还原精灵做备份的关键文件ttpl是网吧备份的歌曲列表你注意一下就会发现,打开千千后他自动播放的歌曲和网吧音响里播放的是一样的

根据你上次的问题补充作补充答案:在E:\影音软件\千千静听\TTPlayerexe后面的这个TTPlayerexe伤点击右键,选创建快捷方式

根据你上次的问题补充作答:这两个文件路径一个是存储/只读路径一个是根备份路径两者没有直接的关系,当只读路径丢失或病毒危害等其他原因造成程序不能正常运行时根备份可以通过重启使制度路径恢复

以上就是关于请问$ORACLE_HOME/bin/sqlldr 有关全部的内容,包括:请问$ORACLE_HOME/bin/sqlldr 有关、如何把oracle中表的数据导入mysql、之前从来没接触过批处理bat,东拼西凑出来一段程序,执行不了,请大神们帮个忙,看看怎么回事,非常感谢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9725289.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存