フォルダーのすべての.pdfファイルを、その番号に従ってテーブルに挿入する必要があります。
ファイルのリストを取得できました(フォルダー内にすべての.pdfがあります):
exec master.sys.Xp_dirtree 'The_Folder_where_PDFS_are',0,1
そして、私はそれをテーブルの中に挿入することができました:
CREATE TABLE PDFTest(NumExample integer,image_data VARBINARY(MAX));
DECLARE @NumExample integer
SET @NumExample = 2456789
INSERT INTO PDFTest(NumExample ,image_data)
SELECT @NumExample ,image_data
FROM OPENROWSET(BULK N'C:\DBA\3937052016_Requisição.pdf',SINGLE_BLOB) AS ImageSource(image_data);
Select * from PDFTest
ただし、ご覧のとおり、ファイルには番号(3937052016
)にちなんで名前が付けられています。この番号は別のテーブルのIDであるため、PDFファイルが123
で始まる場合は、ID 123
に挿入する必要があります。開始点。カーソルを作成し、すべてのファイルをループし、left()またはsubstring()関数を使用して数値を取得し、変数に挿入して、insert this pdf into table where left/substring(pdf_name)=id
のように比較しようとしています。 。
私はこのような文字列のようなものが必要です:
Insert into tablex ( pdffield )
values ( 123_PdfFIle.pdf ( obviously using openrowset )
where left/substring(123_pdf to get the pdf's code )) = id`
私は正しいパッチを使用していますか?より少ない労力でこれを行う方法はありますか?
C:\ TestPdfというディレクトリを作成し、テキストを含む2つのtxtファイルを作成しました(PDFファイルを使用します)
123456789.txt
987654321.txt
あなたの例から、私の仮定は、ファイル123456789.txtをID 123として挿入し、ファイル987654321.txtをID987として挿入することです。
この動的SQLは私のために働きました-あなたはあなたのデータに対してテストする必要があるでしょう
set nocount on
IF OBJECT_ID('dbo.PDFTest', 'U') IS NOT NULL
DROP TABLE dbo.PDFTest;
Create table PDFTest (NumExample integer,image_data VARBINARY(MAX))
DECLARE @FileTable TABLE (FileName VARCHAR(max),DepthColumn INT,FileColumn INT)
INSERT INTO @FileTable
EXEC master.sys.Xp_dirtree 'c:\testpdf',0,1
DECLARE @cmd VARCHAR(max)
DECLARE @FileName VARCHAR(max)
DECLARE _CURSOR CURSOR LOCAL FORWARD_ONLY STATIC READ_ONLY
FOR
SELECT FileName
FROM @FileTable
OPEN _CURSOR
FETCH NEXT
FROM _CURSOR
INTO @FileName
WHILE @@FETCH_STATUS = 0
BEGIN
SET @cmd = '
INSERT INTO PDFTest(NumExample ,image_data)
SELECT ' + substring(@FileName, 1, 3) + ',image_data
FROM OPENROWSET(BULK N''c:\testpdf\' + @FileName + ''',SINGLE_BLOB) AS ImageSource(image_data)
'
PRINT @cmd
EXEC (@cmd)
FETCH NEXT
FROM _CURSOR
INTO @FileName
END --End While
CLOSE _CURSOR
DEALLOCATE _CURSOR
SELECT *
FROM pdftest