Rumah > pangkalan data > tutorial mysql > Mengapa Panggilan Fungsi SQL Saya Gagal dengan Ralat 'fungsi tidak wujud'?

Mengapa Panggilan Fungsi SQL Saya Gagal dengan Ralat 'fungsi tidak wujud'?

Mary-Kate Olsen
Lepaskan: 2024-12-27 09:33:11
asal
336 orang telah melayarinya

Why Does My SQL Function Call Fail with

RALAT: Fungsi Tidak Wujud dan Tiada Fungsi Padanan Ditemui

Pertimbangkan mesej ralat berikut:

ERROR:  function fnupdatesalegtab09(integer, integer, integer, integer, integer, unknown, unknown, integer, unknown, integer, unknown, integer, integer, integer, numeric, integer, integer, unknown, integer, integer, integer, integer, integer, integer, integer, integer, integer, integer, integer, unknown, integer, boolean, unknown, unknown, unknown, unknown, boolean, unknown, unknown, integer, unknown, integer, integer, integer, integer, integer) does not exist  
LINE 1: select FnUpdateSalegtab09 (4, 1, 0, 12, 1, '9','2014-07-15',...
               ^
HINT:  No function matches the given name and argument types. You might need to add explicit type casts.  
Salin selepas log masuk

Dalam senario ini, percubaan telah dibuat untuk memanggil fungsi bernama FnUpdateSalegtab09 dengan parameter tertentu. Walau bagaimanapun, ralat menunjukkan bahawa fungsi itu tidak wujud. Selain itu, ralat menunjukkan bahawa tiada fungsi yang sepadan dengan nama dan jenis hujah yang ditentukan.

Punca Punca

Ralat mungkin disebabkan oleh isu penghantaran. Dalam panggilan fungsi, literal angka digunakan untuk parameter yang ditakrifkan sebagai smallint dalam definisi fungsi. Literal berangka pada mulanya dianggap sebagai integer jenis jika nilainya sesuai dengan integer jenis. Memandangkan tiada hantaran jenis eksplisit disediakan, ini boleh menyebabkan ketidakpadanan antara jenis hujah yang dijangka dan sebenar.

Penyelesaian

Untuk menyelesaikan isu ini, tambahkan hantaran jenis eksplisit pada literal angka dalam panggilan fungsi untuk memadankan jenis data smallint yang dijangkakan. Sebagai alternatif, anda boleh menggunakan huruf yang dipetik (tidak ditaip) dalam panggilan fungsi.

Contoh

Panggilan Salah:

SELECT * FROM f_typetest(1);
Salin selepas log masuk

Betul Panggilan:

SELECT * FROM f_typetest('1');
SELECT * FROM f_typetest(smallint '1');
SELECT * FROM f_typetest(1::int2);
SELECT * FROM f_typetest('1'::int2);
Salin selepas log masuk

Dengan membuat ini pelarasan, panggilan fungsi kini seharusnya dikenali dan dilaksanakan tanpa ralat.

Atas ialah kandungan terperinci Mengapa Panggilan Fungsi SQL Saya Gagal dengan Ralat 'fungsi tidak wujud'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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