需要一些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;