导航:首页 > 编程系统 > linux下使用sqlldr

linux下使用sqlldr

发布时间:2023-05-15 06:38:10

linux oracle 运行不了sqlldr 怎么办windos下连接该数据库能行,部署到linux下就不行

看看$oracle_home/bin 是否加到里你的环境变量path中,再确认sqlldr这个可执行文件是否存在

❷ LINUX中执行SQLLDR报错

1.?提高linux中默认同时打开的最大文件数量(默认是1024)
最便捷的方法是在/etc/profile文件中加内入ulimit?-n?最大开容启数量
但是这种方法无法从根本上查出什么原因导致java打开了这么多的文件

2.?java端调查开启文件多的原因
?Linux下查看进程打开了哪些文件
?lsof?-p??进程id????->??打开的具体文件
?lsof?-p??进程id|wc?-l???->??打开文件的数量

通过调查发现,java开了很多TYPE为FIFO(Linux中的管道)的文件,因此联想到有可能是java代码中的流没有正常关闭或者释放导致的。
而且Java在Linux下执行命令的时候需要用到Process类,这个类在使用后需要destroy()掉,否者也会导致文件数开启的过多

❸ linuxoraclesql结果导入csv

Oracle数据库导入csv文件,
当csv文件较小时,
可以使用数据库管理工具
比如DBevaer导入到数据库,
当csv文件很大时,
可以使用Oracle提供的sqlldr命令行工具腔春,
能够快速导入大量数据。
在数据库之间进行数据迁移时,
特别是不同类型的数据库,
使用csv文件团圆州是一种很好的选择。
2.sqlldr用法
下面介绍sqlldr用法,
有一个USER_INFO.csv文件,
需要导入到数据库中USER_INFO表,
而且有1.5亿条数据,
要求导入耗时尽量小。
这里先介绍基本的导入方式,
然后介绍direct导入方式,
最后介绍parallel导入方式。
3.获取csv文件
USER_INFO.csv文件内容如下,
这里仅选取了三条测试数据:
MSISDN,PROVINCE_CODE,CREATE_TIME
8617512570551,30,2019-10-31 17:16:09
8613063310680,33,2019-10-31 17:16:12
8613295281345,80,2019-10-31 17:16:14

4.创建USER_INFO表
CREATE TABLE "USER_INFO" (
"MSISDN" VARCHAR2(16),
"PROVINCE_CODE" VARCHAR2(4),
"CREATE_TIME" DATE,
CONSTRAINT "PK_USER_INFO_MSISDN" PRIMARY KEY ("MSISDN")
) TABLESPACE "USERS";

COMMENT ON COLUMN "USER_INFO"."MSISDN" IS '用户手机号';
COMMENT ON COLUMN "USER_INFO"."PROVINCE_CODE" IS '省份编码';
COMMENT ON COLUMN "USER_INFO"."CREATE_TIME" IS '用户创建时间';

注意表中字段要和csv文件对应。
5.创塌蔽建ctl文件
创建名为loaddata_USER_INFO.ctl的控制文件:
options(skip=1,BINDSIZE=20971520, ROWS=10000, READSIZE=20971520, ERRORS=999999999)
load data
in

❹ linux如何安装sqlldr

如果机器上安装了oracle服务器,在用户的.bashrc文件中配置oracle的安装目录,在PATH路径里面加上$ORACLE_HOME/bin就可以了,source一下

❺ 如何提高linux下使用sqlldr导入大量csv文件效率

1. 创建CTL文件
load data
infile fwqs.txt
append into table tblname
fields terminated by ","
(id,fld1,fld2)
2. 创建BAT文件
sqlldr userid=username/password@connstr control='did.ctl'

运行BAT文件即可,CTL中使用TXT,CSV等文件都可以

❻ linux下我要使用oracle的sqlload向数据库中导入数据。

例如将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

❼ LINUX的crontab执行SQL报错,解决给50分

环悔或拦境变量没团铅设置碧胡
crontab执行改一下,比如
* * * * * . ~/.bash_profile; your_scripts

❽ java怎么在linux环境下调用sqlldr的命令

import java.io.BufferedReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
public class TestLinux {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
// ./szrpp_files/clPath
//写控制文件.ctl

String fileRoute = "/home/test/";//文件地址路径
String fileName = "test2015.txt";//数据文件名
String tableName = "test_table";//表名
String fieldName = "(name,userpwd,sex)";//要写入表的字段
String ctlfileName = "ctltest.ctl";//控制文件名

stlFileWriter(fileRoute,fileName,tableName,fieldName,ctlfileName);
//要执行的DOS命令
String user = "scott";
String psw = "123";
String Database = "//127.0.0.1:1521/ORCL";
String logfileName = "logtext.log";
Executive(user,psw,Database,fileRoute,ctlfileName,logfileName);
}

/**
* * 写控制文件.ctl
* @param fileRoute 数据文件地址路径
* @param fileName 数据文件名
* @param tableName 表名
* @param fieldName 要写入表的字段
* @param ctlfileName 控制文件名
*/
public static void stlFileWriter(String fileRoute,String fileName,String tableName,String fieldName,String ctlfileName)
{
FileWriter fw = null;
String strctl = "OPTIONS (skip=0)" +
" LOAD DATA INFILE '"+fileRoute+""+fileName+"'" +
" APPEND INTO TABLE "+tableName+"" +
" FIELDS TERMINATED BY ','" +
" OPTIONALLY ENCLOSED BY \"'\"" +
" TRAILING NULLCOLS "+fieldName+"";
try {
fw = new FileWriter(fileRoute+""+ctlfileName);
fw.write(strctl);
}
catch (IOException e)
{
e.printStackTrace();
}
finally {
try
{
fw.flush();
fw.close();
}
catch (IOException e)
{
e.printStackTrace();
}

}
}

/**
* 调用系统DOS命令
* @param user
* @param psw
* @param Database
* @param fileRoute 文件路径
* @param ctlfileName 控制文件名
* @param logfileName 日志文件名
*/
public static void Executive(String user,String psw,String Database,String fileRoute,String ctlfileName,String logfileName)
{
InputStream ins = null;
//要执行的DOS命令
String dos="sqlldr "+user+"/"+psw+"@"+Database+" control="+fileRoute+""+ctlfileName+" log="+fileRoute+""+logfileName;
//Linux环境下注释掉不需要CMD 直接执行DOS就可以
//String[] cmd = new String[]
//{ "cmd.exe", "/C", dos }; // Windows环境 命令
try
{
Process process = Runtime.getRuntime().exec(dos);
ins = process.getInputStream(); // 获取执行cmd命令后的信息
BufferedReader reader = new BufferedReader(new InputStreamReader(ins));
String line = null;
while ((line = reader.readLine()) != null)
{
String msg = new String(line.getBytes("ISO-8859-1"), "UTF-8");
System.out.println(msg); // 输出
}
int exitValue = process.waitFor();
if(exitValue==0)
{
System.out.println("返回值:" + exitValue+"\n数据导入成功");

}else
{
System.out.println("返回值:" + exitValue+"\n数据导入失败");

}

process.getOutputStream().close(); // 关闭
}
catch (Exception e)
{
e.printStackTrace();
}
}
}

❾ 为什么linux运行sqlldr会报没有那个文件或目录

一般文件名都还是写成sqlldr。你只要用find / -name搜索下就知道了。 。
或者用rpm -qa |grep sqlldr查看安装信息

❿ 在linux下安装sqlldr命令

从Oracle服务器上拷贝相应的sqlldr 执行程序

 1> scp /usr/local/oracle/sqlldr 

2> mkdir -p /usr/local/稿知oracle/rdbms/mesg cd /usr/local/手敬燃oracle/rdbms/mesg/   scp ./ulus.msb

进入etc/profile修改环境变量

vim etc/profile   按i编辑   esc+q/q!强退    esc+wq保存编辑并退出

export ORACLE_HOME=/usr/local/oracle

export TNS_ADMIN=$ORACLE_HOME

export  LD_LIBRARY_PATH =$ORACLE_HOME:/usr/local/oracle/lib:${ LD_LIBRARY_PATH }

export SQLPATH=$ORACLE_HOME

export PATH=$PATH:$ORACLE_HOME

其中lib文件夹因为有sqlldr后来的报错:sqlldr: error while loading shared libraries: libclntsh.so.11.1: cannot open

所以整个毕虚lib都从oracle服务器上下下来了,这总不会错了吧

之后sqlldr发现权限问题

chmod a+x /usr/local/oracle/sqlldr

然后差不多了

source etc/profile

sqlldr命令有在正常提示信息了

阅读全文

与linux下使用sqlldr相关的资料

热点内容
注册表禁止启动程序运行 浏览:705
网络优化总体流程图 浏览:735
前端程序员简历模板 浏览:706
蜂巢积木编程机器人怎么样 浏览:561
微信小程序tips 浏览:117
油印文件有哪些 浏览:854
java线程买票案例 浏览:672
java架构培训 浏览:857
price是什么文件 浏览:258
手机游戏编程哪个好学 浏览:259
qq邮箱怎么发语音文件 浏览:494
php删除数据库记录 浏览:905
文件校验工具有哪些 浏览:158
苹果app被乱扣费怎么投诉 浏览:269
数据通信工程师要负责多少设备 浏览:904
excel有没有多个文件数据链接 浏览:842
郑州儿童编程课程应该怎么选择 浏览:103
word2003二级标题编号 浏览:370
ipad百度云盘压缩文件 浏览:912
什么网站可以发现新产品 浏览:680

友情链接