반응형 프로그래밍/3. ORACLE13 프로그램에서 오라클프로시저 호출할때 ORA-06502 오류가 발생할 경우 C#에서 오라클 프로시저를 호출하는데 ORA-06502: PL/SQL: numeric or value error: character string buffer too small 오류가 발생했다. 일반적으로 ORA-06502 오류는 변수의 사이즈보다 큰 값을 할당했을때 발생하는 오류로 해당 변수의 크기를 늘려주면 해결된다. VARCHAR2(20) -> VARCHAR2(40)으로 바꾸면 해결되는데 이번에는 SQLPLUS 에서 해당 프로시저를 호출했을때는 아무 문제가 없었고, 구글 검색을 해봐도 앞서 말한것처럼 변수의 크기를 늘려야한다는 말이 전부였다. 어떤 문제인지 감이 안와서 이리저리 테스해보다가 혹시나 하는 마음에 다른부분을 전부 주석처리하고 리턴값에 강제로 값을 할당했는데도 동일한 문제가 발생했다. 아무.. 프로그래밍/3. ORACLE 2018. 7. 23. ORACLE 특정날짜가 당월에 몇 주 차인지 나타내는 쿼리 주 52시간 제도 때문에 프로그램 수정하다가 남겨놔야 될 듯하여 포스팅함. ORACLE에서 특정 날짜가 당월에 몇 주 차인지 나타내는 쿼리 SELECT TO_CHAR(TO_DATE('20180629','YYYYMMDD'),'W') FROM DUAL; 결과값 5 SELECT TO_CHAR(TO_DATE('20180618','YYYYMMDD'),'W') FROM DUAL;결과값 3 프로그래밍/3. ORACLE 2018. 6. 29. ORACLE ORA-01850: hour must be between 0 and 23 ORA-01850: hour must be between 0 and 23 TO_DATE(날짜,'YYYYMMDDHH24MI') 했을때시간이 '2400'이면 발생하는 오류 해결책 : '2400'을 '0000'으로 바꾼 다음 날짜를 +1일 해주도록 하자. select to_date(replace('201806292400','2400','0000'),'yyyymmddhh24mi')+1from dual 프로그래밍/3. ORACLE 2018. 6. 29. ORACLE ORA-01812 에러코드 ORA-01812: year may only be specified once TO_DATE(변수, 'YYYYMMDD') 문구에서 Y가 4개가 되어야하는데 5개나 그 이상 들어가있으면 발생하는 오류 프로그래밍/3. ORACLE 2018. 6. 25. [오라클/ORACLE] 오라클 메모리 오라클 메모리는 크게 SGA(System Global Area)와 PGA(Program Global Area)로 구분할 수 있습니다. SGA - 모든 사용자가 공유하는 메모리 PGA - 각 사용자가 개별적으로 사용하는 메모리 오라클은 디스크에서 읽어온 데이터를 메모리에 보관한 다음에 데이터를 조회하거나 변경하는 작업을 수행합니다. 이때 데이터가 저장되는 메모리가 SGA입니다. SGA는 5개의 세부영역(공유 풀(Shared Pool), 데이터 버퍼 캐쉬(Data Buffer Cache), 리두 로그 버퍼(Redo Log Buffer), 대형 풀(Large Pool) 및 자바 풀 (Java Pool))로 구분할 수 있습니다. 오라클 서버의 SGA 설정값을 확인하는 방법은 다음과 같습니다. SHOW SGA S.. 프로그래밍/3. ORACLE 2013. 4. 22. [오라클/ORACLE] 통계정보 수집방법2 앞전 포스팅에 이어서 STATSPACK을 이용한 통계정보 수집방법을 포스팅 하도록 하겠습니다. STATSPACK을 이용해서 통계정보를 수집하려면 사전준비 작업이 필요한데, 작업의 순서는 다음과 같습니다. 1. SYSDBA로 로그인하여 $ORACLE_HOME/RDBMS/ADMIN/SPCREATE.SQL 스크립트를 실행시킨다. 2. PERFSTAT 유저의 패스워드 지정 3. 작업테이블의 테이블 스페이스와, TEMPORARY 테이블의 테이블 스페이스 지정 다음은 실제 스크립트 실행과정입니다. 위의 과정에서 오류없이 스크립트 실행이 완료되었다면 다음의 명령문이 들어가있는 SQL문을 파일로 만듭니다. variable snapshot_id number begin :snapshot_id := statspack.sna.. 프로그래밍/3. ORACLE 2013. 4. 21. [오라클/ORACLE] 통계정보 수집방법1 Oracle 통계수집 방법 1 Oracle에서 시스템의 통계정보를 수집하는 방법은 크게 2가지가 있습니다. 1. v$sysstat뷰, v$sessio 뷰를 조회하는 방법 2. statspack을 이용하는 방법 뷰를 이용하는 방법은 간단하지만 인스턴스 기동시점부터 누적된 데이터만 조회 할 수 있습니다. 따라서 시계열 분석을 하려면 개별적인 계산이 필요합니다. 또한 인스턴스가 중간에 재가동되면 지금까지 누적된 결과 역시 초기화 됩니다. 바면 statspack을 이용하면 두 기준 시간의 차이를 쉽게 파악할 수 있으며, 인스턴스를 중간에 재가동 하여도 정보가 남아있습니다. 하지만 statspack을 이용하려면 전용 유저와 전용 스크립트를 준비해야 합니다. v$sysstat 뷰 Oracle 시스템에서 수집한 통계.. 프로그래밍/3. ORACLE 2013. 4. 16. [오라클/ORACLE] ORACLE 서버 구성정보 확인하기. Oracle 서버에 관련된 정보는 주로 딕셔너리 테이블에서 확인할 수 있습니다. DBA(데이터베이스 관리자)는 'DBA_' 접두사를 가진 딕셔너리 테이블과 V$접두사를 가진 동적 퍼포먼스 뷰를 조회 함으로써 Oracle 서버에 관련된 정보를 획득할 수 있습니다. 1. Oracle Server Instance 정보 확인하기. Select instance_name, version, status from V$Instance; 쿼리를 이용하여 오라클 서버 인스턴스의 인스턴스 명, 오라클 데이터베이스 버전, 상태 정보를 확인할 수 있습니다. 2. Oracle Database 정보 확인하기 Select name, open_mode from v$database; 쿼리를 이용하여 오라클 데이터베이스의 식별명, 데이터데.. 프로그래밍/3. ORACLE 2013. 4. 15. [오라클/ORACLE] DBA (데이터베이스 관리자)의 업무 DBA(데이터베이스 관리자)의 업무는 크게 데이터베이스 설계, 데이터베이스 도입, 데이터베이스 운용 3가지로 구분할 수 있습니다. 각 업무를 좀 더 자세히 살펴보면 아래와 같습니다. 설계 : 업무에 필요한 정보 정의, 정의된 정보를 이용할 수 있도록 테이블 구조설계, 데이터베이스 제품선정, 사용자 교육 등의 업무를 수행합니다. 도입 : 하드웨어 및 OS를 도입하고 데이터베이스를 설치합니다. 또한 설계단계에서 작선된 데이블 설계도를 바탕으로 데이터베이스에 테이블 구현을합니다. 운용 : 데이터베이스가 이상없이 작동하고 있는지 , 문제점은 없는지 확인하여 사고를 예방하고 그래도 일어나는 사고를 대비하여 대비책을 수립합니다. 또한 정기적으로 HW/SW 업그레이드를 수행하여 데이터베이스가 항상 최적의 상태를 유지.. 프로그래밍/3. ORACLE 2013. 4. 13. [오라클/ORACLE] FLASH BACK을 이용한 데이터 복구 오라클을 이용하다면 보면 의도치 않게 데이터를 삭제하거나 변경을 하고 커밋을 해버리는 경우가 종종 발생하는데요. 이런 경우 데이터를 COMMIT을 한지 얼마 안 되었거나 메모리를 넉넉하게 잡아놓은 경우 FLASHBACK 기술을 이용해서 데이터 복원이 가능합니다. 1. 먼제 임시 테이블과 데이터를 생성합니다. 2. 데이터를 삭제하고 COMMIT을 합니다. 3. FLASHBACK에 데이터가 존재하는 확인합니다. 본 포스팅에서 사용할 명령어는 AS OF TABLE 입니다. 자세히 기술하면 다음과 같습니다. SELECT * FROM TEMP_TABLE AS OF TIMESTAMP (SYSTIMESTAMP - INTERVAL '8' MINUTE); 여기에서 '8'은 몇분전에 데이터를 조회할지를 표시하는 것으로 본.. 프로그래밍/3. ORACLE 2013. 4. 9. [데이터베이스] 데이터베이스 설계에 관한 오해(데이터베이스는 행위를 고려하지 않는다?) 작년 여름에 참여했던 프로젝트에서 있었던 일입니다. 당시 저는 정보시스템 구축 프로젝트에 참여해서 시스템을 설계하는 일을 했었는데요. CBD개발 방법론의 전문가(프로젝트도 많이 하셨고, 책을 많이 쓰셨습니다.)가 만든 방법론을 가지고 시스템 설계 및 데이터베이스 설계 작업을 해야 했습니다. 저는 그전까지는 주로 데이터베이스 설계 및 SQL 작업을 많이 했었기에 JAVA나 C# 같은 프로그래밍 언어는 물론 CBD 같은 개발방법론에 대한 이해는 약한 편이였습니다. 만들어진 프로그램이 있으면 분석해서 새로운 화면 개발하는 정도 수준이죠. 그래서 이번 기회에 CBD와 시스템 설계에 관해서 배워야겠구나 하면서(하지만 그다지 배우지는 못 했습니다. 방법론을 만들어 놓으시고 1시간씩 2번 설명해주시고는 철수 하셨습니.. 프로그래밍/3. ORACLE 2013. 2. 7. [오라클/ORACLE] DELETE table_name works 며칠 전 지인으로부터 문자 한통으로 시작된 일이다. 지인 : 호빵아 미쳐버리겠다. 프로시저에서 delete table명; 이래놨는데 from없이 이게 가능하? 아니면 이게 테이블이 아닌거가? 호빵 : 오라클은 안되죠 ㅋㅋ 지인 : 더 웃긴건 이게 컴파일이 되어 있다니까 진짜 미춰버리겠다. 호빵 : 오류 없이요? 그럴리가요? 오라클에서 table에 레코드를 지운데 from 절이 없다? 그런데 오류없이 컴파일이 되었다? 생각도 못해 본 일이다. 하지만 업무 중에 장난치려고 문자를 보낼 분은 아니기에 오늘 구글링을 해보았다. 그러다가 발견한 글(링크) 'delete table_name' 이 된단다! 그것도 9i부터 전혀 모르고 있었는데!!! 이 글을 읽은 분들은 'delete table_name' 구문을 보더.. 프로그래밍/3. ORACLE 2013. 2. 5. 이전 1 2 다음 반응형