當前位置:首頁 » 編程語言 » sql語句讀取本地文件
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql語句讀取本地文件

發布時間: 2022-08-18 19:13:34

❶ 如何用sql 語句獲取磁碟上指定文件夾下的所有文件,並把檢索到的文件轉移到另一個文件夾下

檢索文件夾裡面的文件和文件夾,不包含自文件夾里的內容:master..xp_dirtree 'c:/',1,1
如果說要復制或者轉移,可能要用cmd命令,在SQL中執行,如:
exec master..xp_cmdshell @cmd
其中@cmd就是你的cmd命令,你可以在這里寫一個FileCopy的命令代碼,
比如
set @cmd='x c:\windows\myfolder d:\file /e'
exec master..xp_cmdshell @cmd
更多的cmd命令,你再查吧

❷ SQL讀取txt內容

http://www.dedecms.com/knowledge/data-base/sql-server/2012/0821/11295.html
你看看這個,希望對你有幫助。

❸ 如何用sql語句將一個文件夾下的所有txt文件導入到資料庫中急!在線等

使用場景: 比如將 C:\Test\ 目錄下的所有 txt文件內容 導入到 Table_1 中

--定義臨時表,用於存放獲取的文件名稱
CREATE TABLE #files (name varchar(200) NULL, sql varchar(7000) NULL)
--獲取文件名稱,存放在#files
INSERT #files(name)
exec master..xp_cmdshell 'dir c:\test /b'
--刪除不要的文件名稱
DELETE #files WHERE coalesce(name, '') NOT LIKE 'Code%'

--插入需要 導入文件內容的 命令SQL,需要修改 Table_1(改為導入的Table)和文件路徑

UPDATE #files
SET sql = 'BULK INSERT Table_1 FROM ''' + 'C:\Test\'+name + ''' WITH (' +
'DATAFILETYPE = ''char'', FIELDTERMINATOR = ''\t'', ' +
'ROWTERMINATOR = ''\n'')'

--開始執行導入
DECLARE @sql varchar(8000)

DECLARE cur CURSOR STATIC LOCAL FOR
SELECT sql FROM #files

OPEN cur

WHILE 1 = 1
BEGIN
FETCH cur INTO @sql
IF @@fetch_status <> 0
BREAK

EXEC(@sql)
END

DEALLOCATE cur

主要分為讀取文件夾下所有文件和導入文件內容兩部分
--讀取文件夾下所有文件
declare @files table (ID int IDENTITY, FileName varchar(100))
insert into @files execute xp_cmdshell 'dir c:\test /b'
select 'c:\'+ [FileName] AS FILEPATH INTO #temp from @files
SELECT * FROM #temp
--導入文件內容
BULK INSERT dbo.Table_1
FROM #temp
WITH
(
ROWTERMINATOR ='\n'
)

還需要開啟
/***** Step 1 開啟 xp_cmdshell
Use Master
GO
EXEC master.dbo.sp_configure 'show advanced options', 1
RECONFIGURE WITH OVERRIDE
GO
EXEC master.dbo.sp_configure 'xp_cmdshell', 1
RECONFIGURE WITH OVERRIDE
GO
*******/
參考:
http://social.msdn.microsoft.com/Forums/sqlserver/en-US/47c8edc1-8cad-4a24-a09a-3fc0c943325c/bulk-insert-multiple-files-tsql

❹ 讀取sql文件並寫入到資料庫,用SQL語句。

mysql導入導出常用命令

用mysql資料庫最常用的功能便是導入導出了,當然用工具比較方便,不過,用命令你也是應該了解的。

以下實例在windows下的。
一、備份資料庫:(命令在DOS的mysql\bin目錄下執行,linux下當然不用到指定目錄了)
mysqlmp --opt school>school.bbb
注釋:將資料庫school備份到school.bbb文件,school.bbb是一個文本文件,文件名任取,打開看看你會有新發現。
1.導出整個資料庫
mysqlmp -u 用戶名 -p 資料庫名 > 導出的文件名
mysqlmp -u root -p aikersql> aiker.sql
2.導出一個表
mysqlmp -u 用戶名 -p 資料庫名 表名> 導出的文件名
mysqlmp -u aiker -p aikersql users> aiker_users.sql
3.導出一個資料庫結構
mysqlmp -u root -p -d --add-drop-table
aikersql>d:\aiker_db.sql
-d 沒有數據 --add-drop-table 在每個create語句之前增加一個drop table

二.導入資料庫
常用source 命令
進入mysql資料庫控制台,如mysql -u root -p
mysql>use 資料庫
然後使用source命令,後面參數為腳本文件(如這里用到的.sql)
mysql>source d:\aiker_db.sql
也可以用 mysql -uroot -Ddb1 <d:\aiker_db.sql

❺ SQL語句打開文件

run ("calc.exe")

❻ 怎麼用sql語句讀取excel文件啊

//for get driver...
char szBuf[2001];
WORD cbBufMax = 2000;
WORD cbBufOut;
char *pszBuf = szBuf;
CString sDriver;

//for read the file...
CDatabase database;
CString sSql;
CString sItem1,sItem2;
CString sDsn;
CString sFile;

//-------------------在這里把sFile賦值為你要讀取的xls文件的文件名.

///////////////////////////////////////
// Get the names of the installed drivers
//////////////////////////////

if(!SQLGetInstalledDrivers(szBuf,cbBufMax,& cbBufOut))
sDriver="";
else
{
// Search for the driver...
do
{
if( strstr( pszBuf, "Excel" ) != 0 )
{
// Found !
sDriver = CString( pszBuf );
break;
}
pszBuf = strchr( pszBuf, '\0' ) + 1;
}
while( pszBuf[1] != '\0' );
}

// Retrieve the name of the Excel driver. This is
// necessary because Microsoft tends to use language
// specific names like "Microsoft Excel Driver (*.xls)" versus
// "Microsoft Excel Treiber (*.xls)"
// sDriver = GetExcelDriver();

if( sDriver.IsEmpty() )
{
AfxMessageBox("No Excel ODBC driver found");
exit(0);
}

sDsn.Format("ODBC;DRIVER={%s};DSN='';DBQ=%s",sDriver,sFile);

TRY
{
// Open the database using the former created pseudo DSN
database.Open(NULL,false,false,sDsn);

// Allocate the recordset
CRecordset recset( &database );

// Build the SQL string
// Remember to name a section of data in the Excel sheet using "Insert->Names" to be
// able to work with the data like you would with a table in a "real" database. There
// may be more than one table contained in a worksheet.

sSql = "SELECT [A],[B]" //把A,B為xls文件裡面的列,如果要讀取多列的話,用,隔開
"FROM [Sheet1$] " //xls文件裡面的第一個表,如果xls文件里的第一個表不是Sheet1這個名字的話,最好改為Sheet1
"ORDER BY [A],[B]"; //從小到大輸出,A列為一級,B列為二級

// Execute that query (implicitly by opening the recordset)
recset.Open(CRecordset::forwardOnly,sSql,CRecordset::readOnly);

// Browse the result
while( !recset.IsEOF() )//不斷讀取A,B列的數據
{
//Read the result line
recset.GetFieldValue("A",sItem1); //把A列的數據傳給sItem1
recset.GetFieldValue("B",sItem2); //把B列的數據傳給sItem2
//注意!這里的sItem1,sItem2是不斷更新的

// Close the database
database.Close();
}

CATCH(CDBException, e)
{
// A database exception occured. Pop out the details...
AfxMessageBox("Database error: "+e->m_strError);
}
END_CATCH;

❼ 如何利用sql打開本地文件

呵呵,你可以通過映射網路驅動器。不過,一般來說,文件必須跟資料庫系統在同一台電腦上。

❽ 如何用SQL 語句讀取文本文件內容

ResultSet rs = Statemnet.excuteQuery(); List list1 = new ArrayList(); List list2 = new ArrayList(); while(rs.hasnext()){ list1.add(rs.next.getString(0)); list2.add(rs.next.getString(1)); } 然後可以再遍歷這些集合輸出出去。