这一句有问题
FOR j IN 1..i
LOOP
DBMS_OUTPUT.PUT(vemp(j).empno||' '||vemp(j).ename||' '||vemp(j).sal);
END LOOP; 改成
FOR j IN 1..i
LOOP
DBMS_OUTPUT.PUT_LINE(vemp(j).empno||' '||vemp(j).ename||' '||vemp(j).sal);
END LOOP; 运行如下:
SQL> SET SERVEROUTPUT ON
SQL> declare
2 type demp is record
3 (
4 empno emp.empno%type,
5 ename emp.ename%type,
6 sal emp.sal%type
7 );
8 i BINARY_INTEGER:=1;
9 type emp_tab is table of demp index by binary_integer;
10 vemp emp_tab;
11 cursor cl is select empno,ename,sal from emp;
12 begin
13 for x in cl loop
14 vemp(i).empno:=x.empno;
15 vemp(i).ename:=x.ename;
16 vemp(i).sal:=x.sal;
17 i:=i+1;
18 end loop;
19 DBMS_OUTPUT.PUT_LINE('插入记录:');
20 vemp(i).empno:=9999;
21 vemp(i).ename:='TOM';
22 vemp(i).sal:=1111;
23 FOR j IN 1..i LOOP
24 DBMS_OUTPUT.PUT_LINE(vemp(j).empno||' '||vemp(j).ename||' '||vemp(j
l);
25 END LOOP;
26 DBMS_OUTPUT.PUT_LINE('删除第5、6条记录:');
27 for j in 5..i-2 loop
28 vemp(j).empno:=vemp(j+2).empno;
29 vemp(j).ename:=vemp(j+2).ename;
30 vemp(j).sal:=vemp(j+2).sal;
31 end loop;
32 for x in reverse i-2..i loop
33 vemp(x).empno:=null;
34 vemp(x).ename:=null;
35 vemp(x).sal:=null;
36 end loop;
37 FOR j IN 1..i-2 LOOP
38 DBMS_OUTPUT.PUT(vemp(j).empno||' '||vemp(j).ename||' '||vemp(j).sal
39 END LOOP;
40 end;
41 /
插入记录:
7369 SMITH 800
7499 ALLEN 1600
7521 WARD 1250
7566 JONES 2975
7654 MARTIN 1250
7698 BLAKE 2850
7782 CLARK 2450
7788 SCOTT 3000
7839 KING 5000
7844 TURNER 1500
7876 ADAMS 1100
7900 JAMES 950
7902 FORD 3000
7934 MILLER 1300
1000
1002 test 1000
1003 test 1000
9999 TOM 1111
删除第5、6条记录:PL/SQL procedure successfully completed.SQL>
FOR j IN 1..i
LOOP
DBMS_OUTPUT.PUT(vemp(j).empno||' '||vemp(j).ename||' '||vemp(j).sal);
END LOOP; 改成
FOR j IN 1..i
LOOP
DBMS_OUTPUT.PUT_LINE(vemp(j).empno||' '||vemp(j).ename||' '||vemp(j).sal);
END LOOP; 运行如下:
SQL> SET SERVEROUTPUT ON
SQL> declare
2 type demp is record
3 (
4 empno emp.empno%type,
5 ename emp.ename%type,
6 sal emp.sal%type
7 );
8 i BINARY_INTEGER:=1;
9 type emp_tab is table of demp index by binary_integer;
10 vemp emp_tab;
11 cursor cl is select empno,ename,sal from emp;
12 begin
13 for x in cl loop
14 vemp(i).empno:=x.empno;
15 vemp(i).ename:=x.ename;
16 vemp(i).sal:=x.sal;
17 i:=i+1;
18 end loop;
19 DBMS_OUTPUT.PUT_LINE('插入记录:');
20 vemp(i).empno:=9999;
21 vemp(i).ename:='TOM';
22 vemp(i).sal:=1111;
23 FOR j IN 1..i LOOP
24 DBMS_OUTPUT.PUT_LINE(vemp(j).empno||' '||vemp(j).ename||' '||vemp(j
l);
25 END LOOP;
26 DBMS_OUTPUT.PUT_LINE('删除第5、6条记录:');
27 for j in 5..i-2 loop
28 vemp(j).empno:=vemp(j+2).empno;
29 vemp(j).ename:=vemp(j+2).ename;
30 vemp(j).sal:=vemp(j+2).sal;
31 end loop;
32 for x in reverse i-2..i loop
33 vemp(x).empno:=null;
34 vemp(x).ename:=null;
35 vemp(x).sal:=null;
36 end loop;
37 FOR j IN 1..i-2 LOOP
38 DBMS_OUTPUT.PUT(vemp(j).empno||' '||vemp(j).ename||' '||vemp(j).sal
39 END LOOP;
40 end;
41 /
插入记录:
7369 SMITH 800
7499 ALLEN 1600
7521 WARD 1250
7566 JONES 2975
7654 MARTIN 1250
7698 BLAKE 2850
7782 CLARK 2450
7788 SCOTT 3000
7839 KING 5000
7844 TURNER 1500
7876 ADAMS 1100
7900 JAMES 950
7902 FORD 3000
7934 MILLER 1300
1000
1002 test 1000
1003 test 1000
9999 TOM 1111
删除第5、6条记录:PL/SQL procedure successfully completed.SQL>
解决方案 »
- oracle连接查询的小问题~! 求帮忙
- 关于job的问题
- 一个程序同时连接两个数据库,把一个oracle数据库中的数据复制到另一个access数据库中,请高人指教!!!
- 那位大虾能传一个oracle fail safe给我?谢谢
- 十万火急!!!请问这个sql怎么写?
- 我在oracle9i的Enterprise Manager console中怎么不能用备份,导出、导入等工具?
- developer总怎么样是实现按一个回车就触发!!!
- linux上的Oracle817错误ORA-12545
- 怎样使临时表空间使用的数据文件自动缩小?
- 在oracle存储过程中出现:PLS-00103:出现符号“DELETE”在需要下列之一时
- Oracle安装,配置工具步骤无响应!
- 关于ORACLE的条件判断问题
TYPE emprec IS RECORD
(
EMPNO emp.empno%TYPE,
ENAME emp.ename%TYPE,
SAL emp.sal%TYPE
);
i BINARY_INTEGER:=1;
TYPE emp_tab IS TABLE OF EMPREC INDEX BY binary_integer;
vemp EMP_TAB;
CURSOR c1 IS SELECT empno,ename,sal from emp;
BEGIN
FOR x IN c1
LOOP
vemp(i).empno:=x.empno;
vemp(i).ename:=x.ename;
vemp(i).sal:=x.sal;
i:=i+1;
END LOOP;
DBMS_OUTPUT.PUT_LINE('插入记录:');
vemp(i).empno:=1000;
vemp(i).ename:='Goldens';
vemp(i).sal:=8888;
END;
/
这又错在哪里