Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Meluluskan Keputusan Ungkapan sebagai Parameter Prosedur Tersimpan dengan Betul?

Bagaimana untuk Meluluskan Keputusan Ungkapan sebagai Parameter Prosedur Tersimpan dengan Betul?

Patricia Arquette
Lepaskan: 2025-01-11 17:12:43
asal
514 orang telah melayarinya

How to Correctly Pass Expression Results as Stored Procedure Parameters?

SQL Server Stored Procedure Parameter Pitfalls: Mengendalikan Keputusan Ungkapan

Melalukan output ungkapan atau panggilan fungsi secara langsung sebagai parameter dalam prosedur tersimpan SQL Server selalunya membawa kepada ralat. Mari kita gambarkan ini dengan isu biasa yang dihadapi dalam SQL Server 2005:

Coretan kod berikut menjana ralat sintaks:

<code class="language-sql">DECLARE @pID int;
SET @pID = 1;
EXEC WriteLog 'Component', 'Source', 'Could not find given id: ' + CAST(@pID AS varchar);</code>
Salin selepas log masuk

Ini mengakibatkan ralat:

<code>Msg 102, Level 15, State 1, Line 4
Incorrect syntax near '+'.</code>
Salin selepas log masuk

Punca punca? SQL Server tidak membenarkan penggunaan langsung ekspresi atau hasil fungsi dalam senarai parameter prosedur yang disimpan. Penyelesaian melibatkan pembolehubah perantaraan.

Berikut ialah pendekatan yang diperbetulkan:

<code class="language-sql">DECLARE @pID INT;
DECLARE @logMessage VARCHAR(50);

SET @pID = 1;
SET @logMessage = 'Could not find given id: ' + CAST(@pID AS VARCHAR(11));
EXEC WriteLog 'Component', 'Source', @logMessage;</code>
Salin selepas log masuk

Kod yang disemak ini memberikan hasil ungkapan kepada @logMessage, yang kemudiannya diiktiraf dengan betul sebagai parameter ketiga. Prosedur tersimpan dilaksanakan tanpa ralat.

Adalah penting untuk ambil perhatian: Sekatan ini terpakai semata-mata pada nilai parameter; ungkapan dalam badan prosedur yang disimpan tidak terjejas.

Atas ialah kandungan terperinci Bagaimana untuk Meluluskan Keputusan Ungkapan sebagai Parameter Prosedur Tersimpan dengan Betul?. 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