Rumah > pangkalan data > tutorial mysql > Mengapa INSERT PUKAL Tidak Menerima Laluan Fail Berubah dalam Prosedur Tersimpan?

Mengapa INSERT PUKAL Tidak Menerima Laluan Fail Berubah dalam Prosedur Tersimpan?

Susan Sarandon
Lepaskan: 2024-12-26 22:47:09
asal
235 orang telah melayarinya

Why Doesn't BULK INSERT Accept Variable File Paths in Stored Procedures?

Sisip Pukal Menggunakan Prosedur Tersimpan: Penyelesaian Masalah

Dalam percubaan untuk memasukkan data secara pukal menggunakan prosedur tersimpan, pembangun menghadapi ralat sintaks. Matlamatnya adalah untuk meniru pertanyaan INSERT PUKAL yang berfungsi ke dalam prosedur. Berikut ialah analisis masalah dan penyelesaiannya.

Isu timbul daripada percubaan untuk menghantar nama fail sebagai pembolehubah kepada arahan INSERT PUKAL dalam prosedur yang disimpan. Malangnya, ini ialah operasi yang tidak disokong oleh BULK INSERT.

Berikut ialah contoh percubaan yang tidak berjaya menggunakan pembolehubah:

DECLARE @filename VARCHAR(255)
SET @filename = 'e:-digit Commercial.csv'

BULK INSERT ZIPCodes
FROM @filename
WITH
Salin selepas log masuk

Sebaliknya, arahan BULK INSERT mengharapkan laluan fail berkod keras . Untuk mengatasi had ini, pertimbangkan untuk membina pernyataan BULK INSERT sebagai rentetan dengan nama fail tetap dan melaksanakannya sebagai SQL dinamik.

DECLARE @filepath NVARCHAR(500)
SET @filepath = N'e:-digit Commercial.csv'

DECLARE @bulkinsert NVARCHAR(2000)

SET @bulkinsert =
       N'BULK INSERT ZIPCodes FROM ''' +
       @filepath +
       N''' WITH (FIRSTROW = 2, FIELDTERMINATOR = '','', ROWTERMINATOR = ''\n'')'

EXEC sp_executesql @bulkinsert
Salin selepas log masuk

Dengan menggunakan SQL dinamik, pernyataan yang dibina boleh dilaksanakan, menyelesaikan ralat sintaks yang dihadapi dalam pelaksanaan prosedur tersimpan asal.

Atas ialah kandungan terperinci Mengapa INSERT PUKAL Tidak Menerima Laluan Fail Berubah dalam Prosedur Tersimpan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan