當前位置:首頁 » 數據倉庫 » 數字列摻雜著文本如何導入資料庫
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

數字列摻雜著文本如何導入資料庫

發布時間: 2023-01-13 00:38:00

Ⅰ 使用ASP,EXCEL導入ACCESS,整列數據中即有文本又有數字請教高手怎麼解決

excel文件此列的欄位是不是設置成了備注或文本型?
以前存的那個數字形式的數據也應該是文本型或備注型的

否則導入時應該是正常的,你可以試著讀取一下,看是否存在

你還可以在導入時,把他們用強制轉換函數轉換成類型一致,一定搞定呵呵

Ⅱ 文本文件導入到資料庫中的幾種方法

大型的資料庫開發中常常遇到數據源是平面文件(如文本文件)的情況,對於這樣的數據源,無法使用資料庫對其數據進行有效的管理,另外也無法使用sql語句對其進行查詢和操作,所以當務之急就是將這些平面文件導
入到資料庫中,然後就可以對其進行高效的操作了。
下面介紹幾種常見的數據導入的方法,希望能夠給大家啟迪。另外,本文所涉及到的資料庫均為ORACLE資料庫,其實對於其他資料庫而言,方法類似。

一、Sql*:Loader
該方法是Oracle資料庫下數據導入的最重要的方法之一,該工具由Oracle客戶端提供,
其基本工作原理是:首先要針對數據源文件製作一個控制文件,控制文件是用來解釋如何對源文件進行解析,其中需要包含源文件的數據格式、目標資料庫的欄位等信息,一個典型的控制文件為如下形式:
LOAD DATA
INFILE '/ora9i/fengjie/agent/data/ipaagentdetail200410.txt'
TRUNCATE (也可以用append替換TRUNCATE)
INTO TABLE fj_ipa_agentdetail
fields terminated ","
trailing nullcols
( AGENT_NO char,
AGENT_NAME char,
AGENT_ADDRESS char,
AGENT_LINKNUM char,
AGENT_LINKMAN char
)
其中,INFILE '/ora9i/fengjie/agent/data/ipaagentdetail200410.txt'指明所要導入的源文件,其實源文件也可以直接通過命令行來輸入獲得 ,fj_ipa_agentdetail為目標表的名字,fields terminated ","是指源文件的各個欄位是以逗號分隔,trailing nullcols表示遇到空欄位依然寫入到資料庫表中,最後這5個欄位是目標資料庫表的欄位結構。通過上面這個典型的控制文件的格式分析可知,控制文件需要與源文件的格式信息一致,否則導入數據會出現異常。
除了控制以外,sql*loader的還需要數據文件,即源文件。根據格式的不同,源文件可以分為固定欄位長度和有分隔符這兩大類,這里將分別說明這兩種情況:

固定欄位長度的文本文件
就是每個欄位擁有固定的欄位長度,比如:
602530005922 1012
602538023138 1012
602536920355 1012
602531777166 1012
602533626494 1012
602535700601 1012

有分隔符的文本文件
就是每個欄位都有相同的分隔符分隔,比如:

1001,上海長途電信綜合開發公司,南京東路34號140室
1002,上海樺奇通訊科技有限公司,武寧路19號1902室
1003,上海邦正科技發展有限公司,南京東路61號903室

對於上述兩種文件格式sql*loader均可以做處理,下面就前面那個固定長度的文本來舉例說明:
由於該文本只有兩個欄位,一個為設備號,一個是區局編號,兩者的長度分別為20和5,那麼可以編制控制文件如下:
LOAD DATA
INFILE '/ora9i/fengjie/agent/data/ipaagent200410.txt'
TRUNCATE
INTO TABLE fj_ipa_agent
( DEVNO POSITION(1:20) CHAR,
BRANCH_NO POSITION(21:25) CHAR
)
其中,'/ora9i/fengjie/agent/data/ipaagent200410.txt'為該文件的完全路徑,POSITION(M:N)表示該欄位是從位置M到位置N。
對於有分隔符的數據文件,前面已經有一個例子,這里就不再贅述了。總之,使用Sql*Loader能夠輕松將數據文件導入到資料庫中,這種方法也是最常用的方法。
二、 使用專業的數據抽取工具
目前在數據倉庫領域中,數據抽取與裝載(ETL)是一重要的技術,這一技術對於一些大的數據文件或者文件數量較多尤其適合。這里簡單介紹目前一款主流的數據抽取工具 ――Informatica。
該工具主要採用圖形界面進行編程,其主要工作流程是:首先將源數據文件的結構(格式)導入為Informatica里,然後根據業務規則對該結構進行一定的轉換(transformation),最終導入到目標表中。
以上過程僅僅只是做了一個從源到目標的映射,數據的實際抽取與裝載需要在工作流(workflow)里進行。
使用專業的數據抽取工具,可以結合業務邏輯對多個源數據進行join,union,insect等操作,適合於大型資料庫和數據倉庫。
三、 使用Access工具導入
可以直接在Access里選擇『打開『文本文件,這樣按照向導來導入一個文本文件到Access資料庫中,然後使用編程的方法將其導入到最終的目標數據 庫中。
這種方法雖然煩瑣,但是其對系統的軟體配置要求相對較低,所以也是有一定的使用范圍

Ⅲ 如何把TXT文件數據導入MySQL資料庫

具體操作步驟如下:

1、首先打開Navicat軟體,連接到資料庫進入需要導入的資料庫:

Ⅳ 如何將word中的數據導入到資料庫中

1、首先,打開媒介工具「記事本」,將word文件里需要導入的數據,復制粘貼到記事本當中,然後保存成為txt文件,本例中將txt文件取名為「數據源.txt」。


2/8
2、打開excel表格,點擊「數據」選項卡,找到「自文本」。


小朋友語言遲緩2歲至4歲孩子不說話嚴重嗎?
廣告
3/8
3、點擊「自文本」,彈出下一窗口,選擇剛才保存的名為「數據源」的txt類型文件,點擊「導入」。因「自文本」方式數據導入默認的只有三種文件類型txt、csv、prn,所以需要事先將word轉變為txt。


【家長必看】_說話晚的孩子
廣告
4/8
4、彈出「文本導入向導」對話框。選擇最適合的文件類型,方便導入後,數據以已選擇方式分列。點擊「下一步」。

特別注意,如果選的「分隔符號」,則分隔符號必須是英文狀態下的符號,否則導入後無法分列。


兩歲小孩說話晚是什麼原因?說話晚怎麼辦?
廣告
5/8
5、設置分列數據所包含的分隔符號,其實就是導入數據列數的控制,選擇分隔符。

示例文檔用「,」把每列隔開的,所以選擇「逗號」。

完成設定後,點擊下一步。


6/8
6、列數據格式選擇」常規「,」常規「選項更為智能。

完成設定後,點擊完成。


7/8
7、數據存放位置最好是「現有工作表=$A$1」,指的就是從當前表格的第一行第一列開始放置數據。點擊確定。


8/8
8、數據導入完成。

可以進一步編輯,或者是做幾個表格的數據比對啦!

Ⅳ 如何將文本文檔批量數據導入到資料庫中

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語句插入到資料庫中.

Ⅵ 將文本格式數據插入到DB2資料庫中

首先,需要確定空的那一列在資料庫中對應的欄位是否允許為空。
其次,如果可以為空,那麼運行如下命令,將數據導入資料庫:
db2 "import from c:/text.txt of del commitcount 1000 insert into aa" ; 其中c:/text.txt是文件路徑及名字,commitcount 1000表示每1000條記錄提交一次,這樣做可以在一定程度上避免日誌滿,此處1000為任意正整數。
另外還有一個命令,可以用於千萬級海量數據導入:
db2 "load from c:/text.txt of del insert into aa" ; 實行的是裝載操作,不寫日誌將數據導入資料庫中,效率比較高。
如果那一列不能為空,那說明你的數據有問題,請檢查數據合法性。

Ⅶ 如何把文本文件導入SQL資料庫裡面的一個表

學妹的數據文件有四列,而資料庫表mm只有兩列,前面兩列相互對應。
所以,下面2個方法你可以嘗試一下:
1、如果是SYBASE資料庫,可以使用BCP之類的工具導入(數據文件後面兩列可以先使用編輯器去除,否則會合並在author列,超過列定義寬度的被截掉)。如果是其它類型資料庫,可能也會有類似工具導入。也可以使用第三方工具導入,比如PB中的Import功能(不必處理數據文件)。
2、使用SQL語句,你說過已經編程循環讀取了文件的前兩列信息,可以使用INSERT語句插入即可。
3、至於你提供的是ODBC驅動的錯誤提示:可能是由於超時所致。由於本人對ASP不甚了了,所以建議你在插入數據時,盡量逐條提交,提高事務的執行效率,也許會避免你所說的錯誤。或者可能需要使用ASP處理連接超時的問題!
希望我的回答對你有所幫助!

Ⅷ Excel怎麼將填入的數據導進資料庫

第一步:在ghost xp系統中啟動Access,在向導的提示下建立一個「空資料庫」以便用於存放從Excel中導入的數據
第二步:打開要導入數據的資料庫,切換到「外部數據」選項卡,選擇「Excel」按鈕,打開「導入數據」對話框。
第三步:在「選擇數據源」對話框中,可以根據需要選擇數據源,數據源就是我們之前准備好的「成績表.xlsx」表格文件。同時選擇「將數據源導入當前資料庫的新表中」。
第三步:在「選擇數據源」對話框中,可以根據需要選擇數據源,數據源就是我們之前准備好的「成績表.xlsx」表格文件。同時選擇「將數據源導入當前資料庫的新表中」。
第五步:勾選「第一行含有列標題」選項,以免導入向導將表格第一排的標題也當做數據導入進來。點擊「下一步」按鈕
第六步:分別選擇每一個數據列,並指定導入資料庫後的數據類型。中文部分建議設置為「文本」,數字部分可以設置為「整數型」或「雙精度型」。然後點擊「下一步」按鈕
第七步:接下來為數據表設置主鍵。主鍵是資料庫中一種特殊的列,列的內容是一組自動增長的數字,如果沒有實際的需要,我們選擇「不要主鍵」並點擊「下一步」按鈕。
第八步:為即將生成的新標取一個名字。例如「學生成績數據」,並點擊「完成」按鈕,結束導入。

Ⅸ 如何將資料庫文件導入資料庫中

工具/材料:Management Studio。

1、首先在桌面上,點擊「Management Studio」圖標。