본문 바로가기

Study/Oracle

(32)
[oracle] PROCEDURE *commit이 된 것은 rollback 할 수 없다. 그래서 기존 테이블 외에 백업 테이블을 만들어 둔다. *procedure 만들기 pyong_info 의 평형별 금액을 기준으로 각호의 가격을 산정하는 프로시져 작성. 1. 층이 전체 층의 60%이상 85% 이하인 층들의 가격을 20%상승 2. 향이 남향이면 10%상승, 동향이면 5%상승, 북향 -5%, 서향 0% 상승. 3. 파라메터로 apt_code 를 입력받아 해당 아파트만 업데이트 될수 있도록... 4. apt_code 별로 업데이트 하지말고, dong_code 별로 업데이트. CREATE OR REPLACE PROCEDURE SCOTT.chap09 ( l_apt_code number ) IS v_max_floor number(11) defau..
[oracle] FUNCTION, TRIGGER(미완성), UPDATE, TRUNC, GROUP BY *function 만들기 - common table 에서 common name 을 return. schema Brower 에서 우클릭 -> create function 이용하면 됩니다.. Sample source -- start CREATE OR REPLACE FUNCTION SCOTT.get_name ( p_param varchar2) RETURN varchar2 IS v_return varchar2(100) default ''; BEGIN select to_char( sysdate, 'yyyymmdd' ) into v_return from dual; RETURN v_return; EXCEPTION WHEN NO_DATA_FOUND THEN NULL; WHEN OTHERS THEN -- Consider..
[oracle] 비만도 계산 create, insert, update, case when *조건 1. 표준체중계산 (신장cm-100) X 0.9=표준체중, 표준체중에서 -5Kg~ +5Kg 는 정상입니다. 2. 비만도 측정방법 비만도(%) = 현재체중(kg) / 표준체중(kg) *90~110% = 정상 *110~120% = 과체중으로 분류합니다. *120~140% = 비만으로 분류합니다. *140% 이상 = 저체중입니다 create table weight_info ( height number(3, 0), c_weight number(3, 0), s_weight number(3, 0), bimando number(3, 0), bigo varchar2(10) ); insert into weight_info values (160, 50, 0, 0, ''); insert into weight_info..
[oracle] create, alter, update * pyong_info table 생성 후, ho_info 의 area 값에 해당하는 평을 생성하시오.. 중복은 당연히 제거하고, comm_area = 0 , area 값은 ho_info값, price 는 모두 0, ins_date 는 입력일자, pyong_info 데이터는 아마 24, 32 평 2개로 구성될듯.... pyong_code number(3) -- key pyong varchar2(100) -- 23(평) comm_area number(19,2) -- 10.4(m2) area number(19,2) -- 89.9(m2) pyong_price number(19,2) -- 평형별 금액 unit_price number(19,2) -- 평단가 ins_date date -- 입력일자 create ta..
[oracle] update * common table 생성 필드는 comm_gropp_code varchar2(10), comm_code varchar2(10), desc varchar2(100) create table common ( comm_group_code varchar2(10), comm_code varchar2(10), comm_desc varchar2(100) ); * ho_info에 필드 floor 를 추가하고.. 각 필드에 층의 값을 update 하시오.. alter table ho_info add (floor number(2)); update ho_info h set floor = (decode(MOD(h.ho_code,22), 0, 22 , MOD(h.ho_code,22))); * ho_info 에 direct..
[oracle] 필드 추가 및 수정, SUM, UPDATE * 필드 추가 및 수정은 alter table 이용..... * ho_info area 필드를 number(19,2) 로 타입을 바꾸고 값을 24로 update -데이터를 비우고, 필드타입을 수정한다. update ho_info set area=''; alter table ho_info modify area number(19, 2); update ho_info set area=24; * do_info area 필드를 추가하고 각 호의 면적을 sum 해서 update alter table dong_info add (area number(19, 2)); update dong_info d set area= ( select sum(area) from ho_info h where h.dong_code = d.do..
[oracle] 여러가지 데이터 삽입 방법 * 새로운 insert문 형식으로 데이터 삽입. * 숫자 ++.. select ( select max( ho_code ) from ho_info ) + rownum / 1 from ho_info; * delete delete from dong_info where apt_code=2; - apt_info 데이터 삽입(과장님 작업) insert into apt_info select 2, NAME || '2차', ADDR, DONG_COUNT from apt_info; - dong_info 데이터 삽입 insert into dong_info select 2, (select max(dong_code) from dong_info) + rownum / 1, replace(name, '가나', '가나2차'), ho_..
[oracle] 대용량 데이터 삽입 * 엑셀에 데이터를 필드 형태로 해서 파일만들어서 로딩해 보세요. apt_info, dong_info 는 그냥 insert 문으로 넣어 보시고 ho_info는 양이 많으니깐.. 파일로 올리면 편하겠네요. apt 1, dong 3, ho는 동별로 22개 insert into apt_info values(1, '가나', '서울시 중구 충무로2가', 3); insert into dong_info values(1, 101, '가나1동', 22); insert into dong_info values(1, 102, '가나2동', 22); insert into dong_info values(1, 103, '가나3동', 22); - Toad tab[Database] -> Import -> Import Table dat..