目次
一,必要的环境说明
二,代码准备 - 建数据库及存储过程
三,文件准备,导入源及Schema.ini配置文件
四,执行及检查
ホームページ データベース mysql チュートリアル 通过异类查询(OpenDataSource)把外部数据(Excel,TXT)导入到SqlSe

通过异类查询(OpenDataSource)把外部数据(Excel,TXT)导入到SqlSe

Jun 07, 2016 pm 04:10 PM
外部の データ お問い合わせ 合格

无论用sqlcmd或者通过C#逻辑处理,或者还是直接在SqlServer里执行操作,个人总结大概不过可归总为这两种方式: 1,SSIS; 2,OLEDB驱动引擎。 SSIS实在也好用,现在这里先不去讨论。其中大多数人用的都是第二种方法,下面,本人也以第二种方法在SqlServer里导

无论用sqlcmd或者通过C#逻辑处理,或者还是直接在SqlServer里执行操作,个人总结大概不过可归总为这两种方式:
1,SSIS;
2,OLEDB驱动引擎。


SSIS实在也好用,现在这里先不去讨论。其中大多数人用的都是第二种方法,下面,本人也以第二种方法在SqlServer里导入excel和txt格式文件的具体实例来说明怎样在项目里灵活通过OLEDB导入数据!

一,必要的环境说明

本实例用sql语句在SqlServer里面完成对数据的导入操作。
在本实例开始之前,可能需要先安装AccessDatabase引擎包
(本人机器64位,安装的是32位的office组件,所以需要另外安装office驱动引擎包(此引擎包作用在于使得office系统文件与office应用程序之间进行数据传输) - 此步骤中需要先卸载32位office组件,否则会提示驱动安装不成功)
本人所用引擎包下载地址如下:
http://www.microsoft.com/zh-cn/download/details.aspx?id=13255
安装完成后,具体配置可以这里配,建议如非必要,默认就好。
\

二,代码准备 - 建数据库及存储过程

建数据库这里不多说,建立与导入数据相匹配的数据库而已。
而为了项目拓展及方便使用管理,需要创建存储过程,目的是为了批量导入外部数据。
因为本例以excel和txt分别来做实例说明,所以,需要新建两个存储过程 - "sp_ReadXLSSource"和"sp_ReadSource"。代码分别如下:
存储过程:sp_ReadXLSSource
USE [CUSTOMS]
GO
/****** Object:  StoredProcedure [dbo].[sp_ReadXLSSource]    Script Date: 11/21/2014 3:01:39 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[sp_ReadXLSSource]
@trgPath varchar(255),
@trgTable varchar(255),
@xlsFile varchar(255),
@xlsSheet varchar(255),
@xlsFields varchar(8000)
AS
declare @mySql varchar(8000)
declare @myIntermediate varchar(8000)
declare @Firstfield varchar(100)
declare @FirstfieldValue varchar(100)

--Lookup lastfield
set @Firstfield = dbo.fnGetFirstField(@xlsFields)
set @FirstfieldValue = RTRIM(LTRIM(SUBSTRING(@Firstfield,2,CHARINDEX(']',@Firstfield,0)-2)))
--PRINT @FirstfieldValue

--Drop table if exists
set @myIntermediate = 'IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N''[dbo].[' + @trgTable + ']'') AND type in (N''U''))'
set @mySql = @myIntermediate + ' DROP TABLE ' + @trgTable
exec(@mySql)
--PRINT @mySql

--Load Table
set @mySql = 'SELECT ' + @xlsFields + ' INTO ' + @trgTable + ' FROM OPENROWSET(''Microsoft.ACE.OLEDB.12.0'',  
''Excel 12.0;DATABASE=' + @trgPath + '\' + @xlsFile + ';IMEX=1'',  ''Select * from ' + @xlsSheet + ''')'
+ 'WHERE NOT ' + @Firstfield + ' IS NULL'
--PRINT @mySql
exec(@mySql)
ログイン後にコピー
存储过程:sp_ReadSource
USE [WOOX_CQM]
GO
/****** Object:  StoredProcedure [dbo].[sp_ReadSource]    Script Date: 11/21/2014 2:54:33 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[sp_ReadSource]
@trgPath varchar(255),
@trgTable varchar(255),
@trgFields varchar(8000)
AS
declare @mySql varchar(8000)
declare @myIntermediate varchar(8000)
declare @Firstfield varchar(100)
declare @FirstfieldValue varchar(100)

--Lookup lastfield
set @Firstfield = dbo.fnGetFirstField(@trgFields)
set @FirstfieldValue = RTRIM(LTRIM(SUBSTRING(@Firstfield,2,CHARINDEX(']',@Firstfield,0)-2)))
--PRINT @FirstfieldValue

--Drop table if exists
set @myIntermediate = 'IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N''[dbo].[' + @trgTable + ']'') AND type in (N''U''))'
set @mySql = @myIntermediate + ' DROP TABLE ' + @trgTable
exec(@mySql)
--PRINT @mySql

--Load Table
set @mySql = 'SELECT ' + @trgFields + ' INTO ' + @trgTable + ' ' +
'FROM OpenDataSource (''Microsoft.ACE.OLEDB.12.0'',
''Data Source="' + @trgPath + '";Extended properties=Text'')...' 
+ @trgTable + '#txt ' 
+ &#39;WHERE NOT &#39; + @Firstfield + &#39; IS NULL AND &#39; + @Firstfield + &#39; <> &#39; + &#39;&#39;&#39;&#39; + @FirstfieldValue + &#39;&#39;&#39;&#39;
--PRINT @mySql
exec(@mySql)
ログイン後にコピー

三,文件准备,导入源及Schema.ini配置文件

对于excel文件来说,相对txt格式,实在简单很多,关键不过以下这段代码
TRUNCATE TABLE WOOX_INFORMATICA..VBPA;
INSERT INTO WOOX_INFORMATICA..VBPA select * FROM OPENROWSET(&#39;Microsoft.ACE.OLEDB.12.0&#39;, &#39;Excel 12.0;Database=C:\InitialData\db_data.xlsx;HDR=YES&#39;, &#39;SELECT * FROM [VBPA$]&#39;)
--(适用于office2007及以上版本,2003用Jet - "Microsoft.Jet.OLEDB.4.0")
ログイン後にコピー
其它需要注意的不过就是保证excel内的数据格式是统一的文本格式,这里只简单给出事例图,不做详细说明。
\

对于txt格式文件,本人所用格式如下。
vcr9vt21xMXk1sPOxLz+U2NoZW1hLmluaaOhyOe5+7W8yOuyu7PJuaa78tXfs/a07aOstPO2vMrH1eLSu7K91ui07cHLPGJyPgqjqHBzo7q0y8Xk1sPOxLz+0qq6zbW8yOvUtLfF1NrNrNK7uPbOxLz+vNDPwqOswe3N4qOszsS8/rzQxL/CvNfuusOx8Myrs6S78tXfsPy6rNPQv9UmIzI2Njg0O9auwOC1xKOs1eLQqdfUvLrXotLio6GjqTxicj4KxuTW0FNjaGVtYS5pbmnA77nmt7YmIzI2Njg0O8q9yOfPwqGjPHByZSBjbGFzcz0="brush:sql;">[SAP_TVSTZ.txt] FORMAT=Delimited(|) ColNameHeader=True MaxScanRows=0 CharacterSet=Unicode TextDelimiter=` Col1=SKIP1 TEXT Col2=SKIP2 TEXT COL3=VSBED TEXT COL4=LADGR char(100) COL5=WERKS TEXT COL6=LGORT TEXT COL7=VSTEL TEXT
\
这里需要标明的是:域值内,第一行表示数据源文件名;第二行至第六行是必要的设置和说明,每个人按需修改;第七行以下必须按照Col从1索引开始递增,右边是显示的列名及格式。具体有兴趣的同学可以自己试着操作下,看下差异。

四,执行及检查

执行代码如下
USE WOOX_CQM

EXECUTE sp_ActivateDistributedQueries
----------------------------- SAP Tables -----------------------------
DECLARE @LoadPath varchar(2000)
SET @LoadPath = &#39;C:\InitialData\SAPdata&#39;

--import Excel--
EXECUTE sp_ReadXLSSource 
@LoadPath, 
&#39;SAP_TCURF&#39;, &#39;SAP_TCURF.xls&#39;, &#39;[Sheet1$]&#39;,
&#39;[KURST],[FCURR],[TCURR],[GDATU], [FFACT],[TFACT],[FromDate],[ToDate]&#39;

--import txt--
EXECUTE sp_ReadSource 
@LoadPath, 
&#39;SAP_TVSTZ&#39;, 
&#39;[VSBED],[LADGR],[WERKS],[LGORT],[VSTEL]&#39;
ログイン後にコピー
可用以下代码先行测试导入数据是否有差距,同学们记得更改本人所用的hardcored。
select * 
FROM OpenDataSource (&#39;Microsoft.ACE.OLEDB.12.0&#39;,
&#39;Data Source="C:\InitialData\SAPdata";Extended properties=Text&#39;)...SAP_TW06S#txt
ログイン後にコピー
ok,大概代码就是这样,如果有什么不懂或者有不同意见的,可用留言讨论!

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

オープンソース!ゾーイデプスを超えて! DepthFM: 高速かつ正確な単眼深度推定! オープンソース!ゾーイデプスを超えて! DepthFM: 高速かつ正確な単眼深度推定! Apr 03, 2024 pm 12:04 PM

0.この記事は何をするのですか?私たちは、多用途かつ高速な最先端の生成単眼深度推定モデルである DepthFM を提案します。従来の深度推定タスクに加えて、DepthFM は深度修復などの下流タスクでも最先端の機能を実証します。 DepthFM は効率的で、いくつかの推論ステップ内で深度マップを合成できます。この作品について一緒に読みましょう〜 1. 論文情報タイトル: DepthFM: FastMonocularDepthEstimationwithFlowMatching 著者: MingGui、JohannesS.Fischer、UlrichPrestel、PingchuanMa、Dmytr

ddrescue を使用して Linux 上のデータを回復する ddrescue を使用して Linux 上のデータを回復する Mar 20, 2024 pm 01:37 PM

DDREASE は、ハード ドライブ、SSD、RAM ディスク、CD、DVD、USB ストレージ デバイスなどのファイル デバイスまたはブロック デバイスからデータを回復するためのツールです。あるブロック デバイスから別のブロック デバイスにデータをコピーし、破損したデータ ブロックを残して正常なデータ ブロックのみを移動します。 ddreasue は、回復操作中に干渉を必要としないため、完全に自動化された強力な回復ツールです。さらに、ddasue マップ ファイルのおかげでいつでも停止および再開できます。 DDREASE のその他の主要な機能は次のとおりです。 リカバリされたデータは上書きされませんが、反復リカバリの場合にギャップが埋められます。ただし、ツールに明示的に指示されている場合は切り詰めることができます。複数のファイルまたはブロックから単一のファイルにデータを復元します

Google は大喜び: JAX のパフォーマンスが Pytorch や TensorFlow を上回りました! GPU 推論トレーニングの最速の選択肢となる可能性があります Google は大喜び: JAX のパフォーマンスが Pytorch や TensorFlow を上回りました! GPU 推論トレーニングの最速の選択肢となる可能性があります Apr 01, 2024 pm 07:46 PM

Google が推進する JAX のパフォーマンスは、最近のベンチマーク テストで Pytorch や TensorFlow のパフォーマンスを上回り、7 つの指標で 1 位にランクされました。また、テストは最高の JAX パフォーマンスを備えた TPU では行われませんでした。ただし、開発者の間では、依然として Tensorflow よりも Pytorch の方が人気があります。しかし、将来的には、おそらくより大規模なモデルが JAX プラットフォームに基づいてトレーニングされ、実行されるようになるでしょう。モデル 最近、Keras チームは、ネイティブ PyTorch 実装を使用して 3 つのバックエンド (TensorFlow、JAX、PyTorch) をベンチマークし、TensorFlow を使用して Keras2 をベンチマークしました。まず、主流のセットを選択します

iPhoneのセルラーデータインターネット速度が遅い:修正 iPhoneのセルラーデータインターネット速度が遅い:修正 May 03, 2024 pm 09:01 PM

iPhone のモバイル データ接続に遅延や遅い問題が発生していませんか?通常、携帯電話の携帯インターネットの強度は、地域、携帯ネットワークの種類、ローミングの種類などのいくつかの要因によって異なります。より高速で信頼性の高いセルラー インターネット接続を実現するためにできることがいくつかあります。解決策 1 – iPhone を強制的に再起動する 場合によっては、デバイスを強制的に再起動すると、携帯電話接続を含む多くの機能がリセットされるだけです。ステップ 1 – 音量を上げるキーを 1 回押して放します。次に、音量小キーを押して、もう一度放します。ステップ 2 – プロセスの次の部分は、右側のボタンを押し続けることです。 iPhone の再起動が完了するまで待ちます。セルラーデータを有効にし、ネットワーク速度を確認します。もう一度確認してください 修正 2 – データ モードを変更する 5G はより優れたネットワーク速度を提供しますが、信号が弱い場合はより適切に機能します

テスラのロボットは工場で働く、マスク氏:手の自由度は今年22に達する! テスラのロボットは工場で働く、マスク氏:手の自由度は今年22に達する! May 06, 2024 pm 04:13 PM

テスラのロボット「オプティマス」の最新映像が公開され、すでに工場内で稼働可能となっている。通常の速度では、バッテリー(テスラの4680バッテリー)を次のように分類します:公式は、20倍の速度でどのように見えるかも公開しました - 小さな「ワークステーション」上で、ピッキング、ピッキング、ピッキング:今回は、それがリリースされたハイライトの1つビデオの内容は、オプティマスが工場内でこの作業を完全に自律的に行​​い、プロセス全体を通じて人間の介入なしに完了するというものです。そして、オプティマスの観点から見ると、自動エラー修正に重点を置いて、曲がったバッテリーを拾い上げたり配置したりすることもできます。オプティマスのハンドについては、NVIDIA の科学者ジム ファン氏が高く評価しました。オプティマスのハンドは、世界の 5 本指ロボットの 1 つです。最も器用。その手は触覚だけではありません

12306 過去のチケット購入記録の確認方法 過去のチケット購入記録の確認方法 12306 過去のチケット購入記録の確認方法 過去のチケット購入記録の確認方法 Mar 28, 2024 pm 03:11 PM

12306 チケット予約アプリの最新バージョンをダウンロードします。誰もが非常に満足している旅行チケット購入ソフトウェアです。行きたい場所に行くのに非常に便利です。ソフトウェアには多くのチケット ソースが提供されています。本物のチケットを渡すだけで済みます。 - 氏名認証によるオンラインチケット購入 全ユーザー 旅行券や航空券を簡単に購入でき、さまざまな割引が受けられます。また、チケットを入手するための事前予約も開始できます。ホテルや特別な車の送迎も予約できます。これを使用すると、ワンクリックで行きたい場所に行き、チケットを購入できます。旅行がより簡単で便利になり、すべての人に旅行体験を提供します編集者はオンラインで詳細を説明するようになり、12306 人のユーザーに過去のチケット購入記録を表示する方法が提供されます。 1. Railway 12306 を開き、右下隅の [My] をクリックして、[My Order] をクリックします。 2. 注文ページで [Paid] をクリックします。 3. 有料ページにて

Alibaba 7B マルチモーダル文書理解の大規模モデルが新しい SOTA を獲得 Alibaba 7B マルチモーダル文書理解の大規模モデルが新しい SOTA を獲得 Apr 02, 2024 am 11:31 AM

マルチモーダル文書理解機能のための新しい SOTA!アリババの mPLUG チームは、最新のオープンソース作品 mPLUG-DocOwl1.5 をリリースしました。これは、高解像度の画像テキスト認識、一般的な文書構造の理解、指示の遵守、外部知識の導入という 4 つの主要な課題に対処するための一連のソリューションを提案しています。さっそく、その効果を見てみましょう。複雑な構造のグラフをワンクリックで認識しMarkdown形式に変換:さまざまなスタイルのグラフが利用可能:より詳細な文字認識や位置決めも簡単に対応:文書理解の詳しい説明も可能:ご存知「文書理解」 「」は現在、大規模な言語モデルの実装にとって重要なシナリオです。市場には文書の読み取りを支援する多くの製品が存在します。その中には、主にテキスト認識に OCR システムを使用し、テキスト処理に LLM と連携する製品もあります。

超知性の生命力が覚醒する!しかし、自己更新 AI の登場により、母親はデータのボトルネックを心配する必要がなくなりました。 超知性の生命力が覚醒する!しかし、自己更新 AI の登場により、母親はデータのボトルネックを心配する必要がなくなりました。 Apr 29, 2024 pm 06:55 PM

世界は狂ったように大きなモデルを構築していますが、インターネット上のデータだけではまったく不十分です。このトレーニング モデルは「ハンガー ゲーム」のようであり、世界中の AI 研究者は、データを貪欲に食べる人たちにどのように餌を与えるかを心配しています。この問題は、マルチモーダル タスクで特に顕著です。何もできなかった当時、中国人民大学学部のスタートアップチームは、独自の新しいモデルを使用して、中国で初めて「モデル生成データフィード自体」を実現しました。さらに、これは理解側と生成側の 2 つの側面からのアプローチであり、両方の側で高品質のマルチモーダルな新しいデータを生成し、モデル自体にデータのフィードバックを提供できます。モデルとは何ですか? Awaker 1.0 は、中関村フォーラムに登場したばかりの大型マルチモーダル モデルです。チームは誰ですか?ソフォンエンジン。人民大学ヒルハウス人工知能大学院の博士課程学生、ガオ・イージャオ氏によって設立されました。

See all articles