본문 바로가기

오라클

(7)
오라클 PLS-00183 Too many bind variables 해결방법 오라클 PL/SQL 에러 - PLS-00183 발생 운영 중인 배치 프로그램에 다른 데이터베이스에서 데이터를 가져와 업데이트하는 이런 쿼리가 있었습니다. 일배치로 실행되며 등록/수정/삭제된 데이터를 PL/SQL BEGIN ~ END 사이에서 insert, update, delete문으로 만드는 동적 쿼리가 MyBatis로 작성되어 있었습니다. BEGIN UPDATE MY_TABLE SET COL1 = #{item.col1} , COL2 = #{item.col2} , COL3 = #{item.col3} , COL4 = #{item.col4} , COL5 = #{item.col5} -- .... 이런식으로 13개 WHERE COND1 = #{item.cond1} AND COND2 = #{item.cond2}..
IntelliJ에서 빈 줄이 들어가면 쿼리 인식이 안되는 경우(Feat. 오라클 dialect) IntelliJ를 4년째 사용해오고 있습니다. 그런데 언제부터인가 데이터베이스 콘솔에서 개행문자가 2번 이상 있는 경우에 쿼리 실행이 안되는 현상이 생겼습니다. -- 잘된다 select sysdate from dual; -- 빈 줄이 들어가면 쿼리 인식이 안된다 select sysdate from dual; 그래서 설정을 찾아보고 온갖 검색을 해봐도 못 찾아내다가, 우연히 해결방법을 발견하게 되어 기록해둡니다. 오류 증상 IntelliJ Database Console에서 빈 줄이 들어간 쿼리가 실행 안됨. 참고로 오라클 해결 방법 경고가 발생하는 곳에 마우스를 올리면 다음과 같은 dialog가 나타나는데요, "Change SQL dialect"를 선택합니다. Oracle을 선택합니다. Change Dia..
[데이터베이스/오라클] 대량 insert 속도 개선 요즘 푸시 발송 속도 개선을 하고 있는데, FCM 발송 후 결과 저장이나 잘못된 토큰 삭제 처리에서 병목이 생기는 것을 확인하였다. 그래서 사용자의 푸시 '알림함'에 대량 insert 하는 부분을 개선하고자 오라클 다중 insert 속도를 개선하는 방법을 찾아보았다. ### 기존 INSERT INTO SOME_TABLE (col1, col2 ..) VALUES (#{val1}, #{val2} ..); ### 1차 수정 하나의 commit으로 처리될 수 있도록 묶었다. (참고로 spring + mybatis 사용하여 처리 중) 로컬 디비로 1000건 insert 테스트 시 26초가 나왔다. BEGIN INSERT INTO SOME_TABLE (col1, col2 ..) VALUES (#{val1}, #{v..
[데이터베이스] FK 쓸까, 말까? 오늘 외래키를 삭제한 이유 완성된 프로그램 솔루션을 납품하는 일은 언제나 커스터마이징과의 싸움입니다. 이 부분을 얼마나 줄일수 있냐에 따라 수익성이 달려 있다고 해도 과언이 아닙니다. 아무것도 없는 허허벌판에 공사를 하는 것은 오히려 쉬울 수 있습니다. 하지만 이미 복잡한 시스템과 체계를 갖추어 놓은 고객사에 납품을 할 때는 생각보다 많은 난관에 봉착하게 됩니다. 오늘은 고객사에서 오라클 데이터베이스의 외래키(FK, Foreign Key)를 삭제해달라는 요구를 받아 검토를 해보았습니다. 이유는 마이그레이션 이유인데요, 외래키를 써야하는 경우와 쓸 수 없는 경우에 대해 정리해보았습니다. 관계형 데이터베이스에서 외래키를 쓰는 & 쓰지 않는 경우 데이터베이스에서 외래키(Foreign Key)는 다른 테이블의 기본키(Primary Key..
오라클 ORA-20000 에서 ORA-20999 까지 오류 오늘 연계 시스템의 프로시저를 호출했다가 ORA-20510 오류를 만났습니다. 낯선 번호대의 오류라 검색을 해보니 검색 결과가 나오지 않습니다. 알고보니 Oracle의 사용자 정의 오류코드 번호대였네요. ORA-20000부터 20999까지, 2만번대 오류는 사용자 정의 오류입니다. 따라서 오류를 발생시키는 시스템 담당자에게 문의하시면 됩니다.
오라클 유저(스키마) 생성 시 ORA-00988 ORA-00988 비밀번호가 틀립니다 오라클 유저 생성 중 오류가 발생했다. CREATE USER NEWUSER IDENTIFIED BY 'newpasswd!'; 발생 오류: ORA-00988 비밀번호가 틀립니다 새 유저인데 뭔 비밀번호가 틀려?? 알고 보니 패스워드에 쌍따옴표가 아닌 홑따옴표를 사용하여 발생한 오류였다. 따옴표를 바꿔주니 잘된다. 해결 CREATE USER NEWUSER IDENTIFIED BY "newpasswd!";
[오라클] the account is locked 문제 로컬 서버가 안 올라가서 보니 the account is locked이 뜬다. 당연히 DB 툴에서도 접속이 안된다. 해결 SELECT * FROM dba_users WHERE username = 'MYUSERNAME'; lock 된 사용자를 볼 수 있다. ALTER USER MYUSERNAME ACCOUNT UNLOCK; 잠금을 해제한다. 원인 알고보니 사용자 계정을 만들 때 비밀번호를 대문자로 만들고 애플리케이션 프로퍼티에는 소문자로 썼다. 앗! 나의 시이이일^수~