simpan saja menggunakan CTRL+S dan jangan dijalankan, apakah tidak akan disimpan sebagai prosedur?
Oracle SQL Developer adalah IDE dan BUKAN server database. Ini menyediakan antarmuka untuk berinteraksi dengan database. CTRL + S
adalah pintasan OS Windows dan tidak ada hubungannya dengan database Oracle.
Anda harus mengkompilasi prosedur untuk menyimpannya ke dalam disk.
Anda berkata,
ketika saya mencoba membuat prosedur baru dengan nama yang sama, saya mendapatkan kesalahan objek sudah ada
Itu karena Anda tidak menggunakan kata kunci REPLACE
untuk mengganti objek yang ada.
Mari kita lihat alasannya:
SQL> CREATE PROCEDURE foo
2 AS
3 BEGIN
4 NULL;
5 END;
6 /
Procedure created.
SQL> CREATE PROCEDURE foo
2 AS
3 BEGIN
4 NULL;
5 END;
6 /
CREATE PROCEDURE foo
*
ERROR at line 1:
ORA-00955: name is already used by an existing object
Cara menghindarinya: Gunakan CREATE OR REPLACE
SQL> CREATE OR REPLACE PROCEDURE foo
2 AS
3 BEGIN
4 NULL;
5 END;
6 /
Procedure created.
Untuk melihat apakah prosedur yang dikompilasi ada dalam database, kueri tampilan [DBA|ALL|USERS]_PROCEDURES.
Ada dua hal:
- Prosedur yang berdiri sendiri - gunakan
object_name
sebagai filter
SELECT owner,
object_name,
procedure_name,
object_type
FROM all_procedures
WHERE owner ='OWNER'
AND object_name='PROC_NAME';
- Prosedur terpaket - gunakan
procedure_name
sebagai filter
SELECT owner,
object_name,
procedure_name,
object_type
FROM all_procedures
WHERE owner ='OWNER'
AND procedure_name='PROC_NAME';
person
Lalit Kumar B
schedule
10.11.2015