完整DECLARE
TYPE dept_table_type IS TABLE OF
dept%ROWTYPE INDEX BY BINARY_INTEGER;
my_dname_table dept_table_type;
v_count number(2) :=4;
BEGIN
FOR int IN 1 .. v_count LOOP
SELECT * INTO my_dname_table(int) FROM dept WHERE deptno=int*10;
END LOOP;
FOR int IN my_dname_table.FIRST .. my_dname_table.LAST LOOP
DBMS_OUTPUT.PUT_LINE('Department number: '||my_dname_table(int).deptno);
DBMS_OUTPUT.PUT_LINE('Department name: '|| my_dname_table(int).dname);
END LOOP;
END;
不明白 TYPE dept_table_type IS TABLE OF
dept%ROWTYPE INDEX BY BINARY_INTEGER;
my_dname_table dept_table_type;和 SELECT * INTO my_dname_table(int) FROM dept WHERE deptno=int*10;
上面的定义、声明和下面的my_dname_table(int)不懂,这个括号int有什么关系?
那位懂的前辈说给我听一下,谢谢!
TYPE dept_table_type IS TABLE OF
dept%ROWTYPE INDEX BY BINARY_INTEGER;
my_dname_table dept_table_type;
v_count number(2) :=4;
BEGIN
FOR int IN 1 .. v_count LOOP
SELECT * INTO my_dname_table(int) FROM dept WHERE deptno=int*10;
END LOOP;
FOR int IN my_dname_table.FIRST .. my_dname_table.LAST LOOP
DBMS_OUTPUT.PUT_LINE('Department number: '||my_dname_table(int).deptno);
DBMS_OUTPUT.PUT_LINE('Department name: '|| my_dname_table(int).dname);
END LOOP;
END;
不明白 TYPE dept_table_type IS TABLE OF
dept%ROWTYPE INDEX BY BINARY_INTEGER;
my_dname_table dept_table_type;和 SELECT * INTO my_dname_table(int) FROM dept WHERE deptno=int*10;
上面的定义、声明和下面的my_dname_table(int)不懂,这个括号int有什么关系?
那位懂的前辈说给我听一下,谢谢!
dept%ROWTYPE INDEX BY BINARY_INTEGER;
--这里声明表对象dept_table_type ,相当于二维数组,这个对象的类型与dept表的行记录类型是一样的my_dname_table dept_table_type;
--这里差不多就是定义表对象的一个实例吧SELECT * INTO my_dname_table(int) FROM dept WHERE deptno=int*10;
--这是从dept表中取出deptno等于int*10的一条记录,赋值给my_dname_table(int),这里的int是个变量,建议变量名称不要与数据类型int同名!!!