導航:首頁 > 編程系統 > 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相關的資料

熱點內容
湯姆貓是什麼網站 瀏覽:913
失易得數據恢復怎麼把照片 瀏覽:185
電腦只顯示1個網路 瀏覽:607
數控加工與編程專業怎麼樣 瀏覽:4
西安程序員工資 瀏覽:389
表格怎麼添加一行數據 瀏覽:35
旅遊網站開發怎麼選 瀏覽:669
properties文件位置 瀏覽:679
不想學編程可以做什麼 瀏覽:22
手機照片一鍵壓縮成文件 瀏覽:962
女生微信霸氣個性簽名 瀏覽:626
微博如何看別人一個月的數據 瀏覽:14
萬能小組件怎麼點擊就進入app應用 瀏覽:817
蘋果5s變形怎麼恢復 瀏覽:286
電腦里文件密碼忘了咋辦啊 瀏覽:315
輸入文件夾 瀏覽:31
extjsgrid刪除列 瀏覽:43
gdx文件怎麼打開 瀏覽:759
如何更新大數據量表 瀏覽:311
特殊量產工具 瀏覽:980

友情鏈接