Oracle Database 노드 문서
n8n v2.29Oracle Database 노드를 사용하여 Oracle Database에서 작업을 자동화하고 Oracle Database를 다른 애플리케이션과 통합하세요. 이 페이지에서는 Oracle Database 노드가 지원하는 작업 목록과 추가 리소스로 연결되는 링크를 확인할 수 있습니다.
Oracle Database 노드를 사용하여 Oracle Database에서 작업을 자동화하고 Oracle Database를 다른 애플리케이션과 통합하세요. n8n은 SQL 문 실행, Oracle Database에서 데이터 가져오기, 삽입, 업데이트 또는 삭제를 포함한 다양한 Oracle Database 기능을 기본으로 지원합니다. 이 노드는 내부적으로 node-oracledb driver를 사용합니다.
이 페이지에서는 Oracle Database 노드가 지원하는 작업 목록과 추가 리소스로 연결되는 링크를 확인할 수 있습니다.
인증 설정에 대한 안내는 Oracle Database 자격 증명을 참고하세요.
Oracle Database 19c 이상이 필요합니다. Transparent Application Continuity(TAC) 및 Sharding과 같은 고급 Oracle Database 기능을 사용하려면 Oracle Client Libraries 19c 이상도 필요합니다.
이 섹션의 상세 내용은 n8n 공식 문서를 참조하세요.
작업#
- Delete: 테이블 전체 또는 테이블 내 행을 삭제합니다
- Execute SQL: SQL 문을 실행합니다
- Insert: 테이블에 행을 삽입합니다
- Insert or Update: 테이블에 행을 삽입하거나 업데이트합니다
- Select: 테이블에서 행을 선택합니다
- Update: 테이블의 행을 업데이트합니다
삭제#
이 작업을 사용하여 테이블 전체 또는 테이블 내 행을 삭제합니다.
다음 매개변수를 입력합니다:
- Credential to connect with: 기존 Oracle Database 자격 증명을 생성하거나 선택합니다.
- Operation: Delete를 선택합니다.
- Schema: 작업할 테이블이 포함된 스키마를 선택합니다. 드롭다운 목록에서 스키마를 선택하려면 From list를, 스키마 이름을 직접 입력하려면 By Name을 선택합니다.
- Table: 작업할 테이블을 선택합니다. 드롭다운 목록에서 테이블을 선택하려면 From list를, 테이블 이름을 직접 입력하려면 By Name을 선택합니다.
- Command: 수행할 삭제 작업입니다:
- Truncate: 테이블의 데이터를 제거하지만 테이블의 구조는 유지합니다.
- Delete: "Select Rows" 조건에 일치하는 행을 삭제합니다. 아무것도 선택하지 않으면 Oracle Database는 모든 행을 삭제합니다.
- Select Rows: 행을 일치시킬 Column, Operator, Value를 정의합니다. 값은 표현식 또는 문자열을 사용하여 JSON으로 전달할 수 있습니다.
- Combine Conditions: "Select Rows"의 조건을 결합하는 방법입니다. AND는 모든 조건이 참이어야 하고, OR는 조건 중 하나 이상이 참이어야 합니다.
- Drop: 테이블의 데이터와 구조를 영구적으로 삭제합니다.
Delete 옵션#
- Auto Commit: 이 속성을 true로 설정하면 현재 연결의 트랜잭션이 문 실행이 끝날 때 자동으로 커밋됩니다.
- Statement Batching: 데이터베이스로 문을 전송하는 방식입니다:
- Single Statement: 들어오는 모든 항목에 대해 단일 문을 사용합니다.
- Independently: 실행의 들어오는 항목마다 문을 하나씩 실행합니다.
- Transaction: 모든 문을 하나의 트랜잭션에서 실행합니다. 실패가 발생하면 Oracle Database는 모든 변경 사항을 롤백합니다.
Execute SQL#
이 작업을 사용하여 SQL 문을 실행합니다.
다음 매개변수를 입력합니다:
- Credential to connect with: 기존 Oracle Database 자격 증명을 생성하거나 선택합니다.
- Operation: Execute SQL Execute SQL.
- Statement: 실행할 SQL 문입니다. n8n 표현식(expressions)과
:1,:2와 같은 위치 매개변수 또는:name,:id와 같은 이름 지정 매개변수를 Use bind parameters와 함께 사용할 수 있습니다. 예를 들어demo라는 PL/SQL 프로시저를 실행하려면 다음과 같이 사용할 수 있습니다:
BEGIN
demo;
END;
Execute Statement 옵션#
- Auto Commit: 이 속성을 true로 설정하면 현재 연결의 트랜잭션이 문 실행이 끝날 때 자동으로 커밋됩니다.
- Bind Variable Placeholder Values: 문에서 사용되는 바인드 매개변수의 값을 입력합니다 Use bind parameters.
- Output Numbers As String: 숫자를 문자열로 가져올지 여부를 나타냅니다.
- Fetch Array Size: 이 속성은 Oracle Database에서 쿼리 행을 가져올 때 사용되는 내부 버퍼의 크기를 설정하는 숫자입니다. 이 값을 변경하면 쿼리 성능에 영향을 줄 수 있지만 애플리케이션에 반환되는 행의 수에는 영향을 주지 않습니다.
- Number of Rows to Prefetch: 이 속성은 쿼리의 내부 초기 문 실행 단계에서 기본 Oracle 드라이버가 추가로 가져올 행 수를 설정하는 쿼리 튜닝 옵션입니다.
Insert#
이 작업을 사용하여 테이블에 행을 삽입합니다.
다음 매개변수를 입력합니다:
- Credential to connect with: 기존 Oracle Database 자격 증명을 생성하거나 선택합니다.
- Operation: Insert를 선택합니다.
- Schema: 작업할 테이블이 포함된 스키마를 선택합니다. 드롭다운 목록에서 스키마를 선택하려면 From list를, 스키마 이름을 직접 입력하려면 By Name을 선택합니다.
- Table: 작업할 테이블을 선택합니다. 드롭다운 목록에서 테이블을 선택하려면 From list를, 테이블 이름을 직접 입력하려면 By Name을 선택합니다.
- Mapping Column Mode: 열 이름을 들어오는 데이터에 매핑하는 방법입니다:
- Map Each Column Manually: 각 열에 사용할 값을 선택합니다 Use n8n expressions for bind values.
- Map Automatically: 들어오는 데이터를 Oracle Database의 일치하는 열 이름에 자동으로 매핑합니다. 이 기능이 작동하려면 들어오는 데이터 필드 이름이 Oracle Database의 열 이름과 일치해야 합니다. 필요한 경우 이 노드 앞에서 edit fields (set) node를 사용하여 형식을 필요에 맞게 조정하는 것을 고려하세요.
Insert 옵션#
- Auto Commit: 이 속성을 true로 설정하면 현재 연결의 트랜잭션이 문 실행이 끝날 때 자동으로 커밋됩니다.
- Output Columns: 출력할 열을 선택합니다. 사용 가능한 열 목록에서 선택하거나 표현식(expressions)을 사용하여 ID를 지정할 수 있습니다.
- Statement Batching: 데이터베이스로 문을 전송하는 방식입니다:
- Single Statement: 들어오는 모든 항목에 대해 단일 문을 사용합니다.
- Independently: 실행의 들어오는 항목마다 문을 하나씩 실행합니다.
- Transaction: 모든 문을 하나의 트랜잭션에서 실행합니다. 실패가 발생하면 Oracle Database는 모든 변경 사항을 롤백합니다.
Insert or Update#
이 작업을 사용하여 테이블에 행을 삽입하거나 업데이트합니다.
다음 매개변수를 입력합니다:
- Credential to connect with: 기존 Oracle Database 자격 증명을 생성하거나 선택합니다.
- Operation: Insert or Update를 선택합니다.
- Schema: 작업할 테이블이 포함된 스키마를 선택합니다. 드롭다운 목록에서 스키마를 선택하려면 From list를, 스키마 이름을 직접 입력하려면 By Name을 선택합니다.
- Table: 작업할 테이블을 선택합니다. 드롭다운 목록에서 테이블을 선택하려면 From list를, 테이블 이름을 직접 입력하려면 By Name을 선택합니다.
- Mapping Column Mode: 열 이름을 들어오는 데이터에 매핑하는 방법입니다:
- Map Each Column Manually: 각 열에 사용할 값을 선택합니다 Use n8n expressions for bind values.
- Map Automatically: 들어오는 데이터를 Oracle Database의 일치하는 열 이름에 자동으로 매핑합니다. 이 기능이 작동하려면 들어오는 데이터 필드 이름이 Oracle Database의 열 이름과 일치해야 합니다. 필요한 경우 이 노드 앞에서 edit fields (set) node를 사용하여 형식을 필요에 맞게 조정하는 것을 고려하세요.
Insert or Update 옵션#
- Auto Commit: 이 속성을 true로 설정하면 현재 연결의 트랜잭션이 문 실행이 끝날 때 자동으로 커밋됩니다.
- Output Columns: 출력할 열을 선택합니다. 사용 가능한 열 목록에서 선택하거나 표현식(expressions)을 사용하여 ID를 지정할 수 있습니다.
- Statement Batching: 데이터베이스로 문을 전송하는 방식입니다:
- Single Statement: 들어오는 모든 항목에 대해 단일 문을 사용합니다.
- Independently: 실행의 들어오는 항목마다 문을 하나씩 실행합니다.
- Transaction: 모든 문을 하나의 트랜잭션에서 실행합니다. 실패가 발생하면 Oracle Database는 모든 변경 사항을 롤백합니다.
Select#
이 작업을 사용하여 테이블의 행을 선택합니다.
다음 매개변수를 입력합니다:
- Credential to connect with: 기존 Oracle Database 자격 증명을 생성하거나 선택합니다.
- Operation: Select를 선택합니다.
- Schema: 작업할 테이블이 포함된 스키마를 선택합니다. 드롭다운 목록에서 스키마를 선택하려면 From list를, 스키마 이름을 직접 입력하려면 By Name을 선택합니다.
- Table: 작업할 테이블을 선택합니다. 드롭다운 목록에서 테이블을 선택하려면 From list를, 테이블 이름을 직접 입력하려면 By Name을 선택합니다.
- Return All: 모든 결과를 반환할지, 아니면 지정한 한도까지만 반환할지 여부입니다.
- Limit: Return All이 비활성화되어 있을 때 반환할 항목의 최대 개수입니다.
- Select Rows: 행을 선택할 조건을 설정합니다. 행을 일치시킬 Column, Operator, Value(
json으로)를 정의합니다. Value는 유형에 따라 다를 수 있습니다 — 예를 들어 Fixed 모드에서는:- 문자열: "hello", hellowithoutquotes, "hello with space"
- 숫자: 12
- JSON: { "key": "val" }
아무것도 선택하지 않으면 Oracle Database는 모든 행을 선택합니다.
- Combine Conditions: Select Rows의 조건을 결합하는 방법입니다. AND는 모든 조건이 참이어야 하고, OR는 조건 중 하나 이상이 참이어야 합니다.
- Sort: 선택된 행을 정렬하는 방법을 선택합니다. 목록 또는 ID로 Column을 선택하고 정렬 Direction을 선택합니다.
Select 옵션#
- Auto Commit: 이 속성을 true로 설정하면 현재 연결의 트랜잭션이 문 실행이 끝날 때 자동으로 커밋됩니다.
- Output Numbers As String: 숫자를 문자열로 가져올지 여부를 나타냅니다.
- Fetch Array Size: 이 속성은 Oracle Database에서 쿼리 행을 가져올 때 사용되는 내부 버퍼의 크기를 설정하는 숫자입니다. 이 값을 변경하면 쿼리 성능에 영향을 줄 수 있지만 애플리케이션에 반환되는 행의 수에는 영향을 주지 않습니다.
- Number of Rows to Prefetch: 이 속성은 쿼리의 내부 초기 문 실행 단계에서 기본 Oracle 드라이버가 추가로 가져올 행 수를 설정하는 쿼리 튜닝 옵션입니다.
업데이트#
이 작업을 사용하여 테이블의 행을 업데이트합니다.
다음 매개변수를 입력합니다:
- Credential to connect with: 기존 Oracle Database 자격 증명을 생성하거나 선택합니다.
- Operation: Update를 선택합니다.
- Schema: 작업할 테이블이 포함된 스키마를 선택합니다. 드롭다운 목록에서 스키마를 선택하려면 From list를, 스키마 이름을 직접 입력하려면 By Name을 선택합니다.
- Table: 작업할 테이블을 선택합니다. 드롭다운 목록에서 테이블을 선택하려면 From list를, 테이블 이름을 직접 입력하려면 By Name을 선택합니다.
- Mapping Column Mode: 열 이름을 들어오는 데이터에 매핑하는 방법입니다:
- Map Each Column Manually: 각 열에 사용할 값을 선택합니다 Use n8n expressions for bind values.
- Map Automatically: 들어오는 데이터를 Oracle Database의 일치하는 열 이름에 자동으로 매핑합니다. 이 기능이 작동하려면 들어오는 데이터 필드 이름이 Oracle Database의 열 이름과 일치해야 합니다. 필요한 경우 이 노드 앞에서 edit fields (set) node를 사용하여 형식을 필요에 맞게 조정하는 것을 고려하세요.
Update 옵션#
- Auto Commit: 이 속성을 true로 설정하면 현재 연결의 트랜잭션이 문 실행이 끝날 때 자동으로 커밋됩니다.
- Output Columns: 출력할 열을 선택합니다. 사용 가능한 열 목록에서 선택하거나 표현식(expressions)을 사용하여 ID를 지정할 수 있습니다.
- Statement Batching: 데이터베이스로 문을 전송하는 방식입니다:
- Single Statement: 들어오는 모든 항목에 대해 단일 문을 사용합니다.
- Independently: 실행의 들어오는 항목마다 문을 하나씩 실행합니다.
- Transaction: 모든 문을 하나의 트랜잭션에서 실행합니다. 실패가 발생하면 Oracle Database는 모든 변경 사항을 롤백합니다.
관련 자료#
서비스에 대한 자세한 내용은 SQL Language Reference를 참고하세요.
node-oracledb 드라이버에 대한 자세한 내용은 node-oracledb documentation을 참고하세요.
바인드 매개변수 사용#
Oracle 데이터베이스 인스턴스에서 실행할 문을 작성할 때 Options 섹션의 Bind Variable Placeholder Values 필드를 사용하여 문에 데이터를 로드할 수 있습니다. n8n은 문 매개변수의 데이터를 정제(sanitize)하여 SQL 인젝션을 방지합니다.
예를 들어 색상별로 특정 과일을 찾고 싶다고 가정해 보겠습니다. 다음과 같은 입력 데이터가 주어졌을 때:
[
{
"FRUIT_ID": 1,
"FRUIT_NAME": "Apple",
"COLOR": "Red"
},
{
"FRUIT_ID": 2,
"FRUIT_NAME": "Banana",
"COLOR": "Yellow"
}
]
다음과 같은 문을 작성할 수 있습니다:
SELECT * FROM FRUITS WHERE COLOR = :col
그런 다음 Bind Variable Placeholder Values에서 사용할 필드 값을 제공합니다. 고정 값 또는 표현식을 제공할 수 있습니다. 이 예제에서는 노드가 각 입력 항목에서 순서대로 색상을 가져올 수 있도록 표현식을 사용합니다:
// fruits is an example table name
fruits, {{ $json.color }}
바인드 값에 n8n Expression 사용#
Values to Send의 경우 n8n Expressions를 사용하여 입력을 제공할 수 있습니다. 아래는 서로 다른 데이터 유형에 대한 예시입니다 — 상수 값을 입력하거나 이전 항목의 필드($json)를 참조할 수 있습니다:
JSON#
- 상수:
{{ { k1: "v1", k2: "v2" } }} - 이전 항목에서:
{{ $json.COL_JSON }}
VECTOR#
- 상수:
{{ [1, 2, 3, 4.5] }} - 이전 항목에서:
{{ $json.COL_VECTOR }}
BLOB#
- 상수:
{{ [94, 87, 34] }}또는{{ ' BLOB data string' }} - 이전 항목에서:
{{ $json.COL_BLOB }}
RAW#
- 상수:
{{ [94, 87, 34] }} - 이전 항목에서:
{{ $json.COL_RAW }}
BOOLEAN#
- 상수:
{{ true }} - 이전 항목에서:
{{ $json.COL_BOOLEAN }}
NUMBER#
- 상수:
1234 - 이전 항목에서:
{{ $json.COL_NUMBER }}
VARCHAR#
- 상수:
' Hello World ' - 이전 항목에서:
{{ $json.COL_CHAR }}
이 예시들은 JSON 키(예: COL_JSON, COL_VECTOR)가 해당 SQL 열 유형에 직접 매핑된다고 가정합니다.