2017-04-20 5 views
0

私は、Accessのmdbアプリケーションをローカルのt-sqlデータベースを使用するWPFアプリケーションに変換しています。T-SQLのバルク挿入で間違ったデータ型をヌルに変換する

それはDoCmd.TransferTextを使用して、タブ区切りのテキストファイルをインポートし、このアプリケーションで

ので、以下のように、私が代わりにT-SQL一括挿入を使用しています:

CREATE PROCEDURE [dbo].[sp_insLoans] 
@FileLocation nvarchar(500) 
AS 
DECLARE @sql NVARCHAR(4000) = 'BULK INSERT tblLOAN FROM ''' + @FileLocation + ''' WITH (FIELDTERMINATOR =''\t'', ROWTERMINATOR =''\r'')'; 
exec(@sql) 

をしかし、何らかの理由で、時にはこれらのファイルが持っています数値列の文字。 DoCmd.TransferText関数は、null /空白に変換するように見えます。

バルク挿入を行うと、この列のnullにこの文字を変換できる方法はありますか?

+2

私はあなたからのデータを、その後、#TEMPテーブルに#TEMPテーブル、一括挿入を作成してコピーすることをお勧めします#TempテーブルをtblLoanテーブルに追加します。コピー処理中に、検証を行い、数値以外の値をnullに変換することができます。 –

答えて

2

私はG Mastrosに同意します。

私はそれを一時テーブルに入れてから、置換コマンドを実行して文字を削除します。

これは任意の数字以外の文字を削除して行くことができます:https://www.sqlservercentral.com/Forums/Topic470379-338-1.aspx

乾杯意志を

+0

ありがとう、これは私がやったことです。しかし、数値以外の文字を削除するのではなく、try_parseを使用して、指定された数値列として解析できない場合はnullを返しました – rgorr

関連する問題