Oracle
 sql >> база данни >  >> RDS >> Oracle

Защо тази съхранена процедура вмъква NULL стойности в таблицата?

За да отговоря на въпроса ви защо вмъква нули, това е, защото не предоставяте никакви стойности на параметрите на процедурата, когато я изпълнявате.

Въз основа на това, което посочихте във въпроса и вашия коментар по-горе, изглежда, че ви липсват някои основни умения за работа с Oracle. Кодът, който сте написали, е процедура, а не функция, така че не можете да го извикате в SELECT изявление. Процедура се извиква вътре в plsql блок. Вашата процедура, както е написана, приема два аргумента, които трябва да предадете на извикването на процедурата чрез извикващия код. Процедурният код, който сте написали, не търси данни от XML_HOURS_LOAD таблица.

Всички сме били новите хора, изучаващи Oracle. Ще искате да разгледате някои уроци, за да започнете с основите на pl/sql кодирането, за да изясните разликите между функциите и съхранените процедури и как да използвате аргументите на параметрите.

От това, което сте написали във въпроса си, смятам, че това е кодът, който искате:

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. защо 'create table' в sql скрипт се изпълнява 3 пъти, когато се използва само 1 оператор за създаване?

  2. Значение на байтовете за изхвърляне (systimestamp) на Oracle

  3. Oracle/SQL - Изберете определен диапазон от последователни записи

  4. ORA-01401:вмъкната стойност е твърде голяма за колона CHAR

  5. План за изпълнение на Oracle