반응형

oracle 4

[PL/SQL] Cursor-based FOR LOOP 활용하기

데이터베이스 작업을 할 때, 종종 특정 쿼리 결과를 순회하며 작업을 수행해야 합니다. Oracle PL/SQL에서는 Cursor-based FOR LOOP라는 강력한 구조를 제공하여 이런 작업을 단순화합니다. 이 글에서는 해당 구조의 기본 문법과 함께 활용 예시를 알아봅니다. Cursor-based FOR LOOP의 기본 문법 Cursor-based FOR LOOP는 Oracle PL/SQL에서 제공하는 반복 구조 중 하나로, SELECT 문의 결과를 순회할 때 주로 사용됩니다. FOR cursor_variable IN (SELECT 문) LOOP -- 반복할 로직 END LOOP; 이 구조의 장점은 다음과 같습니다: 간결성: 명시적인 커서 선언, OPEN, FETCH, CLOSE 등의 작업 없이 직관적..

[C#] Oracle Bulk Insert

public class TableA { public string A { get; set; } public string B { get; set; } public string C { get; set; } } 만약 위와 같은 테이블 레이아웃을 가지는 Bulk data 가 있다고 하자. 만약 한 두건 정도면 쿼리로 넘기면 되지만 만건 10만건 정도 되는 데이터를 넘길때는 OracleParameter와 ArrayBindCount를 이용하여 한꺼번에 보낸다. 아래의 코드는 1000건씩 Insert하는 코드를 첨부하였다. public async Task BulkInsert(List result) { using (OracleConnection conn = new OracleConnection(_connectInfo))..

프로그래밍/C# 2022.04.01

[C#] Oracle 연결 시 예외 발생 문제

C#에서 Oracle을 연결해서 사용하는데 정상적으로 접속은 하지만 예외가 아래와 같이 나올 때가 있다. 예외 발생: 'OracleInternal.NotificationServices.ONSException'(Oracle.ManagedDataAccess.dll) 왜인지는 모르겠지만 접속 정보에 load balancing=false; ha events=false; 을 추가해주면 문제가 해결된다. var dbInfo = $"Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST={dbIp})(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME={dbName})));load balancing=..

프로그래밍/C# 2022.03.11
반응형