1. 程式人生 > >資料庫中存/取檔案

資料庫中存/取檔案

--SQL資料庫中用image來儲存檔案,ACCESS中用ole物件來儲存檔案,下面給出幾種方法,實現資料庫中檔案的儲存/讀取.

--方法.bcp

/*--bcp 實現二進位制檔案的匯入匯出

支援image,text,ntext欄位的匯入/匯出

image適合於二進位制檔案,包括:Word文件,Excel文件,圖片,音樂等

text,ntext適合於文字資料檔案

注意:匯入時,將覆蓋滿足條件的所有行

匯出時,將把所有滿足條件的行匯出到指定檔案中

此儲存過程僅用bcp實現

鄒建2003.08-----------------*/

--整理:Tony 2010.4

/*--

呼叫示例

--資料匯出

exec p_binaryIO 'zj','','','acc_演示資料..tb','img','c:/zj1.dat'

--資料匯入

exec p_binaryIO 'zj','','','acc_演示資料..tb','img','c:/zj1.dat','',0

--*/

if exists(select * from dbo.sysobjects where id = object_id(N'[dbo].[p_binaryIO]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)

drop procedure

[dbo].[p_binaryIO]

GO

Create proc p_binaryIO

@servename varchar (30),--伺服器名稱

@username varchar (30), --使用者名稱

@password varchar (30), --密碼

@tbname varchar (500), --資料庫..表名

@fdname varchar (30), --欄位名

@fname varchar (1000), --目錄+檔名,處理過程中要使用/覆蓋:@filename+_temp

@tj varchar (1000)='', --處理條件.對於資料匯入,如果條件中包含

@fdname,請指定表名字首

@isout bit=1 --1匯出((預設),0匯入

AS

declare @fname_in varchar(1000) --bcp處理應答檔名

,@fsize varchar(20) --要處理的檔案的大小

,@m_tbname varchar(50) --臨時表名

,@sql varchar(8000)

--則取得匯入檔案的大小

if @isout=1

set @fsize='0'

else

begin

create table #tb(可選名 varchar(20),大小 int

,建立日期 varchar(10),建立時間 varchar(20)

,上次寫操作日期 varchar(10),上次寫操作時間 varchar(20)

,上次訪問日期 varchar(10),上次訪問時間 varchar(20),特性 int)

insert into #tb

exec master..xp_getfiledetails@fname

select @fsize=大小 from #tb

drop table #tb

if @fsize is null

begin

print '檔案未找到'

return

end

end

--生成資料處理應答檔案

set @m_tbname='[##temp'+cast(newid() as varchar(40))+']'

set @sql='select * into '+@m_tbname+' from(

select null as 型別

union all select 0 as 字首

union all select '+@fsize+' as 長度

union all select null as 結束

union all select null as 格式

) a'

exec(@sql)

select @fname_in=@fname+'_temp'

,@sql='bcp "'+@m_tbname+'" out "'+@fname_in

+'" /S"'+@servename

+case when isnull(@username,'')='' then ''

else '" /U"'+@username end

+'" /P"'+isnull(@password,'')+'" /c'

exec master..xp_cmdshell@sql

--刪除臨時表

set @sql='drop table '+@m_tbname

exec(@sql)

if @isout=1

begin

set @sql='bcp "select top 1 '+@fdname+' from '

+@tbname+case isnull(@tj,'') when '' then ''

else ' where '+@tj end

+'" queryout "'+@fname

+'" /S"'+@servename

+case when isnull(@username,'')='' then ''

else '" /U"'+@username end

+'" /P"'+isnull(@password,'')

+'" /i"'+@fname_in+'"'

exec master..xp_cmdshell@sql

end

else

begin

--為資料匯入準備臨時表

set @sql='select top 0 '+@fdname+' into '

+@m_tbname+' from ' +@tbname

exec(@sql)

--將資料匯入到臨時表

set @sql='bcp "'+@m_tbname+'" in "'+@fname

+'" /S"'+@servename

+case when isnull(@username,'')='' then ''

else '" /U"'+@username end

+'" /P"'+isnull(@password,'')

+'" /i"'+@fname_in+'"'

exec master..xp_cmdshell@sql

--將資料匯入到正式表中

set @sql='update '+@tbname

相關推薦

資料庫/檔案

--SQL資料庫中用image來儲存檔案,ACCESS中用ole物件來儲存檔案,下面給出幾種方法,實現資料庫中檔案的儲存/讀取. --方法.用bcp /*--bcp 實現二進位制檔案的匯入匯出 支援image,text,ntext欄位的匯入/匯出 imag

在Django框架下向MongoDB資料庫匯入.scv檔案資料

在學習了一些MongoDB和Django框架的一些基礎知識後,我對MongoDB以及Django知識已經有了一個初步的掌握,是時候對學長的專案裡面的東西進行一個初步的實踐了,於是我選擇從Django框架中向MongoDB匯入資料的這部分程式碼開始。通過複用幾段學長專案裡的程式碼,在我自己新建的專案中

php向資料庫匯入.sql檔案

<?php     function insert($file,$database,$name,$root,$pwd)//     {         //將表匯入資料庫      

URL中文引數往資料庫資料時發生亂碼

解決方法:在tomcat_home\conf\server.xml 中的Connector元素中設定URIEncoding屬性為合適的字元編碼 <Connector port="8080" protocol="HTTP/1.1" connectionTime

如何用B+樹設計資料庫的索引檔案

宣告: 1、B+樹的程式碼不是我寫的,是網上的,關於java寫的B+樹的都是這個程式碼,我也不知道怎麼寫原作者。 2、如果不懂B+樹是肯定看不懂這篇blog的。 3、我在原有程式碼上簡單修改了兩個地方:第一、在葉子節點的屬性集合裡添加了file屬性。第二、

1、用Workbench向MySQL資料庫匯入SQL檔案

一、點選workbench登入資料庫二、新建schema,自己命名三、可以看到新建的schema中table等均為空四、左上角選單欄file-Open SQL Script-選中要匯入的SQL檔案五、在開啟的SQL檔案中,找到除註釋外的第一行程式碼,在其前面加一句“use [

向MySQL資料庫匯入SQL檔案出錯,innodb

在MySQL資料庫中匯入SQL檔案,出現“Unsuccessful”的錯誤,執行效果如下圖所示: 將錯誤提示面板翻至頂端,可以看到資料庫給出的錯誤提示,如下圖: 根據錯誤提示可

如何將資料庫的樹轉化為樹形列表(以easyui的tree為例)

很多時候,我們會把一棵樹存放到資料庫中,當前臺需要展示一個樹形列表時,將這棵樹讀取出來並顯示,這個過程是怎麼實現的呢? 這篇文章是以構造一棵easyui前臺框架的一個樹形列表為例,後臺框架是spring MVC+JPA。 首先看一下資料庫中這顆樹是怎麼存的: 樹的結構一目

Oracle資料庫分組最小時間的那條記錄的所有欄位資訊

MERGE INTO user_member_info aUSING ( select min(UP.created) as cre,min(up.shop_no) as shop_no,up.memberid as memberid        from user_pla

從windows環境向linux環境orale資料庫匯入dmp檔案

1.從本地上開啟遠端連線SecureCRT連線虛擬機器 2.進入oracle使用者下 3.輸入命令 imp sys/[email protected]:1521/ORCL file= D:\表名.dmp tables=表名 在這裡D:\

SpringMVC、mybatis查詢資料庫的二進位制檔案,在前端頁面顯示圖片

在做專案的時候,圖片一般是存在單獨的伺服器中,資料庫中只存url地址,這樣做事比較好的,減輕了資料庫的壓力,存取圖片的時候也簡單。然而,也不排除直接將二進位制檔案存到資料庫中的情況,這種做法,無論

從ORACLE資料庫匯出DMP檔案或將DMP檔案匯入ORACLE資料庫的兩種操作

1 淺析DMP       DMP是一種資料庫檔案,其內容包括了整個資料庫和表以及用於的所有資訊,如儲存過程,表定義,表結構等。用於程式設計師除錯程式。2 匯出DMP檔案的兩種方式      匯出資料庫的DMP檔案一般使用命令提示符或SQLPlus兩種方式。這兩種方式在命令上

oracle資料庫重要的檔案(控制檔案、資料檔案、重寫日誌檔案、歸檔日誌檔案、初始化引數檔案

本篇著重從物理角度來說明oracle資料庫的組成。 Oracle資料庫,就是作業系統檔案的集合。包括下面幾種檔案。 1       控制檔案 引數檔案init.ora記錄了控制檔案的位置 控制檔案中的主要資訊: 資料庫的名字,檢查點資訊,資料庫建立的時間戳,所有的資料檔案

python爬蟲由淺入深1-從網頁檔案並儲存至本地

學過python語法的基礎,由此將由淺入深地進行以此python爬蟲的相關知識點的梳理 從網頁中爬取檔案並儲存至本地 import requests import os url = "http://image.nationalgeographic.com.cn/2017

SQL Server 2008 R2 清空資料庫ldf日誌檔案

/************************************************************  * Sql Server 2008 R2 清空資料庫中ldf日誌檔案

scrapy 詳細例項-爬百度貼吧資料並儲存到檔案和和資料庫

Scrapy是一個為了爬取網站資料,提取結構性資料而編寫的應用框架。 可以應用在包括資料探勘,資訊處理或儲存歷史資料等一系列的程式中。使用框架進行資料的爬取那,可以省去好多力氣,如不需要自己去下載頁面、資料處理我們也不用自己去寫。我們只需要關注資料的爬取規則就行,scrap

【附上解釋】爬A股所有上市公司的資訊並存儲到資料庫或者是csv檔案

輸入到mysql版 輸出會有警告,但是不影響。 附上了詳細的解釋~ import pandas as pd import requests import random from bs4 import BeautifulSoup import pymysql f

資料庫的BLOB欄位--圖片等檔案

我們大家都知道Oracle資料庫的Blob是一個較為特殊欄位,它比long欄位的實際應用效能更為好,它的主要功能是用來儲存類似圖片之類的相關二進位制的資料。以下就是文章的中主要內容的介紹。 寫入Blob欄位和寫入其它型別欄位的方式非常不同,因為Blob自身有一

資料庫已有表匯入到powerDesigner生成pdm檔案

如何將資料庫中已有表匯入到powerDesigner生成pdm檔案   1、create new PDM; 2、select database menu; 3、click Reverse  Engin

ElasticSearch 學習記錄之 分散式文件儲存往ES資料和資料的原理

分散式文件儲存 ES分散式特性 遮蔽了分散式系統的複雜性 叢集內的原理 垂直擴容和水平擴容 真正的擴容能力是來自於水平擴容–為叢集新增更多的節點,並且將負載壓力和穩定性分散到這些節點中 ES叢集特點 一個叢集擁有相同