Dari gambar error tersebut terlihat jelas penyebabnya:
procedure spbuy(integer, integer, integer, integer, integer, integer, integer, integer, integer, integer, integer, integer, integer, integer) does not exist
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 oracle dengan database contoh bernama hris.
Saya buatkan contoh struktur database, fungsi, dan pemanggilan yang benar & salah, sehingga error yang sama bisa direplikasi.
. SIMULASI DI oracle: Database hris
1. Buat Database Sample
procedure spbuy(integer, integer, integer, integer, integer, integer, integer, integer, integer, integer, integer, integer, integer, integer) does not exist
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 oracle dengan database contoh bernama hris.
Saya buatkan contoh struktur database, fungsi, dan pemanggilan yang benar & salah, sehingga error yang sama bisa direplikasi.
. SIMULASI DI oracle: Database hris
1. Buat Database Sample
2. Buat Sample Stored Procedure spbuy
Ini sekedar contoh dengan 15 parameter seperti kebutuhan kasus Anda:
CREATE OR REPLACE PROCEDURE spbuy (
p1 IN NUMBER,
p2 IN NUMBER,
p3 IN NUMBER,
p4 IN NUMBER,
p5 IN NUMBER,
p6 IN NUMBER,
p7 IN NUMBER,
p8 IN NUMBER,
p9 IN NUMBER,
p10 IN NUMBER,
p11 IN NUMBER,
p12 IN NUMBER,
p13 IN NUMBER,
p14 IN NUMBER,
p15 IN NUMBER
)
AS
BEGIN
DBMS_OUTPUT.PUT_LINE('Simulasi spbuy berhasil dipanggil');
END;
/
3. Contoh Kesalahan (pemicu error seperti di screenshot)
Hanya 14 parameter:
SET SERVEROUTPUT ON;
EXEC spbuy(1,2,3,4,5,6,7,8,9,10,11,12,13,14);
EXEC spbuy(1,2,3,4,5,6,7,8,9,10,12,13,14);
Expected error di oracle:
SQL> EXEC spbuy(1,2,3,4,5,6,7,8,9,10,11,12,13,14);
BEGIN spbuy(1,2,3,4,5,6,7,8,9,10,11,12,13,14); END;
*
ERROR at line 1:
ORA-06550: line 1, column 7:
PLS-00306: wrong number or types of arguments in call to 'SPBUY'
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
SQL> EXEC spbuy(1,2,3,4,5,6,7,8,9,10,12,13,14);
BEGIN spbuy(1,2,3,4,5,6,7,8,9,10,12,13,14); END;
*
ERROR at line 1:
ORA-06550: line 1, column 7:
PLS-00306: wrong number or types of arguments in call to 'SPBUY'
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
SQL>
4. Contoh Pemanggilan yang Benar
Dengan 15 parameter lengkap:
SET SERVEROUTPUT ON;
EXEC spbuy(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
EXECUTE spbuy(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
BEGIN
spbuy(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
END;
/
SET SERVEROUTPUT OFF;
SQL> SET SERVEROUTPUT ON;
SQL> EXEC spbuy(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
Simulasi spbuy berhasil dipanggil
PL/SQL procedure successfully completed.
SQL> EXECUTE spbuy(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
Simulasi spbuy berhasil dipanggil
PL/SQL procedure successfully completed.
SQL> BEGIN
spbuy(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
END;
/ 2 3 4
Simulasi spbuy berhasil dipanggil
PL/SQL procedure successfully completed.
SQL> SET SERVEROUTPUT OFF;
SQL>
5. Rekomendasi Solusi untuk Kasus Asli Anda
5.1 Cek jumlah parameter SP di oracle:
select 'SELECT text FROM user_source WHERE name = ''SPBUY'' ORDER BY line;' from dual;
SELECT text FROM user_source WHERE name = 'SPBUY' ORDER BY line;
select 'SELECT text FROM all_source WHERE name = ''SPBUY'' ORDER BY line;' from dual;
SELECT text FROM all_source WHERE name = 'SPBUY' ORDER BY line;
select 'SELECT text FROM dba_source WHERE name = ''SPBUY'' ORDER BY line;' from dual;
SELECT text FROM dba_source WHERE name = 'SPBUY' ORDER BY line;
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:







No comments:
Post a Comment