Rumah >pangkalan data >tutorial mysql >Mengapa Panggilan Fungsi SQL Saya Gagal dengan 'fungsi ... tidak wujud' dan Bagaimana Saya Boleh Membetulkannya?

Mengapa Panggilan Fungsi SQL Saya Gagal dengan 'fungsi ... tidak wujud' dan Bagaimana Saya Boleh Membetulkannya?

Susan Sarandon
Susan Sarandonasal
2024-12-27 13:03:16804semak imbas

Why Does My SQL Function Call Fail with

"RALAT: fungsi ... tidak wujud dan PETUNJUK: Tiada fungsi yang sepadan dengan nama dan jenis hujah yang diberikan"

Dalam kod yang disediakan, percubaan dibuat untuk memanggil fungsi FnUpdateSalegtab09. Walau bagaimanapun, ralat ditemui, menunjukkan bahawa fungsi itu tidak wujud atau jenis hujahnya tidak sepadan dengan yang dijangkakan.

Mesej ralat menunjukkan bahawa nama fungsi atau jenis argumen mungkin tidak betul. Mari kita siasat punca yang mungkin.

Kesesuaian Jenis Argumen

Tandatangan fungsi untuk FnUpdateSalegtab09 menentukan bahawa beberapa parameternya adalah jenis kecil. Walau bagaimanapun, dalam panggilan fungsi, parameter ini dihantar sebagai literal angka, yang pada mulanya dianggap sebagai jenis integer.

Ketidakpadanan antara jenis yang dijangka dan sebenar bagi argumen boleh mengakibatkan ralat.

Penyelesaian

Untuk menyelesaikan isu ini, anda perlu menghantar literal angka secara eksplisit ke jenis yang betul, smallint, sebelum menghantarnya ke fungsi. Anda boleh mencapai ini dengan menambahkan operator cast jenis (::) pada setiap literal, seperti yang ditunjukkan di bawah:

select FnUpdateSalegtab09(
  4, 1, 0, 12, 1, '9'::varchar, '2014-07-15'::timestamp, 4048, '9'::varchar, 
  4048, 'MYCUSTOMER'::varchar, 12::money, 0, 0::money, 0.32, 185, 0,
  '2014-07-15 11:24:12 AM'::timestamp, 0, 0::money, 0, 0::money, 0::money, 
  0, 0::money, 0, 0::money, 0, 0::money, ''::varchar, 0::money, False, 
  ''::varchar, '2014-07-15'::timestamp, ''::varchar, ''::varchar, False, 
  ''::varchar, ''::varchar, 1, ''::varchar, 1, 0, 1, 0, 42
);

Dengan menambahkan hantaran jenis eksplisit, anda memastikan jenis argumen sepadan dengan jangkaan fungsi definisi, dan panggilan fungsi kini harus dilaksanakan tanpa ralat "fungsi ... tidak wujud".

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

Kenyataan:
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