게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
ORACLE 프로시저에서 INSERT 사용해도 삽입이 안되요
게시물ID : programmer_14847짧은주소 복사하기
작성자 : 익명AnOnY
추천 : 0
조회수 : 606회
댓글수 : 3개
등록시간 : 2015/12/07 23:34:23
옵션
  • 본인삭제금지
학교 데이터베이스 과제로 은행 시스템을 구현해보는 것을 하고 있습니다.

입금을 할 때, 해당 계좌 마지막 거래에서 (거래 번호는 시퀀스로 생성했고, 시간적인 순서와 일치한다고 가정) 잔액을 가져온 후

입금 금액과 마지막 거래 잔액을 더하여, 잔액을 계산하는 프로시저를 작성했습니다.

create or replace 
PROCEDURE DEPOSIT(
  accnum in number,        //계좌번호
  money in number,         //입금액
  br in number,              //거래 지점
  memo in varchar2        //메모
)
IS
  maxid number;
  acc number;
BEGIN                                             //해당 계좌에서 마지막 거래 번호를 가져옴
  SELECT max(ID) into maxid
  FROM BANK_ACCOUNT
  WHERE ACCOUNT_NUMBER = accnum
  GROUP BY ACCOUNT_NUMBER;
  
  SELECT ACCUMULATE into acc             //마지막 거래 번호에 저장된 잔액을 가져옴
  FROM BANK_ACCOUNT 
  WHERE ID = maxid AND ACCOUNT_NUMBER = accnum;
  
  EXCEPTION
  WHEN NO_DATA_FOUND THEN             //위에서 발견된 데이터가 없으면
  INSERT INTO BANK_ACCOUNT             //은행 거래 테이블에 잔액과 입금액에 입금액으로 저장
  (
  ACCOUNT_NUMBER,
  MONEY,
  BRANCH_ID,
  ACCOUNT_TYPE,
  BALANCE,
  NOTE
  )
  VALUES(
  accnum,
  money,
  br,
  0,
  money,
  memo
  );
  COMMIT;
  WHEN OTHERS THEN                       
  INSERT INTO BANK_ACCOUNT 
  (
  ACCOUNT_NUMBER,
  MONEY,
  BRANCH_ID,
  ACCOUNT_TYPE,
  BALANCE,
  NOTE
  )
  VALUES(
  accnum,
  money,
  br,
  0,
  acc + money, //마지막 거래 잔액과 입금액을 더하여 잔액에 저장
  memo
  );
  COMMIT;
END;

PHP서버와 연동해서 오라클에 접근하고 있습니다.

SQL Developer 프로그램이나 SQL PLUS로 쓰거나 서버를 이용해서 호출을 해봤는데

세 가지 방법 모두 될 때도 있고, 안될 때도 있네요.

뭐가 문제인지 도저히 모르겠습니다.
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호