일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 단축키
- 에러
- visualstudio code
- github clone
- 데이터베이스
- import data
- MySQL
- github token
- 파이썬
- clone
- DataGrip
- OrCAD 다운로드
- console창
- 따옴표 삭제
- 클론
- php
- Visual Studio Code
- localhost
- csv
- 오류
- database
- PHPStorm
- jupyter
- run sql script
- 깃 토큰
- Python
- error 해결
- vscode
- error
- cmd
Archives
- Today
- Total
개발 노트
8/19 정규화, KK 영업매출현황 TABLE 생성, KK_COLLECTION_PKG 제작(1) 본문
프로젝트 기반 JAVA 응용 SW개발 : 22.07.19~23.01.20/Oracle SQL
8/19 정규화, KK 영업매출현황 TABLE 생성, KK_COLLECTION_PKG 제작(1)
hayoung.dev 2022. 8. 19. 18:42정규화 문제
문제 1.
문제 2.
제품번호 -> 제품명
제품번호 -> 재고 수량
주문번호 -> 수출여부
주문번호 -> 고객번호
주문번호 -> 사업자번호
고객번호 -> 사업자번호
고객번호 -> 우선순위
제품 번호 || 주문번호 -> 주문수량 (제품번호와 주문번호가 pk이므로 제품 번호, 주문번호 -> 주문수량 이 될 확률이 높다.)
문제3.
KK 영업매출현황 TABLE 생성
-> scott3 계정에서
Create Table-Package 실습용 자료 생성.sql
코드 전부 붙여넣기
[이번부터 전부 scott3에서 실습]
--원래 INSERT문은
INSERT INTO 테이블명(칼럼명) VALUES 넣을 값
--인데 서브쿼리를 사용하면 VALUES를 쓰지 않고
INSERT INTO 테이블명(칼럼명) SELECT문;
-- PACKAGE 선언부(Header) (Interface)
CREATE OR REPLACE PACKAGE KK_COLLECTION_PKG AS
--행동강령
-- 1. 당월기초 입고 수량을 생성한다.
PROCEDURE KK_COLLECTION_PRC1(p_sum_yymm IN VARCHAR2);
--2. 일자별 거래처 제품별 판매현황(SMCP10)정보를 생성 PGM
PROCEDURE KK_COLLECTION_PRC2(p_sum_yymm IN VARCHAR2);
END KK_COLLECTION_PKG;
CREATE OR REPLACE PACKAGE BODY KK_COLLECTION_PKG AS
/**************************************************************************************
Procedure Name : KK_COLLECTION_PRC1
Description : 당월기초 입고 수량을 생성한다.
*************************************************************************************/
PROCEDURE KK_COLLECTION_PRC1(p_sum_yymm in VARCHAR2)
IS
BEGIN
DBMS_OUTPUT.ENABLE;
DBMS_OUTPUT.PUT_LINE('KK_COLLECTION_PRC1 p_sum_yymm=> ' || p_sum_yymm);
-- 1) 당월 기초 입고 수량을 생성한다.
-- 전 월 말(기말)의 재고를 이번 달 초(기초)의 재고로 가져온다.
INSERT INTO mmsum30
( sum_yymm
, item_code
, item_gubn --0이면 기초, 1이면 기말 재고를 뜻함.
, stck_qty
, sawonID
, RegiDate
)
( SELECT p_sum_yymm
, item_code
, '0' -- 기초
, stck_qty
, SawonID
, SYSDATE
FROM mmsum30
-- yyyymm(년월) string을 to_date로 하면 date형식으로 바뀐 후 일은 1일로 잡아준다. (*데이터 컨버팅)
--그리고 ADD_MONTHS로 월에 1을 빼준다.
--그리고 sum_yymm 형식이 varchar이기 때문에 다시 varchar 형식으로 바꾼다.
-- *mmsum30테이블의 sum_yymm칼럼은 데이터는 날짜이지만 형식은 varchar이다.
-- 그 이유는 sum_yymm이 pk인데,
-- pk를 날짜형식으로 지정하게 되면 데이터에 시간데이터까지 들어가서 문제가 생길 수 있기 때문이다.
WHERE sum_yymm = TO_CHAR(ADD_MONTHS ( TO_DATE(p_sum_yymm, 'YYYYMM'), -1), 'YYYYMM')
AND item_gubn = '1' --기말
);
END KK_COLLECTION_PRC1;
END KK_COLLECTION_PKG;
실행 결과 : mmsum30 테이블에 데이터 추가됨
반응형
'프로젝트 기반 JAVA 응용 SW개발 : 22.07.19~23.01.20 > Oracle SQL' 카테고리의 다른 글
8/22 KK 영업매출현황 패키지(KK_COLLECTION_PKG) 제작 (0) | 2022.08.22 |
---|---|
8/18 Package, 데이터 모델링, ER모델, CRUD matrix, 정규화, 삭제이상 (0) | 2022.08.18 |
8/17 데이터베이스 보안, 권한, 롤, WITH GRANT OPTION, REVOKE, 동의어, Trigger (0) | 2022.08.18 |
8/16 PL/SQL, Function, Procedure, Cursor, Exception (0) | 2022.08.17 |
8/12 Oracle Backup 하는 법 (0) | 2022.08.17 |