Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Mengapa Prosedur Tersimpan ini Memasukkan nilai NULL ke dalam tabel?

Untuk menjawab pertanyaan Anda tentang mengapa itu memasukkan nol, itu karena Anda tidak memberikan nilai apa pun ke parameter prosedur saat Anda menjalankannya.

Berdasarkan apa yang Anda nyatakan dalam pertanyaan dan komentar Anda di atas, tampaknya Anda kehilangan beberapa keterampilan dasar dalam bekerja dengan Oracle. Kode yang Anda tulis adalah prosedur, bukan fungsi, jadi Anda tidak dapat memanggilnya dalam SELECT penyataan. Prosedur dipanggil di dalam blok plsql. Prosedur Anda seperti yang tertulis membutuhkan dua argumen, yang harus Anda berikan ke panggilan prosedur melalui kode panggilan. Kode prosedur yang Anda tulis tidak mencari data dari XML_HOURS_LOAD tabel.

Kita semua adalah orang baru yang mempelajari Oracle. Anda akan ingin melihat beberapa tutorial untuk membantu Anda memulai dasar-dasar pengkodean pl/sql untuk membantu memperjelas perbedaan antara fungsi dan prosedur tersimpan dan cara menggunakan argumen parameter.

Dari apa yang Anda tulis dalam pertanyaan Anda, saya yakin ini adalah kode yang Anda inginkan:

DECLARE
   p_code IS XML_HOURS_LOAD.code%TYPE,
   p_product IS XML_HOURS_LOAD.product%TYPE;
   CURSOR cXmlHoursLoadCursor IS (SELECT code, product FROM xml_hours_load); --You can add a WHERE condition to this cursor query
BEGIN
    FOR v IN cXmlHoursLoadCursor LOOP
       Cascade_Load(v.code, v.product);
       COMMIT; --I recommend calling commit here instead of inside your stored procedure so that the calling code has control of the transaction state
    END LOOP;
END;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apakah benar-benar lebih baik menggunakan tabel yang dinormalisasi?

  2. Mengapa ddl statis tidak diizinkan di PL/SQL?

  3. Sakit kepala format stempel waktu Oracle sqlldr

  4. Bagaimana saya bisa mendapatkan COUNT(col) ... GROUP BY untuk menggunakan indeks?

  5. Karakter Ampersand (&) diabaikan di Oracle ORDER BY