Initial commit

This commit is contained in:
Zhongwei Li
2025-11-30 08:55:22 +08:00
commit 9c41543515
18 changed files with 4438 additions and 0 deletions

245
references/db-inspection.md Normal file
View File

@@ -0,0 +1,245 @@
# SAP HANA CLI - Database Inspection Functions
**Source**: [https://github.com/SAP-samples/hana-developer-cli-tool-example/blob/main/utils/dbInspect.js](https://github.com/SAP-samples/hana-developer-cli-tool-example/blob/main/utils/dbInspect.js)
Detailed documentation of the database inspection functions used by hana-cli.
---
## Version & Metadata Functions
### getHANAVersion(db)
Returns HANA version information.
```javascript
// Returns: { version: "2.00.045", versionMajor: 2 }
```
**System Table**: `M_DATABASE`
### isCalculationView(db, schema, viewId)
Checks if a view is a Calculation View.
**System Table**: `_SYS_BI.BIMC_REPORTABLE_VIEWS`
**Note**: HANA 2.0+ only
---
## Table Inspection Functions
### getTable(db, schema, tableId)
Returns table metadata.
**Returns**:
| Field | Description |
|-------|-------------|
| TABLE_NAME | Table name |
| TABLE_OID | Object ID |
| TABLE_TYPE | Table type |
| HAS_PRIMARY_KEY | Primary key exists |
| UNLOAD_PRIORITY | Memory priority |
| IS_PRELOAD | Preload enabled |
**System Table**: `TABLES`
### getTableFields(db, tableOid)
Returns column metadata for a table.
**Returns**:
| Field | Description |
|-------|-------------|
| COLUMN_NAME | Column name |
| DATA_TYPE_NAME | Data type |
| LENGTH | Field length |
| SCALE | Decimal scale |
| IS_NULLABLE | Nullable flag |
| DEFAULT_VALUE | Default value |
| POSITION | Column position |
**System Table**: `TABLE_COLUMNS`
### getConstraints(db, object)
Returns PRIMARY KEY constraints.
---
## View Inspection Functions
### getView(db, schema, viewId)
Returns view metadata.
**Returns**:
| Field | Description |
|-------|-------------|
| VIEW_NAME | View name |
| VIEW_OID | Object ID |
| COMMENTS | Documentation |
| VIEW_TYPE | View type |
**Note**: Version-aware queries (HANA 1.0 vs 2.0+)
### getViewFields(db, viewOid)
Returns view column metadata.
**System Table**: `VIEW_COLUMNS`
### getViewParameters(db, viewOid)
Returns view input parameters.
**System Table**: `VIEW_PARAMETERS`
### getCalcViewFields(db, schema, viewId, viewOid)
Returns Calculation View field metadata.
**System Table**: `_SYS_BI.BIMC_DIMENSION_VIEW`
**Returns**:
| Field | Description |
|-------|-------------|
| POSITION | Field position |
| DATA_TYPE_NAME | Data type |
| SCALE | Decimal scale |
| KEY_COLUMN_NAME | Key indicator |
### getCalcViewParameters(db, schema, viewId, viewOid)
Returns Calculation View parameters.
**System Table**: `_SYS_BI.BIMC_VARIABLE_VIEW`
**Returns**:
| Field | Description |
|-------|-------------|
| PARAMETER_NAME | Parameter name |
| DATA_TYPE_NAME | Data type |
| MANDATORY | Required flag |
| DEFAULT_VALUE | Default value |
---
## Procedure & Function Functions
### getProcedure(db, schema, procedure)
Returns procedure metadata.
**Returns**:
| Field | Description |
|-------|-------------|
| PROCEDURE_OID | Object ID |
| SQL_SECURITY | Security mode |
| INPUT_PARAMETER_COUNT | Input params |
| OUTPUT_PARAMETER_COUNT | Output params |
| READ_ONLY | Read-only flag |
| IS_VALID | Validity status |
**System Table**: `PROCEDURES`
### getProcedurePrams(db, procOid)
Returns procedure parameters.
**System Table**: `PROCEDURE_PARAMETERS`
### getProcedurePramCols(db, procOid)
Returns procedure parameter columns (for table-type params).
**System Table**: `PROCEDURE_PARAMETER_COLUMNS`
### getFunction(db, schema, functionName)
Returns function metadata.
**Returns**:
| Field | Description |
|-------|-------------|
| FUNCTION_OID | Object ID |
| SQL_SECURITY | Security mode |
| INPUT_PARAMETER_COUNT | Input params |
| RETURN_VALUE_COUNT | Return values |
**System Table**: `FUNCTIONS`
### getFunctionPrams(db, funcOid)
Returns function parameters.
**Returns**:
| Field | Description |
|-------|-------------|
| PARAMETER_NAME | Parameter name |
| DATA_TYPE_NAME | Data type |
| PARAMETER_TYPE | IN/OUT/INOUT |
**System Table**: `FUNCTION_PARAMETERS`
### getFunctionPramCols(db, funcOid)
Returns function parameter columns.
---
## Utility Functions
### getDef(db, schema, Id)
Returns object creation statement.
**System Procedure**: `GET_OBJECT_DEFINITION`
### getGeoColumns(db, object, field, type)
Returns SRS_ID for spatial geometry columns.
### formatCDS(db, object, fields, constraints, type, schema, parent, parameters)
Formats database object as CDS entity.
**Features**:
- Type mapping (HANA to CDS)
- Name normalization
- Constraint handling
- Parameter support
### parseSQLOptions(output, cdsSource)
Extracts extended SQL syntax via regex:
- PARTITION clauses
- UNLOAD PRIORITY
- AUTO MERGE settings
---
## System Tables Summary
| Table | Purpose |
|-------|---------|
| `M_DATABASE` | Version info |
| `TABLES` | Table metadata |
| `TABLE_COLUMNS` | Column definitions |
| `VIEWS` | View metadata |
| `VIEW_COLUMNS` | View columns |
| `VIEW_PARAMETERS` | View input params |
| `PROCEDURES` | Procedure metadata |
| `PROCEDURE_PARAMETERS` | Procedure params |
| `PROCEDURE_PARAMETER_COLUMNS` | Table-type columns |
| `FUNCTIONS` | Function metadata |
| `FUNCTION_PARAMETERS` | Function params |
| `_SYS_BI.BIMC_REPORTABLE_VIEWS` | Calc view detection |
| `_SYS_BI.BIMC_DIMENSION_VIEW` | Calc view fields |
| `_SYS_BI.BIMC_VARIABLE_VIEW` | Calc view variables |
---
*Reference: [https://github.com/SAP-samples/hana-developer-cli-tool-example/blob/main/utils/dbInspect.js*](https://github.com/SAP-samples/hana-developer-cli-tool-example/blob/main/utils/dbInspect.js*)