Plsql PLS-00103:遇到符号“;“循环”;当预期以下情况之一时:如果
我应该用大写印刷印度和以色列,用小写印刷所有其他国家 我得到以下错误: PLS-00103:在期望一个 以下:如果 如何索引此数组以按字母顺序显示国家/地区Plsql PLS-00103:遇到符号“;“循环”;当预期以下情况之一时:如果,plsql,Plsql,我应该用大写印刷印度和以色列,用小写印刷所有其他国家 我得到以下错误: PLS-00103:在期望一个 以下:如果 如何索引此数组以按字母顺序显示国家/地区 DECLARE type idtable IS TABLE OF COUNTRIES.COUNTRY_ID%TYPE; type nametable IS TABLE OF COUNTRIES.COUNTRY_NAME%TYPE; idtab idtable; nametab nametable; total
DECLARE
type idtable IS TABLE OF COUNTRIES.COUNTRY_ID%TYPE;
type nametable IS TABLE OF COUNTRIES.COUNTRY_NAME%TYPE;
idtab idtable;
nametab nametable;
total INTEGER;
CURSOR c1 IS
SELECT country_id, country_name
FROM countries;
BEGIN
OPEN c1;
FETCH c1 BULK COLLECT INTO idtab, nametab;
CLOSE c1;
for i =1 in nametab.FIRST .. nametab.LAST LOOP
IF (nametab(i)) = 'India'
THEN dbms_output.put_line(UPPER((nametab(i))));
ELSIF (nametab(i)) = 'Israel'
THEN dbms_output.put_line(UPPER((nametab(i))));
ELSE DBMS_OUTPUT.PUT_LINE (nametab(i));
END LOOP;
END;
你的方块是正确的,除了一个错误。与C或C++循环不同,在PLSQL中不需要初始化它。所以在for循环中i=1是错误的。删除“=1”,它应该可以正常工作。欢迎使用堆栈溢出!欢迎来到堆栈溢出!为了解决这个问题,你能在内容中有一个更好的标题和更详细的信息吗?
DECLARE
TYPE idtable IS TABLE OF COUNTRIES.COUNTRY_ID%TYPE;
TYPE nametable IS TABLE OF COUNTRIES.COUNTRY_NAME%TYPE;
idtab idtable;
nametab nametable;
total INTEGER;
CURSOR c1
IS
SELECT country_id, country_name FROM countries;
BEGIN
OPEN c1;
FETCH c1 BULK COLLECT INTO idtab, nametab;
CLOSE c1;
FOR i IN nametab.FIRST .. nametab.LAST
LOOP
IF (nametab (i)) = 'India' THEN
DBMS_OUTPUT.put_line (UPPER ( (nametab (i))));
ELSIF (nametab (i)) = 'Israel' THEN
DBMS_OUTPUT.put_line (UPPER ( (nametab (i))));
ELSE
DBMS_OUTPUT.PUT_LINE (nametab (i));
END IF;
END LOOP;
END;