Dari gambar error tersebut terlihat jelas penyebabnya:
Incorrect number of arguments for FUNCTION ... expected 15, got 14
Artinya: FUNCTION atau Stored Procedure spbuy (atau sptaxsample) membutuhkan 15 parameter, tapi saat dipanggil hanya diberikan 14 parameter.
. Tujuan Anda
Anda ingin mensimulasikan kasus tersebut pada database sample MariaDB dengan database contoh bernama hris.
Saya buatkan contoh struktur database, fungsi, dan pemanggilan yang benar & salah, sehingga error yang sama bisa direplikasi.
. SIMULASI DI MARIADB: Database hris
1. Buat Database Sample
CREATE DATABASE IF NOT EXISTS hris;
USE hris;
2. Buat Sample Stored Procedure spbuy
Ini sekedar contoh dengan 15 parameter seperti kebutuhan kasus Anda:
DELIMITER $$
CREATE PROCEDURE spbuy(
IN p1 INT,
IN p2 INT,
IN p3 INT,
IN p4 INT,
IN p5 INT,
IN p6 INT,
IN p7 INT,
IN p8 INT,
IN p9 INT,
IN p10 INT,
IN p11 INT,
IN p12 INT,
IN p13 INT,
IN p14 INT,
IN p15 INT
)
BEGIN
SELECT 'Simulasi spbuy berhasil dipanggil' AS result;
END$$
DELIMITER ;
3. Contoh Kesalahan (pemicu error seperti di screenshot)
Hanya 14 parameter:
CALL spbuy(1,2,3,4,5,6,7,8,9,10,11,12,13,14);
Expected error di MariaDB:
ERROR 1318 (42000): Incorrect number of arguments for PROCEDURE hris.spbuy; expected 15, got 14
MariaDB [teguhth]> CALL spbuy(1,2,3,4,5,6,7,8,9,10,11,12,13,14);
ERROR 1318 (42000): Incorrect number of arguments for PROCEDURE teguhth.spbuy; expected 15, got 14
MariaDB [teguhth]>
MariaDB [teguhth]> CALL spbuy(1,2,3,4,5,6,7,8,9,10,11,12,14);
ERROR 1318 (42000): Incorrect number of arguments for PROCEDURE teguhth.spbuy; expected 15, got 13
MariaDB [teguhth]>
MariaDB [teguhth]> CALL spbuy(1,2,3,4,5,6,7,8,9,10,11,,14);
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '14)' at line 1
MariaDB [teguhth]>
MariaDB [teguhth]> CALL spbuy(1,2,3,4,5,6,7,8,10,11,14);
ERROR 1318 (42000): Incorrect number of arguments for PROCEDURE teguhth.spbuy; expected 15, got 11
MariaDB [teguhth]>
4. Contoh Pemanggilan yang Benar
Dengan 15 parameter lengkap:
CALL spbuy(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
Output:
+------------------------------------------+
| result |
+------------------------------------------+
| Simulasi spbuy berhasil dipanggil |
+------------------------------------------+
5.1 Cek jumlah parameter SP di MariaDB:
SHOW CREATE PROCEDURE spbuy\G
5.2 Samakan jumlah parameter di aplikasi:
{ call spbuy(?,?,?,?,?,?,?,?,?,?,?,?,?) }
Jika SP/FUNCTION berubah versi (param nambah), aplikasi harus update.
Bila Anda Mau, Saya Bisa:
? Cocokkan SP spbuy Anda yang sebenarnya
? Analisa parameter masing-masing dan mapping dari aplikasi
? Deteksi versi mana yang tidak sinkron (Dev/QA/Prod)
? Generator template call otomatis untuk 13 param
Apakah Anda ingin saya bantu review struktur parameter SP Anda yang asli?
Jika ya, silakan kirim:
SHOW CREATE PROCEDURE spbuy;





No comments:
Post a Comment