2017-02-19 6 views
1

このような特定の表empのレポートを作成しようとしています。1行の異なる行にあるすべての列SQLレポート

************************************************************ 
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

あなただけのいくつかのプレゼンテーション層(例えばテキストエディタ)で、この形式のデータが必要な場合、あなたは、単に一緒に連結列を選択することができ、改行で区切ら:

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; 
+0

しかし、上記のSQL文を使用して、 、それは私に望ましい出力を提供しません。すべての列と1つのレコードを1行に表示し、すべての列を再帰的に表示します。 – TrueDroider

+0

@TrueDroiderその出力をコピーしてエディタに貼り付けることができますか?たとえばNotepad ++?それがうまくいけば、正しくフォーマットされたように見えるはずです。そうでなければ、select文で改行を得る方法を見つける必要があります。 –

+0

SALARY:800 $ ER:7369 EMPLOYEE NAME:SMITH クエリは次のように、ノートパッドでも表示されます。++ – TrueDroider

関連する問題