Kori 8월 21일, 2022에 포스트됨 공유하기 8월 21일, 2022에 포스트됨 Docwiki에 있는 "Using Generators"를 번역한 글(최종 번역일: 2022년 8월 21일) << 위로 가기: 제너레이터(Generator)를 가지고 작업하기 CREATE GENERATOR 진술을 사용하여 제너레이터(generator)를 만들고 나면, 만들어진 제너레이터가 해당 데이터베이스 안에 존재하지만 아직은 실제로 숫자를 만들어내지는 않은 상태이다. 이 숫자 생성기 즉 제너레이터(generator)를 불러내려면 인터베이스의 GEN_ID() 함수를 호출해야 한다. GEN_ID() 함수에는 파라미터 두개 즉 호출할 제너레이터의 이름 (이것은 이미 해당 데이터베이스 안에 정의되어 있는 것이어야 한다)과 <증가폭(step)> 값을 받는다. 증가폭 값은 얼마나 차이를 두고 다음 값이 생성되는 지를 지정하는 값인데, 만약 음수로 지정되면 그만큼 작아진 값이 생성된다. GEN_ID() 는 트리거(trigger), 스토어드 프로시저(stored procedure) 안에서 호출될 수도 있고 애플리케이션 안에서 INSERT, UPDATE, DELETE 동작을 발생시킬 때 호출될 수도 있다. 애플리케이션에서 SELECT 진술 만에서 GEN_ID() 를 사용하여 제너레이트에서 값을 받아와서 그 값을 INSERT 진술 안에 넣어서 사용할 수도 있다. GEN_ID()의 문장 구조는 다음과 같다. GEN_ID(제너레이터 이름, 증가폭); 숫자를 생성하려면 아래 단계를 따라 진행하면 된다. 제너레이터를 생성한다. 트리거(trigger) 또는 스토어드 프로시저(stored procedure) 또는 애플리케이션 안에서 해당 제너레이터를 지정하여 GEN_ID() 를 호출하도록 한다. 해당 제너레이터가 값을 반환하는 시점은 트리거가 발효될 때 또는 스토어드 프로시저 또는 애플리케이션이 실행될 때이다. 생성된 숫자 값을 실제로 사용할 것인지 아닌 지는 해당 트리거, 스토어드 프로시저, 애플리케이션에서 결정한다. 예를 들어, 트리거에서 컬럼에 해당 값을 넣을 수 있다. 생성된 숫자를 데이터베이스 컬럼 안에 넣기를 멈추려면, 해당 트리거, 스토어드 프로시저, 애플리케이션를 삭제하거나 또는 더 이상 GEN_ID() 를 불러내지 않도록 변경()한다. 중요: 제너레이터에서 반환하는 숫자는 64-비트 값이다. 생성된 값을 ISC_INT64 변수로 담을 수 있는 컬럼을 정의해야 하는데 DECIMAL 또는 NUMERIC 데이터 타입을 사용해야 한다. 예: 아래 진술은 GEN_ID() 를 사용하여 이름이 G인 제너레이터를 호출하여 SALES 테이블 안에 있는 주문 번호를 1씩 증가한다. INSERT INTO SALES (PO_NUMBER) VALUES (GEN_ID(G,1)); 트리거에서 제너레이터를 사용하는 방법에 대한 자세한 내용은 Working with Triggers 에 있다. 스토어드 프로시저에서 제너레이터를 사용하는 방법에 대한 자세한 내용은 Working with Stored Procedures 에 있다. 다음 단계 (Advance To) 제너레이터 제거하기 (Dropping Generators) 인용하기 이 댓글 링크 다른 사이트에 공유하기 더 많은 공유 선택 사항
Recommended Posts
이 토의에 참여하세요
지금 바로 의견을 남길 수 있습니다. 그리고 나서 가입해도 됩니다. 이미 회원이라면, 지금 로그인하고 본인 계정으로 의견을 남기세요.