Oracle Database 노드 문서
Oracle Database 노드를 사용하여 Oracle Database에서의 작업을 자동화하고, Oracle Database를 다른 애플리케이션과 통합하세요. 이 페이지에서는 Oracle Database 노드가 지원하는 작업 목록과 추가 리소스 링크를 확인할 수 있습니다.
Oracle Database 노드를 사용하여 Oracle Database에서의 작업을 자동화하고, Oracle Database를 다른 애플리케이션과 통합하세요. n8n은 SQL 문 실행, Oracle Database에서 데이터 가져오기, 삽입, 업데이트 또는 삭제 등 광범위한 Oracle Database 기능을 기본적으로 지원합니다. 이 노드는 내부적으로 node-oracledb 드라이버를 사용합니다.
이 페이지에서는 Oracle Database 노드가 지원하는 작업 목록과 추가 리소스 링크를 확인할 수 있습니다.
인증 설정 방법은 Oracle Database 자격 증명을 참조하세요.
Oracle Database 19c 이상이 필요합니다. Transparent Application Continuity (TAC) 및 Sharding 같은 고급 Oracle Database 기능의 경우, Oracle Client Libraries 19c 이상도 필요합니다.
이 노드는 AI 에이전트의 기능을 강화하는 데 사용할 수 있습니다. 이 방식으로 사용하면 많은 파라미터를 자동으로 설정하거나 AI가 제공하는 정보로 설정할 수 있습니다. 자세한 내용은 AI 도구 파라미터 문서를 참조하세요.
작업#
- Delete: 전체 테이블 또는 테이블의 행 삭제
- Execute SQL: SQL 문 실행
- Insert: 테이블에 행 삽입
- Insert or Update: 테이블에 행 삽입 또는 업데이트
- Select: 테이블에서 행 선택
- Update: 테이블의 행 업데이트
Delete#
이 작업을 사용하여 전체 테이블 또는 테이블의 행을 삭제합니다.
다음 파라미터를 입력합니다:
- 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을 선택합니다.
- Statement: 실행할 SQL 문. n8n 표현식과
:1,:2와 같은 위치 파라미터 또는:name,:id와 같은 명명된 파라미터를 바인드 파라미터 사용과 함께 사용할 수 있습니다. PL/SQL 프로시저(예:demo)를 실행하려면 다음과 같이 사용할 수 있습니다:
BEGIN
demo;
END;
Execute Statement 옵션#
- Auto Commit: 이 속성이 true로 설정되면 현재 연결의 트랜잭션이 문 실행 종료 시 자동으로 커밋됩니다.
- Bind Variable Placeholder Values: 문에서 사용되는 바인드 파라미터의 값을 입력합니다. 바인드 파라미터 사용을 참조하세요.
- Output Numbers As String: 숫자를 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: 각 컬럼에 사용할 값을 선택합니다. 바인드 값에 n8n 표현식 사용을 참조하세요.
- Map Automatically: 들어오는 데이터를 Oracle Database의 일치하는 컬럼 이름에 자동으로 매핑합니다. 이를 위해 들어오는 데이터 필드 이름이 Oracle Database의 컬럼 이름과 일치해야 합니다. 필요한 경우 이 노드 이전에 edit fields (set) 노드를 사용하여 형식을 조정하는 것을 고려하세요.
Insert 옵션#
- Auto Commit: 이 속성이 true로 설정되면 현재 연결의 트랜잭션이 문 실행 종료 시 자동으로 커밋됩니다.
- Output Columns: 출력할 컬럼을 선택합니다. 사용 가능한 컬럼 목록에서 선택하거나 표현식을 사용하여 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: 각 컬럼에 사용할 값을 선택합니다. 바인드 값에 n8n 표현식 사용을 참조하세요.
- Map Automatically: 들어오는 데이터를 Oracle Database의 일치하는 컬럼 이름에 자동으로 매핑합니다. 이를 위해 들어오는 데이터 필드 이름이 Oracle Database의 컬럼 이름과 일치해야 합니다. 필요한 경우 이 노드 이전에 edit fields (set) 노드를 사용하여 형식을 조정하는 것을 고려하세요.
Insert or Update 옵션#
- Auto Commit: 이 속성이 true로 설정되면 현재 연결의 트랜잭션이 문 실행 종료 시 자동으로 커밋됩니다.
- Output Columns: 출력할 컬럼을 선택합니다. 사용 가능한 컬럼 목록에서 선택하거나 표현식을 사용하여 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(as
json)를 정의합니다. Value는 타입에 따라 다를 수 있습니다 — 예를 들어 Fixed 모드의 경우:- String: "hello", hellowithoutquotes, "hello with space"
- Number: 12
- JSON: { "key": "val" }
아무것도 선택하지 않으면 Oracle Database가 모든 행을 선택합니다.
- Combine Conditions: Select Rows의 조건을 결합하는 방법. AND는 모든 조건이 참이어야 하고, OR는 하나 이상의 조건이 참이어야 합니다.
- Sort: 선택한 행을 정렬하는 방법을 선택합니다. 목록 또는 ID로 Column과 정렬 Direction을 선택합니다.
Select 옵션#
- Auto Commit: 이 속성이 true로 설정되면 현재 연결의 트랜잭션이 문 실행 종료 시 자동으로 커밋됩니다.
- Output Numbers As String: 숫자를 String으로 가져올지 여부를 나타냅니다.
- Fetch Array Size: Oracle Database에서 쿼리 행을 가져오는 데 사용되는 내부 버퍼의 크기를 설정하는 숫자 속성입니다. 이를 변경하면 쿼리 성능에 영향을 줄 수 있지만, 애플리케이션에 반환되는 행 수에는 영향을 미치지 않습니다.
- Number of Rows to Prefetch: 쿼리의 내부 초기 문 실행 단계에서 기본 Oracle 드라이버가 가져오는 추가 행의 수를 설정하는 쿼리 튜닝 옵션입니다.
Update#
이 작업을 사용하여 테이블의 행을 업데이트합니다.
다음 파라미터를 입력합니다:
- 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: 각 컬럼에 사용할 값을 선택합니다. 바인드 값에 n8n 표현식 사용을 참조하세요.
- Map Automatically: 들어오는 데이터를 Oracle Database의 일치하는 컬럼 이름에 자동으로 매핑합니다. 이를 위해 들어오는 데이터 필드 이름이 Oracle Database의 컬럼 이름과 일치해야 합니다. 필요한 경우 이 노드 이전에 edit fields (set) 노드를 사용하여 형식을 조정하는 것을 고려하세요.
Update 옵션#
- Auto Commit: 이 속성이 true로 설정되면 현재 연결의 트랜잭션이 문 실행 종료 시 자동으로 커밋됩니다.
- Output Columns: 출력할 컬럼을 선택합니다. 사용 가능한 컬럼 목록에서 선택하거나 표현식을 사용하여 ID를 지정할 수 있습니다.
- Statement Batching: 데이터베이스에 문을 전송하는 방법:
- Single Statement: 들어오는 모든 항목에 대해 단일 문을 사용합니다.
- Independently: 실행의 들어오는 항목마다 하나의 문을 실행합니다.
- Transaction: 트랜잭션으로 모든 문을 실행합니다. 실패가 발생하면 Oracle Database가 모든 변경 사항을 롤백합니다.
관련 리소스#
서비스에 대한 자세한 내용은 SQL Language Reference를 참조하세요.
node-oracledb 드라이버에 대한 자세한 내용은 node-oracledb 문서를 참조하세요.
바인드 파라미터 사용 {#use-bind-parameters}#
Oracle 데이터베이스 인스턴스에서 실행할 문을 만들 때 Options 섹션의 Bind Variable Placeholder Values 필드를 사용하여 문에 데이터를 로드할 수 있습니다. n8n은 문 파라미터의 데이터를 정제하여 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는 예시 테이블 이름입니다
fruits, {{ $json.color }}
바인드 값에 n8n 표현식 사용 {#use-n8n-expressions-for-bind-values}#
Values to Send에는 n8n 표현식을 사용하여 입력을 제공할 수 있습니다. 아래는 다양한 데이터 타입에 대한 예시입니다 — 상수 값을 입력하거나 이전 항목의 필드를 참조($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 컬럼 타입에 직접 매핑된다고 가정합니다.
