需要一些PL SQL的帮助 . 使用BULK COLLECT从两个不同的表创建过程,APEX告诉:第5行的错误:PL / SQL:ORA-00947:没有足够的值 . 如何逃避这个问题?

码:

CREATE OR REPLACE PROCEDURE country_languages(p_country_name IN countries.country_name%TYPE) IS
  TYPE table_5_type IS TABLE OF countries%ROWTYPE INDEX BY BINARY_INTEGER; 
  v_table_5_work  table_5_type;
 BEGIN
   SELECT *
     BULK COLLECT INTO v_table_5_work
     FROM countries
     JOIN wf_spoken_languages
       ON countries.country_id=wf_spoken_languages.country_id
     WHERE country_name=p_country_name;

  FOR i IN 1..v_table_5_work.COUNT LOOP
    DBMS_OUTPUT.PUT_LINE('1.Country name: ' ||
                         v_table_5_work(i).country_name ||
                         '; 2.Language ID: ' ||
                         v_table_5_work(i).language_id ||
                         '; 3.Official: ' ||
                         v_table_5_work(i).official ||
                         '.');
  END LOOP;
EXCEPTION
  WHEN NO_DATA_FOUND THEN
    RAISE_APPLICATION_ERROR(-20203, 'No such country');
END country_languages;--5,

测试:

BEGIN
  country_languages('Kingdom of Bhutan');
END;