尝试通过记录表打印



我正在尝试使用记录表进行打印。 原始表如下所示:

CREATE TABLE dept1
( DEPTNO NUMBER(3) PRIMARY KEY,
DNAME VARCHAR2(20),
LOC VARCHAR2(20)
);
Dept = {(10, 'ACCOUNTING', 'NEW YORK'),
(20, 'RESEARCH', 'DALLAS'),
(30, 'SALES', 'CHICAGO'),
(40, 'OPERATIONS', 'DALLAS'),
(50, 'MARKETING', 'BOSTON')}

我认为我正在使用此代码执行的操作是创建一个过程print_deptlist该过程,该过程将打印我创建的记录部门中的所有记录: 我们需要使用该方法

CREATE OR REPLACE PROCEDURE print_deptlist IS
deptlist dept1%rowtype;
Begin
Select * into deptlist from dept1;
DBMS_OUTPUT.PUT_LINE(DEPTLIST.deptno || ',' || deptlist.dname  || ',' || deptlist.loc);
end;
/

见上文...

我期待看起来列出列名的结果以及以下记录:

你可以使用这样的循环语句

BULK COLLECT 是 SELECT 语句,通过一次读取检索多行,还提高了数据检索的速度

SQL> SET SERVEROUTPUT ON 
SQL> CREATE OR REPLACE PROCEDURE print_deptlist IS
TYPE tab_dept IS TABLE OF dept1%rowtype;
deptlist tab_dept;
BEGIN
SELECT * BULK COLLECT INTO deptlist FROM dept1;
FOR i IN 1..deptlist.count
LOOP
dbms_output.put_line(deptlist(i).deptno || ',' || deptlist(i).dname 
|| ',' || deptlist(i).loc);
END LOOP;
END;
/

演示

最新更新