machcli
machcli 모듈은 JSH 애플리케이션에서 Machbase 데이터베이스를 사용할 수 있는 클라이언트 API를 제공합니다.
Client
데이터베이스 클라이언트를 생성합니다.
사용 형식
new Client(config)설정 필드
host(기본값:127.0.0.1)port(기본값:5656)user(기본값:sys)password(기본값:manager)alternativeHost(선택)alternativePort(선택)database(선택): 멀티 데이터베이스 환경에서 연결에 사용할 대상 데이터베이스 (별칭:db) Since v8.7.0
사용 예시
| |
멀티 데이터베이스 예시
클라이언트 생성 시 database를 지정하면 연결에 사용할 대상 데이터베이스를 선택할 수 있습니다. db는 database의 별칭입니다.
Since v8.7.0
| |
Client.connect()
연결을 열고 Connection 객체를 반환합니다.
사용 형식
connect()Client.close()
내부 데이터베이스 클라이언트를 종료합니다.
사용 형식
close()Client.user()
설정된 사용자 이름(대문자)을 반환합니다.
사용 형식
user()Client.normalizeTableName()
테이블 이름을 [database, user, table] 형식으로 정규화합니다.
사용 형식
normalizeTableName(tableName)Client.tx()
Since v8.7.0풀에서 가져온 연결로 트랜잭션을 열고 그 안에서 fn을 실행합니다. fn이 정상적으로 반환되면 트랜잭션을 커밋하고, fn이 예외를 던지면 트랜잭션을 롤백한 뒤 그 예외를 다시 던집니다. fn에는 해당 트랜잭션에 바인딩된 Connection이 전달되므로, 이 객체의 query()/queryRow()/exec() 호출은 같은 트랜잭션 안에서 수행됩니다.
CREATE TABLE로 생성한 일반(트랜잭션) 테이블에서만 동작합니다. 로그 테이블(CREATE LOG TABLE)과 태그 테이블(CREATE TAG TABLE)은 트랜잭션을 지원하지 않으며, tx() 안에서 이런 테이블에 대해 exec()/query()를 실행하면 MACHCLI-ERR-2362와 같은 오류가 발생합니다.사용 형식
tx(fn)사용 예시
| |
Connection
Client.connect()가 반환하는 연결 객체입니다.
Connection.query()
조회 SQL을 실행하고 Rows 객체를 반환합니다. params에는 ? 위치 지정 파라미터를 위한 가변 인자를 전달합니다.
또는 :key 네임드 파라미터를 위한 { key: value, ... } 객체를 전달할 수 있습니다
Since v8.7.0
.
사용 형식
query(sql[, ...params])사용 예시
| |
Connection.queryRow()
조회 SQL을 실행하고 단일 행 객체를 반환합니다.
반환 객체에는 _ROWNUM과 각 컬럼명이 프로퍼티로 포함됩니다.
사용 형식
queryRow(sql[, ...params])Connection.exec()
DDL/DML을 실행하고 결과 객체를 반환합니다.
반환 필드:
rowsAffectedmessage
사용 형식
exec(sql[, ...params])Connection.explain()
실행 계획 문자열을 반환합니다.
사용 형식
explain(sql[, ...params])Connection.append()
대량 입력용 appender 객체를 생성합니다.
반환된 appender는 append(), flush(), close() 같은 메서드를 지원합니다.
사용 형식
append(tableName)사용 예시
| |
Connection.tx()
Since v8.7.0이 연결 위에서 트랜잭션을 열고 그 안에서 fn을 실행합니다. 커밋/롤백 동작은 Client.tx()와 동일합니다. 이미 확보해 둔 연결(예: Client.connect()가 반환한 연결) 위에서 트랜잭션을 실행해야 할 때 사용합니다.
CREATE TABLE로 생성한 일반(트랜잭션) 테이블에서만 동작합니다. 로그 테이블(CREATE LOG TABLE)과 태그 테이블(CREATE TAG TABLE)은 트랜잭션을 지원하지 않으며, tx() 안에서 이런 테이블에 대해 exec()/query()를 실행하면 MACHCLI-ERR-2362와 같은 오류가 발생합니다.사용 형식
tx(fn)사용 예시
| |
Connection.close()
연결을 종료합니다.
사용 형식
close()Rows
Connection.query()가 반환하는 결과 집합 객체입니다.
Rows.message
조회 실행 결과 메시지입니다.
Rows.isFetchable()
행을 가져올 수 있는 결과인지 반환합니다.
사용 형식
isFetchable()Rows.next()
이터레이터 결과 객체를 반환합니다.
- 행이 있으면
{ value: Row, done: false } - 완료되면
{ done: true }
사용 형식
next()Rows.close()
결과 집합을 닫습니다.
사용 형식
close()Row
조회된 행을 나타내는 객체입니다.
- 각 컬럼은
row.COLUMN_NAME으로 접근할 수 있습니다. for...of반복을 지원합니다.
queryDatabaseId()
마운트된 데이터베이스의 backup tablespace ID를 반환합니다.
- 기본 DB(
''또는MACHBASEDB)는-1반환 - 데이터베이스가 없으면 예외를 발생시킵니다.
사용 형식
queryDatabaseId(conn, dbName)queryTableType()
정규화된 테이블 이름 토큰으로 테이블 타입 코드를 반환합니다.
사용 형식
queryTableType(conn, names)TableType
stringTableType()
테이블 타입 상수와 문자열 변환 함수입니다.
TableType 값
Log,Fixed,Volatile,Lookup,KeyValue,Tag
사용 형식
stringTableType(type)TableFlag
stringTableFlag()
테이블 플래그 상수와 문자열 변환 함수입니다.
TableFlag 값
None,Data,Rollup,Meta,Stat
사용 형식
stringTableFlag(flag)stringTableDescription()
테이블 타입/플래그를 결합한 설명 문자열을 반환합니다.
사용 형식
stringTableDescription(type, flag)ColumnType
stringColumnType()
컬럼 타입 상수와 문자열 변환 함수입니다.
주요 ColumnType 값
Short,UShort,Integer,UInteger,Long,ULongFloat,Double,Varchar,Text,Clob,Blob,BinaryDatetime,IPv4,IPv6,JSON
사용 형식
stringColumnType(columnType)columnWidth()
컬럼 타입의 기본 표시 폭을 반환합니다.
사용 형식
columnWidth(columnType, length)ColumnFlag
stringColumnFlag()
컬럼 플래그 상수와 문자열 변환 함수입니다.
ColumnFlag 값
TagNameBasetimeSummarizedMetaColumn
사용 형식
stringColumnFlag(flag)