我正在尝试为特定的表格制作一个类似于此的报告。
************************************************************
EMPLOYEE NUMBER : 1010
EMPLOYEE NAME : SARAH
JOB : DESIGNER
SALARY : 10000$
*************************************************************
EMPLOYEE NUMBER : 1011
EMPLOYEE NAME : HANNAH
JOB : DECORATOR
SALARY : 20000$
*************************************************************
但我不知道如何在不同的行上获取每个列名。
sql > break column on empname skip page
上面的代码就是这样的。
EMPNO ENAME JOB SAL
---------- ---------- --------- ----------
7839 KING PRESIDENT 5000
EMPNO ENAME JOB SAL
---------- ---------- --------- ----------
7840 QUEEN PRESIDENT 4000
请建议它的代码是什么? TIA。
答案 0 :(得分:0)
如果您只想在某个表示层(例如文本编辑器)中使用此格式的数据,您只需选择连接在一起的列,用换行符分隔:
DECLARE
CURSOR cur IS
SELECT empno, ename, job, sal FROM yourTable;
v_empno yourTable.empno%INT;
v_ename yourTable.ename%VARCHAR2(100);
v_job yourTable.job%VARCHAR2(100);
v_sal yourTable.sal%NUMBER(10,4);
BEGIN
OPEN cur;
LOOP
FETCH cur INTO v_empno, v_ename, v_job, v_sal
EXIT WHEN cur%NOTFOUND;
dbms_output.put_line('EMPLOYEE NUMBER : ' || v_empno || CHR(13) || 'EMPLOYEE NAME : '
|| v_ename || CHR(13) || 'JOB : ' || v_job || CHR(13) || 'SALARY : ' ||
v_sal || '$' || CHR(13));
END LOOP;
CLOSE cur;
END;