2013-08-23 2 views
-3

이것은 SQL * PLUS 용SQL * PLUS 연결 문제

5 개의 필드가있는 "Patient"테이블이 있습니다.

Patient  Doctor  Room   Admitted  
"-----------------------------------------------" 
1001 Fred Payne  101  March 31, 2007 

문제는 내가 자신의 별도의 "환자"열뿐만 아니라 에 Pat_name 및 Pat_ID을 연결하고자하는 것입니다 :

CREATE TABLE PATIENT 
(PAT_ID   CHAR (4) PRIMARY KEY, 
PAT_NAME  VARCHAR (7), 
ADMITTED  DATE, 
ROOM   CHAR (3), 
DOCTOR   VARCHAR (7)); 

INSERT INTO PATIENT VALUES 
(1001, 'FRED', '30-MAR-07', 101, 'PAYNE'); 

나는 내 출력은 다음과 같이 할 수있는 뷰를 만들려면에는 다른 세 필드도 연결되어 있습니다 ('대시'에 구분이 없음).

기본적으로 5 개의 필드가 있습니다. 간단히하기 위해 필드를 "1, 2, 3, 4, 5"라고합시다.

나는 모두 함께 결합하고 싶지만 먼저 필드 1과 2를 결합해야합니다.이 작은 열 (필드 1과 2를 결합 함)은 "환자"라고합니다. 그 다음에는 3, 4, 5 필드를 환자 열로 연결하여 5 개의 필드가 모두 연결되지만 단 4 개의 제목 만 연결되도록해야합니다.

+2

내가 더 부적절한 콘텐츠 디자인을 마련하는 투쟁 것 이보다 테이블에요. 아주 이상한 명명 규칙을 따로두고, 나는 테이블 구조에서 적어도 7 개의 결함을 보았다. – symcbean

+0

sqlplus 형식 지정 옵션을 살펴보십시오. [http://docs.oracle.com/cd/B19306_01/server.102/b14357/ch6.htm#i1081534] (http://docs.oracle.com/cd/B19306_01) /server.102/b14357/ch6.htm#i1081534). 머릿글을 끄거나, 원하는대로 제목을 설정하고, 열 형식을 설정할 수 있습니다. – Glenn

+1

학교의 지침에 따라 "귀하의 과제를 수행하기 위해 StackOverflow에서 좋은 사람들을 만나라"고 할 수 있습니까? 생각하지 않았다. 귀하의 다른 스레드는 당신이 스스로 알아 낸 충분한 정보를 제공했습니다. 대신 당신은 중복 된 질문을 게시합니다. V 가난한. – APC

답변

0

표현식을 연결 연산자 인 Oracle ||과 연결할 수 있습니다.

간격을 가져 오려면 RPAD 함수를 사용하여 지정된 길이로 표현식을 채 웁니다. 길이가 길면 지정된 길이로 자릅니다.

COL myline HEADING "Patient  Doctor  Room   Admitted" 

SELECT RPAD(p.PAT_ID,5)||RPAD(p.PAT_NAME,8)||RPAD(p.DOCTOR,13) 
     ||RPAD(p.ROOM,4)||TO_CHAR(p.ADMITTED,'Month dd, yyyy') 
     AS myline 
    FROM patient p 
ORDER BY p.PAT_ID 

당신이 당신의 라인에 표시되는 날짜 값은 실제로 월 이름, 가장 긴 월 이름 '9월'(오라클 공간을 예약에 여분의 공간 (

March  31, 2007 

로 포맷 할 것인가?) . 해당 형식 모델에서


또한 열의 표시 예약 길이, 예를 지정하여 SQL * Plus를 지시문을 추가해야 할 수도 있습니다

,363,210
COL myline FORMAT A48 

이처럼 보이는 뭔가 일할 수있는 경우 :

Patient  Doctor  Room Admitted  
------------ ------------ ------ ------------------ 
1001 Fred Payne  101 March  31, 2007 

그런 다음이 같은 :

COL Patient FORMAT A13 
COL Doctor FORMAT A13 
COL Room  FORMAT A6 
COL Admitted FORMAT A21 

set lines 41 
set feedback off 

SELECT RPAD(p.PAT_ID,5)||RPAD(p.PAT_NAME,8) AS "Patient" 
    , RPAD(p.DOCTOR,13) AS "Doctor" 
    , RPAD(p.ROOM,6) AS "Room" 
    , TO_CHAR(p.ADMITTED,'Month dd, yyyy') AS "Admitted" 
    FROM patient p 
ORDER BY p.PAT_ID