怎樣向資料庫導入多個文件
A. 現在有幾百個excel文檔 ,如何一次性將其導入資料庫
可以採用SQL語句多表匯總生成表
一、針對列名稱都一樣的多表
具體如下:打開文件點數據 現有連接 瀏覽更多 找到要做匯總的工作簿打開 在彈出的框中選一個表(注意:數據首行包含列標題的勾一定要打上)點確定後選擇生成表
然後點屬性 定義選項卡下命令文本中輸入
select * from [工作簿1所在路徑].[數據表1名稱$] union all select * from [工作簿2所在路徑].[數據表2名稱$] union all select * from [工作簿3所在路徑].[數據表3名稱$] 再點確定
二、針對不同列名稱的多表合並
前面的步驟一致,在命令文本中輸入
select 所需名稱1,所需名稱2,* from [工作簿1所在路徑].[數據表1名稱$] union all select 所需名稱3,所需名稱4,* from [工作簿2所在路徑].[數據表2名稱$] union all select 所需名稱5,* from [工作簿3所在路徑].[數據表3名稱$] (根據實際情況輸入欄位名稱,沒有的欄位用null)
B. 如何將多個excel文件一次性導入SQL Server資料庫
先將全部的Excel文件的名稱整理出來
然後通過構造動態SQL來完成導入數據
使用OPENROWSET語句
@FileName和@TableName是兩個變數,@FileName是指Excel文件的完整路徑文件名,用作數據源,@TableName是表名,在Excel文件中就是工作表名,將這些數據動態生成類似以下的SQL語句就可以完成數據導入
SELECT *
INTO @TableName
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
@FileName;
'';'',@TableName)
具體代碼你自己完成吧
C. oracle中怎樣導入資料庫文件
可用圖形界面或者命令導入:
圖形界面需要藉助第三方工具plsql,方法如下:
1、登錄到要導入的資料庫及用戶。
2、依次點擊「工具」——「導入表」。
imp被導入用戶名/密碼@實例名file=文件名.dmplog=日誌.dmpfromuser=導出用戶touser=導入用戶
輸入後按回車鍵,等待導入完成即可。
說明:第三點中中文部分,請根據實際情況填寫。
D. 需要向Oracle11G資料庫中導入多個dmp文件,總量200多G!如何操作
大文件表空間只有一個數據文件
E. mysql 向某個表批量導入多個.txt文件數據.
首先10000txt文件要起一個有規律的名稱。例如按數字大小。這樣便於循環。如果不是這樣,也可以做,但是要遍歷目錄,判斷文件。$file_name_arr=scandir(文件目錄);//遍歷文件unset($file_name_arr[0]);unset($file_name_arr[1]);$file_name_arr=array_values($file_name_arr);foreach($file_name_arras$file_name){if(is_file(路徑/$file_name){$str_arr=get_txt(文件地址);//把數據插入資料庫,記得在把內容向表裡插的時候要加addslashes(),$str_arr[0]就是標題,$str_arr[1]就是內容}}functionget_txt($file){$str=file_get_contents($file);$str_arr=preg_split('|\n|',$str);return$str_arr;}建議把10000個文件分成多份執行,避免資料庫跑死
F. 怎麼將多個.CSV文件導入SQL資料庫
解決辦法:
1.打開Microsoft Visual Studio.
2.文件-新建-項目-Integration Services 項目.
3.名稱任意定義,在這里名稱為:CsvImportSqlserver,勾選"創建解決方案的目錄"
4.在"數據流"下,點擊頁面藍色字母,進入編輯區.
5.選擇左側工具箱,選擇"平面文件源"和"OLE DB 目標"控制項拖動到編輯區.
6.選中「平面文件源」,右鍵選擇編輯,彈出「平面文件源編輯器」窗口.
7.在「平面文件連接管理器」中,點擊「新建」按鈕。
8.連接管理器:ImprotFile(任意起名),在常規中,瀏覽要導入的csv文件的所在路徑(如:test_1.csv)。
注意:勾選(在第一個數據行中顯示列名稱)
9.默認「列」的設置,在「高級」中,匹配數據類型一致。
目標資料庫中,int類型的欄位-〉在高級中,設置「四位元組帶符號的整數 [DT_I4]」
varchar類型的欄位-〉設置「字元串 [DT_STR]」注意:類型的大小。
smallint類型欄位-〉設置「雙位元組帶符號的整數 [DT_I2]」
decimal類型的欄位-〉設置「雙精度浮點數 [DT_R8]」
10.點擊確定,選中「平面文件源」,右鍵「添加路徑」,連接自:平面文件源;連接至:OLE DB目標
輸出:平面文件源 ; 輸入:OLE DB目標輸入。
11.設置後,在編輯區發現有個(平面文件源-〉OLE DB目標輸入)的指向箭頭。
12.接下來,選中(OLE DB目標),右鍵編輯。
13.新建OLE DB 連接管理器。
14.伺服器名:IP地址(172.26.36.6)
15.在選擇或輸入一個資料庫名中:選擇要導入到的資料庫(如:DW)
16.點擊「測試連接」,提示連接成功,確定並關閉窗口。
17.接下來,在「數據訪問模式」中:表或視圖。
18.表或視圖名稱:資料庫中相對應的表:test庫。
19.在「應射」中,設置逐個欄位一一映射。
20.點擊確定。
21.點擊F5,進行調試,看數據是否在正確導入。
(如果報錯,重新設置數據類型)
22.點擊「控制流」,選中控制項Foreach 循環容器,拖到編輯區。
23.把「數據流任務」放入「Foreach 循環容器」中
24.選中「Foreach 循環容器」,右鍵編輯。
25.在「集合」選項-枚舉器配置,選擇csv文件所在的文件夾。
26.文件名以正則表達式的方式輸入,如(test_*.csv)
27.變數映射:在變數列下拉項中,點擊「新建變數」,名稱:var_test,其他默認,直接點擊確定。
28.在編輯區左下腳-連接管理器中,選中「ImprotFile」右鍵屬性;
29.點擊expressions後面的編輯按鈕,屬性:ConnectionString,表達式:選擇「var_test」變數,並把它拖到「表達式」區域。
30.確定後,開始F5,開始導入集合中所有csv文件.
31.至此,所有設置完畢。
同理,要想把資料庫表,導出csv文件,也一樣道理。
足球 另:當導入一個csv文件時,可以根據sqlserver導入導出向導就可以。
具體操作如下:
1.選中資料庫test,右鍵-任務-導入數據。
2.點擊「下一步」按鈕
3.數據源選擇:平面文件源
4.其他選項,與上述一致。(數據類型一定要匹配正確)
5.下一步,輸入正確的伺服器名稱,資料庫名稱。
6.在「表和視圖」中,「源」與「目標」的表要映射正確。
7.下一步,選擇「立即運行」。
8.點擊完成,開始導入。
G. 如何將文本文檔批量數據導入到資料庫中
asp.net/c#代碼實現excel to mssql數據導入
2008年12月17日 星期三 13:42
做網站項目時,可能會遇到將excel文件中的數據導入至sql server資料庫的需求,把excel也看作資料庫,使用OleDb連接後讀取數據然後寫入用SqlClient連接的sql server資料庫即可,技術上沒有什麼難度。
但是需要考慮的一個問題是,系統安裝的環境一般是專用sql server伺服器+web伺服器+客戶端,而excel文件往往在客戶端導入,如果直接使用sql語句讀取的話,由於sql在web伺服器上運行,不能讀取到客戶端的excel地址,就會出錯了。
既然知道了錯誤的原因,解決方案也就有了:
1、把客戶端的excel上傳至web伺服器上某文件夾,注意要給該文件夾設置網路用戶的「寫入」許可權;
2、使用OleDb+sql語句讀取web伺服器上的excel文件
3、將讀取的數據寫入到sql server 資料庫
4、將web伺服器上的臨時excel刪除
部分代碼如下:
string filename = FileUpload1.PostedFile.FileName.Substring(FileUpload1.PostedFile.FileName.LastIndexOf("\\"));
FileUpload1.PostedFile.SaveAs(Server.MapPath("fileupload\\") + filename);//上傳文件
string conn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("fileupload\\") + filename + ";Extended Properties=Excel 8.0";
string sqlin = "SELECT * FROM [Sheet2$]";
OleDbCommand olecommand = new OleDbCommand(sqlin, new OleDbConnection(conn));
OleDbDataAdapter adapterin = new OleDbDataAdapter(olecommand);
DataSet dsin = new DataSet();
adapterin.Fill(dsin);
DataTable dtin = dsin.Tables[0];//連接並讀取excel數據
for (i = 3; i <= totalrow; i++)//將Excel文件中第一個工作表的數據導入到sql資料庫scjd_youliaoxiaohaojihua表中
{
string sql = "insert into scjd_youliaoxiaohaojihua(yuexuhao,danwei,youpin,cheliangmingchengxinghao,zichanxing,chepaihao,qiyou,chaiyou,beizhu) values('";
int j;
sql += DropDownList1.SelectedValue.ToString() + DropDownList3.SelectedValue.ToString();
if (DropDownList1.SelectedValue.ToString() != DateTime.Now.Year.ToString() || int.Parse(DateTime.Now.Month.ToString()) != int.Parse(DropDownList3.SelectedValue.ToString()))
{
sql += "20";
}
else
{
if (int.Parse(DateTime.Now.Day.ToString()) < 10)
sql += "0";
sql += DateTime.Now.Day.ToString();
}
if (i-3 + count < 9)
sql += "00";
else if (i-3 + count < 99)
sql += "0";
sql += (i -3 + 1 + count).ToString();
sql += "','";
for (j = 1; j < 8; j++)
{//遍歷Excel表中一行的所有列,除最後一列
sql += dtin.Rows[i][j].ToString().Trim();
sql += "','";
}
sql += dtin.Rows[i][8].ToString().Trim();
sql += "')";
try
{
DoSql(sql);
}
catch (Exception eeeeeee)
{
Response.Write("<script>alert('數據導入錯誤,請檢查Excel文件')</script>");
return;
}
}
FileInfo file = new FileInfo(Server.MapPath("fileupload/") + filename);
if (file.Exists)
{//刪除文件
file.Delete();
}
protected void DoSql(string sql)//執行sql語句的函數
{
SqlConnection conn = new SqlConnection();//創建連接對象
conn.ConnectionString = ConfigurationManager.AppSettings["conn"].ToString();//給連接字元串賦值
conn.Open();//打開資料庫
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.ExecuteNonQuery();//
conn.Close();//關閉資料庫
}
註:
1、本文代碼均取自我最近剛做的一個小項目,部分數據有較強針對性,並不通用,只有思路通用
2、由於能力和水平問題,部分代碼顯得有些笨拙,若能靈活運用存儲過程,應能大幅度簡化代碼 只要你的文件能夠用記事本打開並格式正確,就可以把他認為是文本文件進行處理.
象這種格式的數據沒有什麼太好的辦法,只有從文本文件中逐行讀取解析,當讀到完整的記錄時執行SQL語句插入到資料庫中.
H. 多個excel文件導入sql資料庫的同一個表格數據
1打開SQL Server Management Studio,按圖中的路徑進入導入數據界面。
2導入的時候需要將EXCEL的文件准備好,不能打開。點擊下一步。
3數據源:選擇「Microsoft Excel」除了EXCEL類型的數據,SQL還支持很多其它數據源類型。
4選擇需要導入的EXCEL文件。點擊瀏覽,找到導入的文件確定。
5再次確認文件路徑沒有問題,點擊下一步。
6默認為是使用的WINODWS身份驗證,改為使用SQL身份驗證。輸入資料庫密碼,注意:資料庫,這里看看是不是導入的資料庫。也可以在這里臨時改變,選擇其它資料庫。
7選擇導入數據EXCEL表內容範圍,若有幾個SHEET表,或一個SHEET表中有些數據我們不想導入,則可以編寫查詢指定的數據進行導入。點擊下一步。
8選擇我們需要導入的SHEET表,比如我在這里將SHEET表名改為price,則導入後生面的SQL資料庫表為price$。點擊進入下一步。
9點擊進入下一步。
10 在這里完整顯示了我們的導入的信息,執行內容,再次確認無誤後,點擊完成,開始執行。
11 可以看到任務執行的過程和進度。
12 執行成功:我們可以看看執行結果,已傳輸1754行,表示從EXCEL表中導入1754條數據,包括列名標題。這樣就完成了,執行SQL查詢語句:SELECT * FROM price$就可以查看已導入的數據內容。
I. 如何將資料庫文件導入資料庫中
附加資料庫就可以完成.
附加資料庫:企業管理器--右鍵"資料庫"--所有任務--附加資料庫
--選擇你的.mdf文件名--確定--如果提示沒有.ldf文件,是否創建,選擇"是"
查詢分析器中的方法:
--有數據文件及日誌文件的情況
sp_attach_db
'資料庫名'
,'數據文件名(*.mdf注意要帶目錄)'
--後面可以是用,分隔的該資料庫的多個數據文件
,'日誌文件名(*.ldf注意要帶目錄)'--後面可以是用,分隔的該資料庫的多個日誌文件
--如果只有數據文件的情況,'數據文件名(*.mdf注意要帶目錄)'
--後面可以是用,分隔的該資料庫的多個數據文件
J. 怎麼把資料庫文件導入資料庫 mysql資料庫
附加資料庫
或者導入資料庫
sql本身有數據導入的操作。但如果要從一個備份的文件中導入數據,則要進行另外的操作。下面以一個例子進行說明。
sql伺服器上已有一個doe資料庫,並且裡面有大量的數據,現准備從另外一個備份文件a1.bak(不是doe資料庫的備份文件)中導入另外的數據(即導入後在doe中增加一些數據表,表中已錄有數據),並保持原doe的數據不變。
1、首先,在「sql企業管理器」中新建一個臨時資料庫a1。
2、右擊a1資料庫,選擇:所有任務->還原資料庫。
3、在「還原資料庫」窗口中,選擇:「從設備」。
4、點擊「選擇設備」。
5、點擊「添加」。
6、從文件名中選擇要還原的資料庫文件,如a1.bak。
7、點擊「確定」,返回「還原資料庫」窗口。
8、點擊「選項」卡,進入選項設置。
9、鉤選:「在現有資料庫上強制還原」。
10、修改「移到物理文件名」為:「c:\a1.ldf」、「c:\a1.mdf」。
11、點確定,即可導入備份文件中的數據到臨時資料庫a1中。
12、此時,你可以將數據從a1導入到另外一真正要導入的資料庫中,如doe資料庫。
(下面的數據導入操作為sql2000企業管理器的一般數據導入導出操作。)
13、在「sql企業管理器」中選擇「doe」資料庫。
14、右擊doe資料庫,選擇:所有任務->導入數據。
15、在「dts導入/導出向導」窗口的「選擇數據源」中,數據源選擇剛才建立並導入數據的臨時資料庫a1。點擊下一步。
16、在「選擇目的」中,系統已經默認為doe資料庫。
17、連續點擊「下一步」,直到完成。
經過上面的操作,你已經成功地將備份文件a1.bak中數據導入doe資料庫中,並且doe資料庫原有數據不變。
此時,你可以刪除臨時資料庫a1。