[Oracle] 문자열 리스트 프로시저에 전달하기
·
데이터베이스
오라클 데이터베이스에서 SYS.ODCIVARCHAR2LIST를 활용하면 문자열의 리스트를 프로시저에 전달하여 처리할 수 있습니다. 이번 포스팅에서는 SYS.ODCIVARCHAR2LIST를 사용하여 프로시저에서 리스트를 입력받고 처리하는 방법에 대해 설명하겠습니다. 1. 프로시저에서 리스트로 입력 선언하기SYS.ODCIVARCHAR2LIST는 문자열 리스트를 다루기 위한 Oracle의 내장 타입입니다. 이를 사용하여 프로시저에서 리스트를 입력받을 수 있습니다.CREATE OR REPLACE PROCEDURE PROC_TEST( p_codes IN SYS.ODCIVARCHAR2LIST)ISBEGIN -- 프로시저 로직END;이와 같이 p_codes를 SYS.ODCIVARCHAR2LIST 타입으로 ..
[Oracle] DB_LINK 기본개념 및 사용법
·
데이터베이스
1. DB_LINK란?DB_LINK(Database Link)는 한 데이터베이스에서 다른 원격 데이터베이스에 접근할 수 있도록 해주는 Oracle의 기능입니다. 이를 통해 서로 다른 데이터베이스 간에 데이터를 쉽게 주고받을 수 있습니다. 주로 분산 데이터베이스 환경에서 사용되며, 네트워크 상에 있는 다른 데이터베이스의 객체를 로컬 데이터베이스처럼 사용할 수 있게 해줍니다. 2. DB_LINK 확인 쿼리이미 생성된 DB_LINK를 확인하려면 아래의 SQL 쿼리를 사용합니다.-- 전체 데이터베이스의 모든 DB_LINK 정보 (DBA 권한 필요)SELECT * FROM dba_db_links;-- 현재 사용자의 스키마에 정의된 DB_LINK 정보SELECT * FROM user_db_links;-- 현재 사용..
[Oracle] java.sql.SQLException: 소켓에서 읽을 데이터가 없습니다.
·
데이터베이스
잘되던 소스에서 어느 날부터 "java.sql.SQLException: 소켓에서 읽을 데이터가 없습니다." 오류가 발생했습니다. 락이 걸려 있는 세션을 찾아봐도 문제가 없었고, 같은 쿼리의 특정 row 에만 문제가 있는 것으로 보였습니다. 혹시 저와 같은 증상을 겪고 있다면 아래 쿼리를 이용하여 세션뿐 아니라 트랜잭션이 살아있는지 확인해야 합니다. 1. 세션 확인SELECT SUBSTR (TO_CHAR (LAST_CALL_ET), 1, 6) "경과시간(초)" , A.USERNAME , MACHINE , A.SQL_ID , B.SQL_TEXT SQLTEXT , 'ALTER SYSTEM KILL SESSION ' || '''' || A.SID || ', ' || A.SER..
[Oracle] DB CharacterSet 조회 및 수정 방법
·
데이터베이스
오라클 DB의 문자셋을 확인하고 변경하는 방법에 대해 공유합니다.문자셋을 변경하기에 앞서, 데이터베이스에 데이터가 있다면 문자셋 변경은 위험한 작업이 될 수 있으니 이 점 유의 부탁드립니다.1. Charset 확인 쿼리SELECT * FROM nls_database_parameters WHERE parameter = 'NLS_CHARACTERSET';한글지원 가능한 문자셋KO16KSC5601 : 완성형 한글KO16MSWIN949 : 조합형 한글AL32UTF8 : Unicode CES 2. Charset 변경 쿼리cmd > sqlplus sysdbasql > update props$ set value$='KO16MSWIN949' where name='NLS_CHARACTERSET';sql > update ..
[DB] 오라클 모든 테이블과 컬럼 조회하기
·
데이터베이스
오라클 DB 에서 찾고자 하는 칼럼명을 사용하고 있는 테이블을 간단하게 조회하는 방법과 테이블 락세션을 확인하는 방법에 대해 알아보겠습니다. 1. 테이블모든 테이블 : ALL_TABLES사용자 테이블 : USER_TABLESDBA 테이블 : DBA_TABLES [관리자 계정]모든 칼럼 조회 : ALL_TAB_COLUMNS 2. 컬럼명으로 테이블 찾기SELECT *FROM ALL_TAB_COLUMNSWHERE COLUMN_NAME = '컬럼'3. 테이블의 모든 칼럼명 가져오기SELECT *FROM ALL_TAB_COLUMNSWHERE TABLE_NAME = '테이블';4. 테이블 락 확인SELECT SID , A.SERIAL# , LAST_CALL_ET , A.USERNAME ..
제로빈
'데이터베이스' 카테고리의 글 목록