2014-10-21 4 views
-2

TASK : 레코드를 정의하는 PL/SQL 테이블을 정의하십시오. Record 구조는 Subject talbe에서와 같이 동일해야합니다. 결과 및 증분 인덱스를 사용하여 1에서 시작하여 새 테이블의 5 개 요소를 시작합니다. 모든 레코드에 값을 입력합니다. 입력 된 데이터를 인쇄 (출력)하여 읽을 수있는 방식으로 설명합니다.테이블 시작 및 dbms_output.put_line

주제 테이블 구조이다

ID 번호 (3) // 기본 키

Subj_name VARCHAR2 (40)

설명 VARCHAR2 (200)

이 내 시도이다 :

SET serveroutput on; 
CREATE TABLE Subject 
(
    IdSubj NUMBER(3), 
    SubjName VARCHAR2(40), 
    Descr VARCHAR2(500) 
); 
BEGIN 
For i IN 1..5 LOOP 
INSERT INTO Subject(IdSubj, SubjName, Descr) 
VALUES(i, 'Subject number: ' || TO_CHAR(i), 'Description of subject '); 
dbms_output.put_line('Id subj: ' || i || ', Subject:' || ', Descr: '); 
END LOOP; 
END; 

질문 : '제목 번호 :'

1) 내가 올바른 방법 (에 SubjName 기록을 시작 했 || TO_CHAR (i))?

2) 두 번째 값과 세 번째 값을 출력하는 방법은 무엇입니까?

답변

1

"출력 2, 3 값"으로 당신은 당신이 같이 변수에서 삽입 된 값과 다음 출력 값을 저장하기 위해 RETURNING 절을 사용할 수있는 SUBJNAME 및 DESCR 컬럼에 삽입 된 값을 의미하는 경우

DECLARE 
    strSubjname SUBJECT.SUBJNAME%TYPE; 
    strDescr  SUBJECT.DESCR%TYPE; 
BEGIN 
    For i IN 1..5 LOOP 
    INSERT INTO SUBJECT(IdSubj, SubjName, Descr) 
     VALUES(i, 'Subject number: ' || TO_CHAR(i), 'Description of subject ') 
     RETURNING SUBJNAME, DESCR INTO strSubjname, strDescr; 

    dbms_output.put_line('Id subj: ' || i || 
         ', Subject:' || strSubjname || 
         ', Descr: ' || strDescr); 
    END LOOP; 
END; 

공유하고 즐기십시오.