Rumah >pangkalan data >tutorial mysql >Mengapa Panggilan Fungsi SQL Saya Gagal dengan Ralat 'fungsi tidak wujud'?
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.
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.
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.
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.
Panggilan Salah:
SELECT * FROM f_typetest(1);
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);
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!