답변 주셨는데, 추가 질문 드려봅니다.
아래의 쿼리를 이용해서 제가 원하는 결과값을 출력해야 하는데, 테이블은 1개만 있습니다.ㅠㅠ
잘 이해가 되지 않아서요...
데이터베이스에 새로운 데이터 입력/ 갱신/ 삭제 이벤트가 발생할때마다 자동적으로 수행되는 사용자 정의 프로시저라고 설명을 들었지만..
V_CNT NUMBER상수로 선언해서 SELECT COUNT(*) INTO V_CNT --> 이부분이 무엇을 말하는지 잘 모르겠습니다.
아래 쿼리를 실행하면 ORA-01400 NULL오류가 나고 있습니다.
1.GOODS_NUM는 primary key의 null을 해제시키라고 하는데.. 방법을 모르겠습니다.
2. GOODS_NUM는 자동으로 번호가 매겨지도록 하고 싶습니다.
즉 입력폼에 모델명/ 이름/용도 등등 입력해서 저장 버튼을 누르면 새로운 내용이면 저장하고 GOODS_NUM에 해당하는 컬럼에 번호가 자동으로 매져지도록 하고 싶은데.... 아래 쿼리는 전혀 다른것 같아서..어디서부터 손봐야 할지...
where 조건에 GOODS_NUM = #GOODS_NUM# -> 이부분이 잘못된걸까요?
DECLARE
V_CNT NUMBER;
BEGIN
SELECT COUNT(*)
INTO V_CNT
FROM MANUAL
WHERE GOODS_NUM= #GOODS_NUM#
IF V_CNT = 0 THEN
INSERT INTO TB_MANUAL(
GOODS_NUM - 번호 -->primary key
,GOODS_KOR - 한글상품명
,GOODS_ENG - 영문상품명
,MODEL - 모델명
,STANDARD - 규격
,GOODS_MANUAL -사용설명서
,DEPT_ID_NUMBER -부서코드
,EMP_NUMBER -사원번호
)VALUES(
#GOODS_NUM#
,#GOODS_KOR#
,#GOODS_ENG#
,#MODEL#
,#STANDARD#
,#GOODS_MANUAL#
,#DEPT_ID_NUMBER#
,#EMP_NUMBER#
);
ELSE
UPDATE TB_PRRODUCT_MANUAL
SET GOODS_NUM = #GOODS_NUM#
,GOODS_KOR = #GOODS_KOR#
,GOODS_ENG = #GOODS_ENG#
,MODEL = #MODEL#
,STANDARD = #STANDARD#
,GOODS_MANUAL = #USE#
,DEPT_ID_NUMBER = #DEPT_ID_NUMBER#
,EMP_NUMBER = #EMP_NUMBER#
WHERE PERSON-NUM = #PERSON-NUM#;
END IF;
END;