2012-01-05 2 views
-2

시퀀스를 사용하여 데이터베이스에서 최소 30 개의 행으로 새로 생성 된 테이블을 많이 채워야합니다. 구문을 게시하십시오.선언 된 시퀀스를 사용하여 Pl/SQL에 테이블 채우기

루프를 사용해야합니까?

모든 제안과 해결책을 환영합니다.

이 문제를 해결할 때 많은 도움을 받았습니다.

세 개의 시퀀스를 만들고 30 개의 행으로 3 개의 열에 값을 추가했습니다. id의 경우 tel_noemp_id은 3 개의 시퀀스를 만들고 30 개의 행을 추가해도 괜찮습니다. 한 열이 name과 같은 varchar2 인 경우 어떻게됩니까? 순간 3 시퀀스는 3 개의 열에 값을 채우지 만 '이름 열'에는 null을 추가합니다. 30 개의 이름을 추가하고이를 해결하는 방법에 대해 도움을주십시오. 나는이 문제에 익숙하지 않아 매우 유감스럽게 생각합니다. 명확히하기를 주저하지 마십시오. 많은 시간을 내 주셔서 감사합니다.

요약하면 : 모든 행의 숫자에 대한 시퀀스를 생성하고 이름을 묻는 메시지 만 표시합니다.

+1

당신은 많이 썼지 만 많이 알려주지 않았습니다. 테이블은 어떻게 생겼지? 몇 개의 항목을 채울 필요가 있습니까? 모든 테이블에 대해 동일한 순서 또는 각 테이블마다 자체 시퀀스가 ​​있습니까? "최소 30 행"이 매개 변수화를 원한다는 의미입니까? 코드에 테이블 이름을 어떻게 전달합니까? 여기에있는 사람들은 너무 기꺼이 도울 수 있지만 우리에게 충분한 정보를 제공해야합니다. 우리가 당신을 도울 수 있도록 도와주세요. – APC

답변

0

나는 당신이 원하는에 약간의 추측,하지만 어떻게 해요 대해 :

create table test 
(id number); 

create sequence seq_test 
start with 1 
maxvalue 999999999999999999999999999 
minvalue 1 
nocycle 
nocache 
noorder; 

insert into test(id) 
select seq_test.nextval from dual 
connect by level <= 30; 

commit; 
+0

귀하의 회신에 많은 감사드립니다. 제대로 설명하지 못해 사과드립니다. –

+0

답변 해 주셔서 감사합니다. 나는 그것을 올바르게 설명하지 못해 사과드립니다 .1) 저는 varchar2, number, integer (부서, 종교, 주소 등)로 보통의 빈칸 20 개의 테이블을 만들었습니다. 2) 네, 나는 테이블 당 30 개의 행만 추가하면됩니다 .3) 모든 테이블에는 10 개의 열이 있습니다. 이게 도움이 되길 바란다. @tbone –

+0

감사합니다. 작동 중입니다. 또한 test (id, tel_no, emp_id)와 같은 단일 시퀀스 문으로 테이블의 여러 열에 데이터를 추가 할 수 있습니다. 위의 쿼리는 test (id)에 대한 것입니다. –

0

당신은 당신이 스크립트를 실행 어디로 가는지 언급하지 않은 -이 * SQL에 있다면 플러스 당신은 할 수 대체 변수를 사용하십시오

BEGIN 
    FOR i IN 1..COUNT LOOP 
     INSERT INTO emp 
        (id, 
        tel_no, 
        emp_id, 
        NAME) 
     VALUES  (id_seq.next_val, 
        tel_no_seq.nextval, 
        emp_id_seq.nextval, 
        &name); 
    END LOOP; 
END;