0

これは私のスクリプトです。人物の行に関連付けられた画像ファイルを検索するだけです。

クエリの実行時に明らかな .jpg がない場合、エラーが表示されるようになりました。

メッセージ 4860、レベル 16、状態 1、行 1
一括読み込みできません。ファイル「C:\Dev\ClientServices\Defence\RAN\Shore\Config\Photos\002054.2009469432270600.001.jpg」が存在しません。

このクエリを書き込む方法はありますか

IF not exists then set id_number = '002054.2009469432270427.001' 

そのため、画像のない行には常にこの写真が表示されます。

ALTER
procedure [dbo].[as_ngn_sp_REP_PH108_photo] (@PMKEYS nvarchar(50)) 
AS
---exec [as_ngn_sp_REP_PH108_photo] '8550733'
SET 
NOCOUNT ON

DECLARE @PATH AS NVARCHAR(255)
DECLARE @ID_NUMBER NVARCHAR(27)
DECLARE @SQL AS NVARCHAR(MAX)

EXEC DB_GET_DB_SETTING'STAFF PICTURE FILE LOCATION', 0, @PATH OUTPUT 

IF RIGHT(@PATH,1) <> '\'

    SET @PATH = @PATH + '\' 

SELECT @ID_NUMBER = ID_NUMBER FROM aView_person WHERE EXTRA_CODE_1 = @PMKEYS

SET @PATH = @PATH + @ID_NUMBER + '.jpg'

SET @SQL = 'SELECT ''Picture1'' [Picture], BulkColumn FROM OPENROWSET(Bulk ''' + REPLACE(@PATH,'''','''''') + ''', SINGLE_BLOB) AS RAN'

EXEC SP_EXECUTESQL @SQL
4

2 に答える 2

2

次のようにコードを変更して動作させることができます。

SET @PATH = @PATH + isnull(@ID_NUMBER,'002054.2009469432270427.001') + '.jpg'

@Id_Number が見つからない場合、値は null になるため、null をデフォルトの ID に置き換えます。

于 2012-10-21T08:06:00.593 に答える
-1

SQL Server でファイルの存在を確認する必要があると思います。以下の投稿を見つけて、SQL Server でどのように実現できるかを確認してください。この男は、組み込みの xp_fileexistストアド プロシージャを使用して回避します。

xp_fileexist ストアド プロシージャを使用した SQL Server でのファイル検証

幸運を !!

于 2012-10-21T05:01:06.033 に答える