OceanBase logo

OceanBase

A unified distributed database ready for your transactional, analytical, and AI workloads.

DEPLOY YOUR WAY

OceanBase Cloud

The best way to deploy and scale OceanBase

OceanBase Enterprise

Run and manage OceanBase on your infra

TRY OPEN SOURCE

OceanBase Community Edition

The free, open-source distributed database

OceanBase seekdb

Open source AI native search database

Customer Stories

Real-world success stories from enterprises across diverse industries.

View All
BY USE CASES

Mission-Critical Transactions

Global & Multicloud Application

Elastic Scaling for Peak Traffic

Real-time Analytics

Active Geo-redundancy

Database Consolidation

Resources

Comprehensive knowledge hub for OceanBase.

Blog

Live Demos

Training & Certification

Documentation

Official technical guides, tutorials, API references, and manuals for all OceanBase products.

View All
PRODUCTS

OceanBase Cloud

OceanBase Database

Tools

Connectors and Middleware

QUICK START

OceanBase Cloud

OceanBase Database

BEST PRACTICES

Practical guides for utilizing OceanBase more effectively and conveniently

Company

Learn more about OceanBase – our company, partnerships, and trust and security initiatives.

About OceanBase

Partner

Trust Center

Contact Us

International - English
中国站 - 简体中文
日本 - 日本語
Sign In
Start on Cloud

A unified distributed database ready for your transactional, analytical, and AI workloads.

DEPLOY YOUR WAY

OceanBase Cloud

The best way to deploy and scale OceanBase

OceanBase Enterprise

Run and manage OceanBase on your infra

TRY OPEN SOURCE

OceanBase Community Edition

The free, open-source distributed database

OceanBase seekdb

Open source AI native search database

Customer Stories

Real-world success stories from enterprises across diverse industries.

View All
BY USE CASES

Mission-Critical Transactions

Global & Multicloud Application

Elastic Scaling for Peak Traffic

Real-time Analytics

Active Geo-redundancy

Database Consolidation

Comprehensive knowledge hub for OceanBase.

Blog

Live Demos

Training & Certification

Documentation

Official technical guides, tutorials, API references, and manuals for all OceanBase products.

View All
PRODUCTS
OceanBase CloudOceanBase Database
ToolsConnectors and Middleware
QUICK START
OceanBase CloudOceanBase Database
BEST PRACTICES

Practical guides for utilizing OceanBase more effectively and conveniently

Learn more about OceanBase – our company, partnerships, and trust and security initiatives.

About OceanBase

Partner

Trust Center

Contact Us

Start on Cloud
编组
All Products
    • Databases
    • iconOceanBase Database
    • iconOceanBase Cloud
    • iconOceanBase Tugraph
    • iconInteractive Tutorials
    • iconOceanBase Best Practices
    • Tools
    • iconOceanBase Cloud Platform
    • iconOceanBase Migration Service
    • iconOceanBase Developer Center
    • iconOceanBase Migration Assessment
    • iconOceanBase Admin Tool
    • iconOceanBase Loader and Dumper
    • iconOceanBase Deployer
    • iconKubernetes operator for OceanBase
    • iconOceanBase Diagnostic Tool
    • iconOceanBase Binlog Service
    • Connectors and Middleware
    • iconOceanBase Database Proxy
    • iconEmbedded SQL in C for OceanBase
    • iconOceanBase Call Interface
    • iconOceanBase Connector/C
    • iconOceanBase Connector/J
    • iconOceanBase Connector/ODBC
    • iconOceanBase Connector/NET
icon

OceanBase Database

SQL - V4.3.3

  • What's New
  • What is OceanBase Database
    • Overview
    • Differences between Enterprise Edition and Community Edition
    • System architecture
    • Compatibility with Oracle
      • Overview
      • SQL data types
      • Built-in functions
      • System views
    • Compatibility with MySQL
    • Limitations
  • Get Started
    • Quick start with OceanBase Database Community Edition
    • Learn OceanBase SQL
      • Before you begin
      • Basic SQL operations (MySQL mode)
      • Basic SQL operations (Oracle mode)
    • Build a sample application (Oracle mode)
      • Build a Java application
      • Build a C application
    • Build a sample application (MySQL mode)
      • Build a Python application
      • Build a Java application
      • Build a C application
      • Build a Go application
    • Try out advanced features of OceanBase Database
      • Scalable OLTP
        • Run the TPC-C benchmark in OceanBase Database
        • Try out the hot row update capability of OceanBase Database
      • Try out operational OLAP
      • Try out parallel import and data compression
      • Try out the multi-tenant feature
    • Video tutorial
  • Develop
    • Develop applications (MySQL mode)
      • Connect to OceanBase Database
        • Overview
        • Connect to an OceanBase tenant by using the mysql client
        • Connect to an OceanBase tenant by using OBClient
        • Connect to OceanBase Database by using ODC
        • Connect to OceanBase Database by using DBeaver
        • Connect to OceanBase Database by using Navicat
        • Use database connection pool
          • Database connection pool configuration
          • Tomcat
          • c3p0
          • Proxool
          • HikariCP
          • DBCP
          • Commons Pool
          • Druid
          • Configuration example of JDBC connections
      • Sample applications
        • Java
          • Spring Boot
          • Spring Batch
          • Spring Data JDBC
          • Spring Data JPA
          • Connect to OceanBase Database by using Hibernate
          • MyBatis
          • Connector/J
          • TestContainers
        • Python
          • mysqlclient
          • PyMySQL
          • MySQL-connector-python
        • C
          • MySQL Connector/C
        • Go
          • Go-SQL-Driver/MySQL
          • GORM
        • PHP
          • EXT
          • MySQLi
          • PDO
      • Plan database objects
        • Create a database
        • Create a table group
        • Create a table
        • Create an index
        • Create an external table
      • Write data
        • Insert data
        • Update data
        • Delete data
        • Replace data
        • Generate test data in batches
      • Read data
        • Single-table queries
        • Join tables
          • INNER JOIN queries
          • FULL JOIN queries
          • LEFT JOIN queries
          • RIGHT JOIN queries
          • Subqueries
          • Lateral derived table
        • Use operators and functions in queries
          • Use arithmetic operators in queries
          • Use numerical functions in queries
          • Use string concatenation operators in queries
          • Use string functions in queries
          • Use datetime functions in queries
          • Use type conversion functions in queries
          • Use aggregate functions in queries
          • Use NULL-related functions in queries
          • Use the CASE conditional operator in queries
          • Use the SELECT ... FOR UPDATE statement to lock query results
          • Use the SELECT ... LOCK IN SHARE MODE statement to lock query results
        • Use a DBLink in queries
        • Set operations
      • Transactions
        • Overview
        • Start a transaction
        • Savepoints
          • Mark a savepoint
          • Roll back a transaction to a savepoint
          • Release a savepoint
        • Commit a transaction
        • Roll back a transaction
      • Application errors
        • Troubleshooting guidelines
          • About error codes
          • Error handling specifications for MySQL-compatible applications
        • Common errors and troubleshooting practices
          • Disconnected from the server, with ERROR 2013 reported
          • Idle transaction timed out, with ERROR 6002 reported
          • Transaction timed out, with ERROR 4012 reported
          • User locked, with ERROR 3118 reported
          • Incorrect user password, with ERROR 1045 reported
          • Table already exists, with ERROR 1050 reported
          • Table does not exist, with ERROR 1146 reported
          • Duplicate data inserted, with ERROR 1062 reported
          • ERROR 1215 reported in foreign key addition
          • Data truncated while being inserted, with ERROR 1265 reported
    • Develop applications (Oracle mode)
      • Connect to OceanBase Database
        • Overview
        • Connect to an OceanBase tenant by using OBClient
        • Connect to OceanBase Database by using ODC
        • Use database connection pool
          • Database connection pool configuration
          • Tomcat
          • c3p0
          • Proxool
          • HikariCP
          • DBCP
          • Commons Pool
          • Druid
      • Sample applications
        • Java
          • OceanBase Connector/J
          • Spring Boot
          • Spring Batch
          • Spring Data JDBC
          • Spring Data JPA
          • Hibernate
          • MyBatis
          • JFinal
        • C/C++
          • OceanBase Connector/C
          • OceanBase Connector/ODBC
          • SqlSugar
      • Plan database objects
        • Create a table group
        • Create a table
        • Create an index
        • Create an external table
      • Write data
        • Insert data
        • Update data
        • Delete data
        • Replace data
        • Generate test data in batches
      • Read data
        • Single-table queries
        • Join tables
          • INNER JOIN queries
          • FULL JOIN queries
          • LEFT JOIN queries
          • RIGHT JOIN queries
          • Subqueries
          • Lateral derived tables
        • Use operators and functions in queries
          • Use arithmetic operators in queries
          • Use numerical functions in queries
          • Use string concatenation operators in queries
          • Use string functions in queries
          • Use datetime functions in queries
          • Use type conversion functions in queries
          • Use aggregate functions in queries
          • Use NULL-related functions in queries
          • Use CASE functions in queries
          • Use the SELECT...FOR UPDATE statement to lock query results
        • Use a DBLink in queries
        • Set operations
      • Transactions
        • Overview
        • Start a transaction
        • Savepoints
          • Mark a savepoint
          • Roll back a transaction to a savepoint
        • Commit a transaction
        • Roll back a transaction
      • Application errors
        • Troubleshooting guidelines
          • About error codes
          • Error handling specifications for Oracle-compatible applications
        • Common errors and troubleshooting practices
          • Idle transaction timed out, with Error OBE-24761 reported
          • Transaction timed out, with Error OBE-00600 reported
          • User locked, with ERROR 3118 reported
          • Incorrect user password, with ERROR 1045 reported
          • Table already exists, with Error OBE-00955 reported
          • Table does not exist, with Error OBE-04043 reported
          • Duplicate data inserted, with Error OBE-00001 reported
          • Error OBE-00600 reported in foreign key addition
          • Inconsistent data types, with Error OBE-00932 reported
  • Deploy
    • Overview
    • HA deployment solutions for OceanBase clusters
    • Deploy OceanBase Database Enterprise Edition
      • Deployment process
      • Before deployment
        • Prepare servers
        • Configure servers
        • Prepare installation packages
        • Deploy OAT
      • Deploy through GUI
        • Configure deployment environment using OAT
          • Add a server
        • Deploy OCP
          • Overview
          • Upload installation packages
          • Create MetaDB
          • Deploy OCP
        • Deploy OceanBase clusters using OCP
          • Deploy a standalone OceanBase database by using OCP
          • Deploy a two-replica OceanBase cluster with the arbitration service by using OCP
          • Deploy a single-replica OceanBase cluster by using OCP
          • Deploy a three-replica OceanBase cluster by using OCP
        • (Optional) Deploy ODP
      • Deploy through CLI
        • Configure deployment environment
          • Initialize an OBServer node by using oatcli
          • (Optional) Configure the clock source
        • Deploy OceanBase clusters using CLI
          • Deploy a standalone OceanBase database by using the CLI
          • Deploy a two-replica OceanBase cluster with the arbitration service by using the CLI
          • Deploy a single-replica OceanBase cluster by using the CLI
          • Deploy a three-replica OceanBase cluster by using the CLI
        • (Optional) Deploy ODP
    • Deploy OceanBase Database Community Edition
      • Overview
      • Deploy locally
        • Software and hardware requirements
        • Before deployment
          • (Optional) Check resources
          • (Optional) Set password-free SSH login
          • (Optional) Configure the clock source
          • (Optional) Perform disk planning
          • (Optional) Configure limits.conf
          • (Optional) Configure sysctl.conf
          • (Optional) Disable the firewall and SELinux
          • (Optional) Create a user
        • Deploy through GUI
          • Deploy an OceanBase cluster through the GUI of obd
          • Deploy an OceanBase cluster through the GUI of OCP
        • Deploy OceanBase Database in a production environment using the command line
        • Deploy OceanBase Database by using systemd
      • Deploy an OceanBase cluster in a Kubernetes environment
    • Clear an OceanBase cluster
    • Recommended configurations
  • Migrate
    • Overview
    • Migrate from MySQL databases to OceanBase Database
      • Use OMS to migrate data from a MySQL database to a MySQL tenant of OceanBase Database
      • Use mydumper and myloader to migrate data from a MySQL database to OceanBase Database
      • Use DBCAT to migrate schemas from a MySQL database to OceanBase Database
      • Use DataX to migrate table data from a MySQL database to OceanBase Database
      • Use CloudCanal to migrate data from a MySQL database to OceanBase Database
      • Use Canal to synchronize data from a MySQL database to OceanBase Database
      • Use Flink CDC to synchronize data from a MySQL database to OceanBase Database
      • Use ChunJun to migrate data from a MySQL database to OceanBase Database
    • Migrate from OceanBase Database to MySQL databases
      • Use OMS to migrate data from a MySQL tenant of OceanBase Database to a MySQL database
      • Use OMS to migrate incremental data from an Oracle tenant of OceanBase Database to a MySQL database
      • Use DBCAT to migrate schemas from OceanBase Database to a MySQL database
      • Use DataX to migrate table data from OceanBase Database to a MySQL database
      • Use Canal to synchronize data from OceanBase Database to a MySQL database
      • Use CloudCanal to migrate data from OceanBase Database to a MySQL database
      • Use Flink CDC to migrate data from OceanBase Database to a MySQL database
      • Use ChunJun to migrate data from OceanBase Database to a MySQL database
    • Migrate from Oracle databases to OceanBase Database
      • Use OMS to migrate data from an Oracle database to a MySQL tenant of OceanBase Database
      • Use OMS to migrate data from an Oracle database to an Oracle tenant of OceanBase Database
      • Use DBCAT to migrate schemas from an Oracle database to OceanBase Database
      • Use DataX to migrate table data from an Oracle database to OceanBase Database
    • Migrate from OceanBase Database to Oracle databases
      • Use OMS to migrate data from an Oracle tenant of OceanBase Database to an Oracle database
      • Use DBCAT to migrate schemas from OceanBase Database to an Oracle database
      • Use DataX to migrate table data from OceanBase Database to an Oracle database
    • Migrate from DB2 databases to OceanBase Database
      • Use OMS to migrate data from a DB2 LUW database to a MySQL tenant of OceanBase Database
      • Use OMS to migrate data from a DB2 LUW database to an Oracle tenant of OceanBase Database
      • Use DBCAT to migrate table schemas from a DB2 LUW database to OceanBase Database
    • Migrate from OceanBase Database to DB2 databases
      • Use OMS to migrate data from a MySQL tenant of OceanBase Database to a DB2 LUW database
      • Use OMS to migrate data from an Oracle tenant of OceanBase Database to a DB2 LUW database
    • Migrate from TiDB databases to OceanBase Database
      • Use OMS to migrate data from a TiDB database to a MySQL tenant of OceanBase Database
    • Migrate from PostgreSQL databases to OceanBase Database
      • Use OMS to migrate data from a PostgreSQL database to a MySQL tenant of OceanBase Database
    • Migrate from CSV files to OceanBase Database
      • Use DataX to migrate CSV files to OceanBase Database
      • Import data by using the LOAD DATA statement
    • Import data from SQL files to OceanBase Database
    • Migrate data between OceanBase Database
      • Use OMS to migrate data from an OceanBase tenant to another of the same type
      • Use OMS to migrate data from an OceanBase tenant to another of the same type in active-active disaster recovery scenarios
      • Use obloader & obdumper to migrate data between MySQL tenants in OceanBase Database
      • Use obloader & obdumper to migrate data from a MySQL tenant to an Oracle tenant in OceanBase Database
      • Use obloader & obdumper to migrate data between Oracle tenants in OceanBase Database
      • Use obloader & obdumper to migrate data from an Oracle tenant to a MySQL tenant in OceanBase Database
    • Migrate data using SQL statements
      • Migrate data between tables
      • Migrate resource units
      • Export data by using the SELECT INTO OUTFILE statement
    • Direct load
      • Overview
      • Full direct load
      • Incremental direct load
      • Import data in direct load mode by using :obloader
  • Manage
    • Log in to an OceanBase tenant
    • Manage clusters
      • Overview
      • Cluster parameters
      • Common cluster operations
        • View a zone
        • View a node
        • Restart a node
        • Add a node
        • Delete a node
        • Isolate a node
        • Replace a node
        • Add a zone
        • Start a zone
        • Delete a zone
        • Modify a zone
        • Isolate a zone
        • View cluster parameters
        • Modify cluster parameters
        • Reset a cluster parameter
        • Online upgrade from standalone deployment to distributed deployment
        • Upgrade a cluster
          • OceanBase Database Enterprise Edition
            • Overview
            • Upgrade an arbitration service
            • Upgrade an OceanBase cluster
            • Check upgrade results
          • OceanBase Database Community Edition
            • Upgrade OceanBase Database by using obd
      • Troubleshoot common problems
        • Failures of a minority of nodes
        • Failures of the majority of nodes
    • Manage tenants
      • Tenant introduction
      • Tenant capacity
      • Tenant types
      • User tenant introduction
      • Tenant system variables
      • Common tenant operations
        • Create a tenant
        • Resource isolation
          • Overview
          • Manage resource isolation (Oracle mode)
            • Configure cgroups
            • Configure global CPU resource isolation for frontend and backend tasks
            • Calibrate the disk performance
            • Configure resource isolation within a tenant
            • Update a plan directive
            • Delete a plan directive
            • Delete a resource management plan
            • Delete a resource group
            • Clear cgroup configurations
          • Manage resource isolation (MySQL mode)
            • Configure cgroups
            • Configure global CPU resource isolation for foreground and background tasks
            • Calibrate the disk performance
            • Configure resource isolation within a tenant
            • Update a plan directive
            • Delete a plan directive
            • Delete a resource management plan
            • Delete a resource group
            • Clear cgroup configurations
        • View tenant and resource information
        • View and set the tenant allowlist
        • View system variables of a tenant
        • Modify system variables of a tenant
        • Scale in/out
          • Introduction to scaling in/out
          • Plan resources
          • Modify the unit config for a tenant
          • Modify the number of resource units for a tenant
          • Modify the number of primary zones for a tenant
        • Modify attributes of a resource pool
        • Modify attributes of a tenant
        • Lock and unlock a tenant
        • Clone a tenant
        • Cancel tenant cloning
        • Drop a tenant
        • Restore a tenant
        • Rename a tenant
        • Manage resource pools
          • View resource pool information
          • Allocate a resource pool to a tenant
          • Remove resource pools from a tenant
          • Merge and split resource pools
          • Drop a resource pool
        • Manage unit configs
          • Query unit configs
          • Modify a unit config
          • Drop a unit config
        • Manage services
          • Create a service
          • Query the service status
          • Start a service
          • Stop a service
          • Delete a service
    • Manage replicas
      • Overview
      • Replica distribution
        • Locality
        • Common locality operations
          • View locality
          • Modify locality
          • Add replicas
          • Remove replicas
          • Convert the type of a replica
          • Adjust the distribution of replicas
          • View the locality change history
          • Migrate replicas
          • Modify the number of Paxos replicas of a log stream
          • Cancel a replica task
      • Traffic distribution
      • Data distribution
      • Data load balancing
        • Overview
        • Transfer a partition
        • Cancel a partition transfer task
        • Cancel a load balancing job
    • High availability
      • High availability overview
      • Multi-replica disaster recovery
        • Data link introduction
        • ODP high availability
        • Database-level high availability
        • Disaster recovery architecture and levels
      • Physical standby database disaster recovery
        • Overview
        • Limitations
        • Create a standby tenant
          • Preparations
          • Create an empty standby tenant
          • Create a standby tenant by using the backup and restore (with complete logs) feature
          • Create a standby tenant by using the BACKUP DATABASE PLUS ARCHIVELOG feature
        • Log transmission service
          • Overview
          • Configure log transmission service
            • Specify a log restore source
            • Specify a log restore endpoint
          • View log restore source information
          • View the log synchronization progress
          • Pause or resume log synchronization
          • Optimize the log synchronization performance
          • Set the log synchronization bandwidth limit
          • Specify log compression
        • Log storage service
        • Switch roles
          • Overview of tenant roles
          • Switchover
          • Failover
        • Drop primary and standby tenants
      • Arbitration high availability
        • Overview
        • Enable the arbitration service for a tenant
        • Disable the arbitration service for a tenant
        • Modify the log stream downgrade control time
        • Query log stream upgrade/downgrade information
        • Replace the arbitration service for a cluster
        • Remove the arbitration service for a cluster
        • Clear residual cluster information
      • Manage recycle bin
        • Overview
        • Enable or disable the recycle bin
        • View objects in the recycle bin
        • Restore objects from the recycle bin
        • Purge the recycle bin
      • Flashback queries
    • Security and permissions
      • Overview
      • Identification and authentication
        • MySQL mode
          • Identity authentication
          • Password complexity
          • Login failure processing
        • Oracle mode
          • Identity authentication
          • Password complexity
          • Login failure processing
      • Access control
        • Overview
        • Users and permissions
          • Overview
          • MySQL mode
            • Privilege types in MySQL mode
            • Create a user
            • Grant direct privileges
            • Privilege delegation
            • Role management
              • Overview
              • Create a role
              • Grant privileges to a role
              • Grant a role to a user or another role
              • Activate a role
              • View roles
              • Revoke privileges from a role
              • Revoke a role from a user or another role
              • Drop a role
            • Grant indirect privileges
            • View user privileges
            • Revoke privileges
            • Lock or unlock a user
            • Drop a user
          • Oracle mode
            • Privilege types in Oracle mode
            • Create a user
            • View the information of a user
            • Grant direct privileges
            • Privilege delegation
            • Manage roles
              • Overview
              • Create a role
              • Grant a role to another role
              • Grant a role to a user
              • Activate or deactivate roles for a user
              • View roles
              • Modify a role
              • Revoke a role
              • Drop a role
            • Grant indirect privileges
            • View user privileges
            • Revoke privileges
            • Use a proxy user
            • Lock or unlock a user
            • Drop a user
        • Network security access control
        • Row-level access control
        • RPC connection authentication
      • Data transmission encryption
        • Overview
        • OBServer transmission encryption
        • ODP transmission encryption
      • Transparent data encryption
        • Overview
        • MySQL mode
          • Enable TDE for new tables
          • Enable TDE for existing tables
          • Decrypt a table
        • Oracle mode
          • Enable TDE for new tables
          • Enable TDE for existing tables
          • Decrypt a table
      • Security audit
        • Overview
        • Enable security audit
        • Set and view audit rules
        • View audit records
        • Audit user login operations
        • Audit user operations
        • Audit specified database objects
    • Backup and restore
      • Overview of physical backup and restore
      • Experience physical backup and restore with simplified deployment
      • Deploy NFS
      • Log archive
        • Overview
        • Preparations
        • Enable ARCHIVELOG
        • Suspend archiving
        • Disable ARCHIVELOG
        • View information about pieces
        • View the archiving progress
        • View the archiving history
        • View archiving parameter settings
        • Change the log archive destination
        • Clear the archive path setting
        • Views related to log archiving
      • Data backup
        • Preparations
        • Initiate a full data backup job
        • Initiate an incremental data backup job
        • Stop a backup job
        • View the data backup progress
        • View the data backup history
        • View data backup parameter settings
        • Change the backup destination
        • Views related to data backup
      • Clear backup data
        • Automatic cleanup of expired backups
        • Stop backup cleanup
        • Query the backup cleanup progress
        • Query the backup cleanup history
        • Backup cleanup parameter
        • Views related to backup cleanup
      • Restore data
        • Preparations
        • Perform physical restore
        • Perform restore from the specified paths
        • Cancel physical restore
        • View the physical restore progress
        • View physical restore results
        • Replay logs to a standby tenant
        • Convert a standby tenant into primary tenant
        • Upgrade a tenant after restore
        • Parameters related to physical restore
        • Views related to physical restore
      • Restore by table
        • Preparations
        • Perform table restore
        • Cancel table restore
        • View the table restore progress
        • View the table restore result
        • Parameters related to table restore
        • Views related to table restore
    • Monitor
      • Overview
      • Metrics
        • System monitoring
          • Overview
          • Metrics
          • Wait events
          • Latch events
        • SQL monitoring
          • Overview
          • SQL audit
          • Execution plans
      • Cases
    • Logs
      • Overview
      • Log levels
      • Log stability
      • Log control
      • Log compression and decompression
      • Log metrics
      • Alert logs
      • View logs
        • Search for the logs of a specific SQL request
        • Query the log of a previous SQL request by using the SQL Trace feature
    • Performance tuning
      • Overview
      • Identify bottlenecks on the data link
      • Identify bottlenecks within components
        • ODP performance bottlenecks
        • ODP performance analysis
        • OBServer performance bottlenecks
          • Overview
          • Non-optimal plan
            • Non-optimal plan
            • Buffer tables
            • Cardinality
          • Hard parsing
          • Capacity issues
          • Internal wait events
      • SQL tuning
        • SQL tuning system
        • Execution plan optimization
          • Statistical information and row estimation
            • Overview
            • Statistical information
              • Overview
              • Collect statistical information
                • Overview
                • Manually collect statistics
                • Automatic statistics collection
              • Query statistics
              • Manage statistical information
                • Overview
                • Delete and set statistics
                • Import and export statistics
                • Lock statistics
                • Query historical versions of statistics and roll back to a specified version
                • Configure statistics collection strategies
            • Row estimation
              • Overview
              • Row estimation based on the selectivity
              • Row estimation based on the storage layer
            • Use statistical information and row estimation
          • Plan management
            • Plan cache
            • Disadvantages of the plan cache and countermeasures
            • Views related to the plan cache
          • Index selection
            • Overview
            • Reduce row reads
            • Avoid table access by index primary key
            • Avoid sorting
          • Join order and join algorithm
            • Joins
            • Join algorithm
              • Nested loop joins
              • Hash joins
              • Merge joins
              • Common business issues
            • Join types
            • Join order
          • Order and limit optimization
            • Overview
            • SORT assignment and optimization
            • Optimization in ORDER BY + LIMIT scenarios
        • Business logic optimization
          • SQL specifications
          • Schema specifications
        • Locate and analyze slow queries I
        • Locate and analyze slow queries II
        • Typical scenarios and cases
    • Daily inspection
      • Overview
      • Check cluster parameters
      • Check the host status
      • Check tenant resource usage
      • Check cluster resource usage
      • Check the OBServer node status
      • Check the NTP offset
      • Deadlock detection
      • End-to-end tracing
        • Overview
        • Process
        • Methods
        • Show end-to-end tracing information
        • Quick start: End-to-end diagnosis with obdiag
    • Troubleshooting
      • Overview
      • Bootstrap
      • Storage
        • Minor compaction and major compaction
        • Memory-related errors
        • Migration, replication, and rebuild tasks
      • Election
        • Election
        • Leader switchover exceptions
        • Absence of the leader
      • Transaction
        • Transaction-related errors
        • Transaction rollbacks
        • Long-running transactions
        • Suspended transactions
        • Idle transactions
      • Log synchronization-related errors
      • Physical standby database
        • Log synchronization stuck for the physical standby database
        • Switchover and failover issues
        • Other issues
      • Backup and restore
        • Data backup failures
        • Physical restore failures
      • Arbitration server process startup failures
      • Troubleshoot SQL execution errors
      • Application exception -- error message does not contain OceanBase error code
      • Application exception -- error message contains OceanBase error code
    • Emergency response
      • Emergency response overview
      • Analysis, diagnosis, and decision-making procedure
      • Common emergency problem handling
        • Hardware issues
          • Node failure
          • Network failure
          • ODP failure
          • Other hardware and network issues
        • Capacity issues
          • Exceptions of SQL queries
          • Node disk I/O high
          • Node network card overload
          • Tenant memory full
          • obproxy thread exhaustion
          • Node clog disk full
          • Node data disk full
          • Tenant request queue backlog
        • Other cluster issues
          • sys tenant or RootService exceptions
          • Insufficiency or leakage of system memory
  • OceanBase AP
    • Overview
    • Core features
    • Deployment
      • Overview
      • Recommended parameter configurations for AP scenarios
    • Get started with OceanBase AP
    • Data table design
      • Overview
      • Data distribution
      • Best practices
    • Import data
      • Overview
      • Strategies and best practices
      • ETL acceleration
    • Export data
    • Query acceleration
      • Statistics
      • Materialized views
      • Hints
      • Auto DOP
      • Full direct load
      • Table groups
      • Hybrid row-column storage
    • Performance diagnosis and tuning
      • Use the DBMS_XPLAN package for performance diagnostics
      • Use the GV$SQL_PLAN_MONITOR view for performance analysis
      • Views related to AP performance analysis
    • Performance test
      • TPC-H benchmark
      • TPC-H benchmark report
      • TPC-DS benchmark
      • TPC-DS benchmark report
    • Ecosystem integration
  • Vector Search
    • Overview
      • Overview
      • Vector search core features
    • Quick start
      • Use SQL for quick vector search
      • Use Python for vector retrieval
    • Generate vector embeddings
    • Store vector embeddings
    • Create a vector index
    • Use SQL functions
    • Tutorial
      • Overview
    • Reference
      • Overview
      • FAQ about vector search
  • OBKV
    • Overview
    • Architecture
    • OBKV-Table
      • Introduction
        • Overview
        • OBKV-Table operation types
        • Differences between replace and insert_or_update
        • Supported value types
        • OBKV-Table data models
      • Use the OBKV-Table Java client
        • Use the OBKV-Table Java client to connect to a cluster
        • Set client parameters
        • Supported client interfaces
        • Use the OBKV-Table Java client
      • Use the OBKV-Table GO client
        • Use the OBKV-Table Go client to connect to a cluster
        • Overview of the Go client
        • Individual API operations
        • Batch operations
        • About queries
        • Aggregation API
        • Filters
      • FAQ
    • OBKV-HBase
      • Overview
      • Core features
      • Compatibility with HBase
      • Deployment
      • Use OBKV-HBase
        • Overview
        • Data model
        • Data model design
        • Connect to a cluster by using the OBKV-HBase client
        • Data operation examples
        • Delete expired data
      • OBKV-HBase management
        • Overview
        • High availability
        • Security and permissions
        • Monitoring metrics
      • Performance test
      • OBKV-HBase integration
        • Synchronize data to OBKV-HBase by using Flink
      • Views
      • FAQ
  • Tutorials
    • Build an image search application with OceanBase Database
    • Build an intelligent Q&A robot with OceanBase Database
    • Build an offline data warehouse and a visual dashboard with OceanBase Database
  • Reference
    • OceanBase concepts
      • Architecture of OceanBase Database
      • Development of OceanBase Database
      • Multi-tenant architecture
        • Overview
        • Compatibility modes
        • Tenants
        • Tenants and resource management
          • Tenant resource management
          • Multi-tenant resource isolation
          • Resource unit balancing
      • Database objects
        • Oracle mode
          • Introduction
            • Overview
            • Database object types
            • Database object storage
            • Dependencies between database objects
          • Tables
            • Overview
            • Data type
              • Overview
              • Character data types
              • Numeric data types
              • Datetime data types
              • ROWID data types
              • LOB data types
              • Multi-model data types
              • Format model
                • Overview
                • Number format models
                • Datetime format models
            • Integrity constraints
            • Table storage
            • Table compression
            • Partitioned table
            • Replicated table
            • Tables with and without a primary key
            • Temporary table
          • Indexes
            • Overview
            • Local and global indexes
            • Unique and non-unique indexes
            • Use indexes
            • Index storage
          • Partitions
            • Overview
            • Partitioning keys
            • Partitioning types
            • Partitioned indexes
            • External table partitions
          • Views
            • Views in a database
            • Standard views
              • Standard views
              • Overview
              • OceanBase-specific views
              • Oracle-compatible views
              • View operations and data access
            • Materialized views
              • Materialized views
              • Materialized view logs
              • Creation and update strategies for materialized views
          • Other objects
            • Sequences
            • Synonym
          • System views
            • Dictionary views
            • Performance views
          • Data integrity
            • Overview
            • Integrity constraint type
              • Overview
              • NOT NULL constraints
              • UNIQUE KEY constraints
              • PRIMARY KEY constraints
              • FOREIGN KEY constraints
              • CHECK constraints
            • Use of integrity constraints
        • MySQL mode
          • Introduction
            • Overview
            • Database object types
            • Database object storage
            • Dependencies between database objects
          • Tables
            • Overview
            • Data type
              • Overview
              • Numeric data types
              • Datetime data types
              • Character data types
              • LOB data types
              • Multi-model data types
              • Spatial data types
              • JSON data types
            • Integrity constraints
            • Table storage
            • Table compression
            • Partitioned table
            • Replicated table
            • Tables with and without a primary key
          • Indexes
            • Overview
            • Local and global indexes
            • Unique and non-unique indexes
            • Spatial indexes
            • Full-text index
            • Use indexes
            • Index storage
          • Partitions
            • Overview
            • Partitioning keys
            • Partitioning types
            • Partitioned indexes
            • External table partitions
          • Views
            • Views in a database
            • Standard views
              • Overview
              • Overview
              • OceanBase-specific views
              • MySQL-compatible views
              • Oracle-compatible views in MySQL tenants
              • Oracle-compatible views in the sys tenant
              • View operations and data access
            • Materialized views
              • Materialized views
              • Materialized view logs
              • Creation and update strategies for materialized views
          • System views
            • Dictionary views
            • Performance views
          • Data integrity
            • Overview
            • Integrity constraint type
              • Overview
              • NOT NULL constraints
              • UNIQUE KEY constraints
              • PRIMARY KEY constraints
              • FOREIGN KEY constraints
            • Use of integrity constraints
      • Distributed database objects
        • Overview
        • Architecture
        • Data partitions and replicas
          • Overview
          • Log streams
          • Partition replica type
            • Overview
            • Full-featured replica
            • Read-only replicas
            • Columnstore replica
          • Multi-replica consensus protocols
          • Data balancing
            • Intra-tenant balancing
            • Views and parameters related to data balancing
        • Dynamic scaling
          • Cluster scaling
          • Tenant resource scaling
            • Overview
            • Horizontal scaling of tenant resources
            • Vertical scaling of tenant resources
            • Cross-zone management of tenant resources
      • Data link
        • Overview
        • Database proxy
          • Overview
          • SQL routing
          • Connection management
          • ODP configuration management
          • Logs and monitoring
        • Database connector
          • Overview
          • OBCI
          • OceanBase Connector/J
          • OceanBase Connector/C
      • User interface and query language
        • SQL
          • Introduction
            • Overview
            • SQL data access
            • SQL standards
          • SQL statements
            • Overview
            • DDL statements
            • DML statements
            • DCL statements
          • Execution process of SQL queries
          • Query SQL execution plans
          • Distributed execution plan
            • Perform distributed execution and parallel queries
            • Generate distributed execution plans
            • Run and disable a parallel query
            • Manage distributed execution plans
            • Perform parameter tuning for PX
        • PL
          • PL concepts
            • Oracle mode
              • Subprograms
              • Stored procedures
              • Functions
              • Triggers
              • Packages
            • MySQL mode
              • Subprograms
              • Stored procedures
              • Functions
              • Triggers
          • PL subprogram execution mechanism
        • Client programming languages
      • Transaction management
        • Transaction
          • Overview
          • Transaction structure
          • Statement-level atomicity
          • GTS
          • Transaction control
            • Overview
            • Active transactions
            • Savepoint
            • Transaction control statements
              • MySQL transaction control
              • Oracle transaction control
          • Redo logs
          • Local transactions
          • Distributed transaction
            • Overview
            • Two-phase commit
          • XA transactions
        • Transaction concurrency and consistency
          • Overview
          • Multi-version read consistency
          • Concurrency control
            • Overview
            • Lock mechanism
          • Transaction isolation level
            • Overview
            • Transaction isolation levels in Oracle mode
            • Transaction isolation levels in MySQL mode
          • Weak-consistency read
      • Storage architecture
        • Overview
        • Data storage
          • Overview
          • MemTables
          • SSTables
          • Columnar storage
          • Compression and encoding
        • Compaction
          • Overview
          • Minor compaction
          • Major compaction
        • Multi-level caches
        • Query processing
        • Data integrity
          • Detect silent data corruption
      • Data reliability and high availability
        • High availability architecture
          • Overview
          • ODP high availability
          • Leader election in distributed systems
          • Multi-replica log synchronization
          • Paxos protocol
          • Automatic handling of node failures
        • Deployment solutions for disaster recovery
        • Data protection
          • Overview
          • Flashback queries
          • Recycle bin
        • Backup and restore
          • Overview
          • Backup directory structures
          • Backup architecture
          • Restore process
        • Arbitration-based high availability solution
        • Physical Standby Database solution
      • Database security
        • Overview
        • Authentication
        • Access control
        • Data transmission encryption
        • Data storage encryption
        • Monitoring and alerting
        • Security audit
      • OBServer node architecture
        • Structure of the OBServer node installation directory
        • Configuration file
        • observer thread model
          • Threads
          • Worker threads
          • Background threads
        • Logs
        • Memory management
          • Overview
          • Memory-related parameters
          • Memory-related views
          • Memory usage logs
          • Diagnose memory errors
    • System management
      • Configuration management
        • Overview
        • Set parameters
        • Set variables
      • Storage management
        • Minor compaction management
          • Overview
          • Automatically trigger a minor compaction
          • Manually initiate a minor compaction
          • View the minor compaction information
          • Modify minor compaction settings
        • Major compaction management
          • Overview
          • Automatically trigger a major compaction
          • Configure scheduled major compactions
          • Adaptive major compactions
          • Manually initiate a major compaction
          • View merge information
          • Manually control a major compaction
          • Modify major compaction settings
        • Data compression
          • Overview
          • Data encoding and compression
      • Memory management
        • Overview
        • Memory structure
        • Set the maximum memory for an OceanBase database
        • Manage internal system memory
        • Manage internal tenant memory
        • Manage the memory of the plan cache
        • Memleak-based regular memory leak diagnostics mechanism
        • Query memory usage information
        • Memory issues
      • Process management
        • Overview
        • Multi-tenant threads of OceanBase Database
        • View the thread status
        • Background threads of OceanBase Database
        • FAQ about multi-tenant threads
      • Disk management
        • Configure automatic scale-out of disk space for data files
    • Database object management
      • Overview
      • MySQL mode
        • Create and manage databases
          • Create a database
          • View databases
          • Modify a database
          • Drop a database
        • Create and manage tables
          • Overview
          • Create a table
          • Column skip index attribute
          • Define an auto-increment column
          • Define column constraints
          • Query tables
          • Modify a table
          • Empty a table
          • Drop a table
          • Lock a table
          • Create and manage external tables
            • Overview
            • Create an external table
            • Add partitions for an external table
            • Manage external files
        • Create and manage partitions
          • Overview
          • Create a partitioned table
          • Modify partitioning rules
          • Add a partition
          • Drop a partition
          • Truncate a partition
          • Partition pruning
          • Query data in specified partitions
          • Create indexes on partitioned tables
            • Overview
            • Local indexes
            • Global indexes
          • Exchange partitions
        • Create and manage table groups
          • Overview
          • Create a table group
          • Query information about a table group
          • Add tables to a table group
          • Modify the SHARDING attribute of a table group
          • Manage tables in a table group
          • Drop a table group
        • Create and manage indexes
          • Overview
          • Create an index
          • Query indexes
          • Monitor indexes
          • Drop an index
          • System functions supported for function-based indexes
          • System functions not supported for function-based indexes
        • Manage views
          • Manage standard views
          • Manage materialized views
            • Materialized views
              • Overview
              • Create a materialized view
              • Query materialized views
              • Drop a materialized view
              • Refresh a materialized view
              • Rewrite queries based on materialized views
            • Materialized view logs
              • Overview
              • Create a materialized view log
              • Drop a materialized view log
        • Create and manage sequences
          • Create a sequence
          • Query sequences
          • Reference a sequence
          • Modify a sequence
          • Drop a sequence
        • Create and manage triggers
          • Overview
          • Create a DML trigger
          • Query trigger information
          • Drop a trigger
        • Create and manage DBLinks
          • Create a DBLink
          • Query existing DBLinks
          • Manage DBLinks
          • Use a DBLink to access data in a remote database
          • Drop a DBLink
      • Oracle mode
        • Create and manage tables
          • Overview
          • Create a table
          • Column skip index attribute
          • Define column constraints
          • Query the definition of a table
          • Modify a table
          • Empty a table
          • Drop a table
          • Lock a table
          • Create and manage external tables
            • Overview
            • Create an external table
            • Add partitions for an external table
            • Manage external files
        • Create and manage partitions
          • Overview
          • Create a partitioned table
          • Modify partitioning rules
          • Rename a partition
          • Add a partition
          • Drop a partition
          • Truncate a partition
          • Partition pruning
          • Query data in specified partitions
          • Create indexes on partitioned tables
            • Overview
            • Local indexes
            • Global indexes
          • Exchange partitions
        • Create and manage table groups
          • Overview
          • Create a table group
          • Query information about a table group
          • Add tables to a table group
          • Modify the SHARDING attribute of a table group
          • Manage tables in a table group
          • Drop a table group
        • Create and manage indexes
          • Overview
          • Create an index
          • Query indexes
          • Monitor indexes
          • Drop an index
          • System functions supported for function-based indexes
          • System functions not supported for function-based indexes
        • Manage views
          • Manage standard views
          • Manage materialized views
            • Materialized views
              • Overview
              • Create a materialized view
              • Query materialized views
              • Drop a materialized view
              • Refresh a materialized view
              • Rewrite queries based on materialized views
            • Materialized view logs
              • Overview
              • Create a materialized view log
              • Drop a materialized view log
        • Manage sequences
        • Manage synonyms
        • Create and manage triggers
          • Overview
          • Create a DML trigger
          • Create an INSTEAD OF trigger
          • Create a composite trigger
          • Modify and drop a trigger
          • Disable or enable a trigger
          • Query trigger information
        • Manage directory objects
        • Create and manage DBLinks
          • Create a DBLink
          • Query existing DBLinks
          • Manage DBLinks
          • Use a DBLink to access data in a remote database
          • Use a DBLink to modify the data in a remote database
          • Drop a DBLink
          • Install and configure OCI
    • Database design specifications and practices
      • Object naming conventions
        • Overview
        • Tenant naming conventions
        • User naming conventions
        • Table naming conventions
        • Field naming conventions
        • Other naming conventions
      • Object structure design specifications
        • Field design
        • Table structure design
        • Partitioned table design
        • Index design
        • Other structural designs
      • Character set specifications
      • Database connection specifications
      • Comments
      • ORM conventions
      • Exception handling
    • SQL reference
      • SQL syntax
        • System tenants
          • Overview
          • ALTER SYSTEM
            • ACTIVATE STANDBY
            • ADD REPLICA
            • ADD RESTORE SOURCE
            • SET LOG_ARCHIVE_DEST
            • SET LOG_ARCHIVE_DEST_STATE
            • ARCHIVELOG
            • NOARCHIVELOG
            • ARBITRATION
            • BOOTSTRAP
            • BACKUP KEY
            • BACKUP
            • BALANCE TASK
            • CANCEL BACKUP
            • CANCEL BALANCE JOB
            • CANCEL CLONE
            • CANCEL DELETE BACKUP
            • CANCEL MIGRATE UNIT
            • CANCEL REPLICA TASK
            • CANCEL RESTORE
            • CANCEL RECOVER TABLE
            • CANCEL TRANSFER PARTITION
            • CLEAR RESTORE SOURCE
            • MAJOR and MINOR
            • MIGRATE REPLICA
            • MIGRATE UNIT
            • MODIFY PAXOS_REPLICA_NUM
            • MODIFY REPLICA
            • DELETE BACKUP POLICY
            • FLUSH PLAN CACHE
            • JOB
            • PARAMETER
            • SET LOG_RESTORE_SOURCE
            • RECOVER STANDBY
            • RECOVER STANDBY CANCEL
            • REMOVE REPLICA
            • REFRESH
            • RESTORE
            • RESTORE PREVIEW
            • RECOVER TABLE
            • SET DATA_BACKUP_DEST
            • SERVER
            • SWITCHOVER
            • THROTTLE
            • TRANSFER PARTITION
            • WASH MEMORY FRAGMENTATION
            • ZONE
          • ALTER RESOURCE POOL
          • ALTER RESOURCE TENANT
          • ALTER RESOURCE UNIT
          • ALTER TENANT
          • CREATE RESOURCE POOL
          • CREATE RESOURCE UNIT
          • CREATE TENANT
          • CREATE STANDBY TENANT
          • DROP RESOURCE POOL
          • DROP RESOURCE UNIT
          • DROP TENANT
          • SET DECRYPTION
          • SET ENCRYPTION
          • SHOW RESTORE PREVIEW
        • User tenants (MySQL mode)
          • Basic elements
            • Data types
              • Overview
              • Numeric types
                • Overview
                • Integer data types
                • Fixed-point data types
                • Floating-point data types
                • Bit value data type
              • Datetime types
                • Overview
                • DATE, DATETIME, and TIMESTAMP types
                • TIME type
                • YEAR type
              • String types
                • Overview
                • CHAR and VARCHAR
                • BINARY and VARBINARY
              • Large objects and text types
                • Overview
                • BLOB types
                • TEXT types
                • LOB types
              • ENUM type
              • SET type
              • JSON data types
                • Overview
                • Create a JSON value
                • Query and modify JSON values
                • Convert a JSON data type
                • Update partial JSON data
              • Spatial data types
                • Overview
                • SRS
                • Create a spatial column
                • Create a spatial index
                • Spatial data formats
              • Roaring bitmap data types
                • Overview
                • Create Roaring bitmap columns
              • Array data types
                • Overview of array element types
                • Create array columns
            • Expressions
              • Overview
              • Expression syntax
              • Convert data types in expression evaluation
            • Character set and collation
              • Overview
              • Character sets
              • Collations
              • Database-level character sets and collations
              • Table-level character sets and collations
              • Column-level character sets and collations
              • Character sets and collations for character expressions
              • Character sets and collations for client connection
            • Literals
              • Overview
              • Strings
              • Numbers
              • Datetime values
              • Bit values
              • Boolean values
              • NULLs
            • Schema object names
            • User-defined variables
            • Comments
          • Operators
            • Overview
            • Operator precedence
            • Arithmetic operators
            • Bitwise operators
            • Comparison operators
            • Logical operators
            • Assignment operators
            • Date and time operators
            • Concatenation operators
            • BINARY operator
            • CASE conditional operator
          • Sequence pseudocolumns
          • Functions
            • Overview
            • Single-row functions
              • Datetime functions
                • ADDDATE
                • CONVERT_TZ
                • CURDATE
                • CURRENT_DATE
                • CURRENT_TIME
                • CURRENT_TIMESTAMP
                • CURTIME
                • DATE
                • DATE_ADD
                • DATE_FORMAT
                • DATE_SUB
                • DATEDIFF
                • DAYOFMONTH
                • DAYOFWEEK
                • DAYOFYEAR
                • EXTRACT
                • FROM_DAYS
                • FROM_UNIXTIME
                • GET_FORMAT
                • HOUR
                • LAST_DAY
                • LOCALTIME
                • LOCALTIMESTAMP
                • MAKEDATE
                • MAKETIME
                • MICROSECOND
                • MINUTE
                • MONTH
                • MONTHNAME
                • NOW
                • PERIOD_ADD
                • PERIOD_DIFF
                • QUARTER
                • SEC_TO_TIME
                • SECOND
                • STR_TO_DATE
                • SUBDATE
                • SUBTIME
                • SYSDATE
                • TIME
                • TIME_FORMAT
                • TIME_TO_SEC
                • TIME_TO_USEC
                • TIMEDIFF
                • TIMESTAMP
                • TIMESTAMPADD
                • TIMESTAMPDIFF
                • TO_DAYS
                • TO_SECONDS
                • UNIX_TIMESTAMP
                • USEC_TO_TIME
                • UTC_DATE
                • UTC_TIME
                • UTC_TIMESTAMP
                • WEEK
                • WEEKDAY
                • WEEKOFYEAR
                • YEARWEEK
                • YEAR
                • ADDTIME
                • DAYNAME
                • DAY
              • String functions
                • ASCII
                • BIN
                • BIT_LENGTH
                • CHAR
                • CHAR_LENGTH
                • CHARACTER_LENGTH
                • CONCAT
                • CONCAT_WS
                • ELT
                • EXPORT_SET
                • FIELD
                • FIND_IN_SET
                • FORMAT
                • HEX
                • INSERT
                • INSTR
                • INT2IP
                • IP2INT
                • LCASE
                • LEFT
                • LENGTH
                • LOCATE
                • LOWER
                • LPAD
                • LTRIM
                • MAKE_SET
                • MID
                • OCT
                • OCTET_LENGTH
                • ORD
                • POSITION
                • QUOTE
                • REGEXP
                • REGEXP_INSTR
                • REGEXP_LIKE
                • REGEXP_REPLACE
                • REGEXP_SUBSTR
                • REPEAT
                • REPLACE
                • REVERSE
                • RIGHT
                • RLIKE
                • RPAD
                • RTRIM
                • SPACE
                • STRCMP
                • SUBSTR
                • SUBSTRING
                • SUBSTRING_INDEX
                • TRIM
                • UCASE
                • UNHEX
                • UPPER
                • WEIGHT_STRING
                • TO_BASE64
                • FROM_BASE64
                • SOUNDEX
              • Conversion functions
                • CAST
                • CONVERT
                • DECODE_TRACE_ID
                • SCN_TO_TIMESTAMP
                • TIMESTAMP_TO_SCN
              • Mathematical functions
                • ABS
                • ACOS
                • ASIN
                • ATAN
                • ATAN2
                • BIT_COUNT
                • CEIL
                • CEILING
                • CONV
                • COS
                • COT
                • CRC32
                • DEGREES
                • EXP
                • FLOOR
                • GENERATOR
                • LN
                • LOG
                • LOG10
                • LOG2
                • MOD
                • NEG
                • NORMAL
                • PI
                • POW
                • POWER
                • RADIANS
                • RAND
                • RANDOM
                • RANDSTR
                • ROUND
                • SIGN
                • SIN
                • SQRT
                • TAN
                • TRUNCATE
                • UNIFORM
                • ZIPF
              • Comparison functions
                • GREATEST
                • INTERVAL
                • ISNULL
                • LEAST
              • Process control functions
                • CASE
                • IF
                • IFNULL
                • NULLIF
                • ORA_DECODE
            • Aggregate functions
              • APPROX_COUNT_DISTINCT
              • AVG
              • BIT_AND
              • BIT_OR
              • BIT_XOR
              • COUNT
              • GROUP_CONCAT
              • GROUPING
              • MAX
              • MIN
              • STD
              • STDDEV
              • STDDEV_POP
              • STDDEV_SAMP
              • SUM
              • VAR_POP
              • VAR_SAMP
              • VARIANCE
            • Analysis functions
              • APPROX_COUNT_DISTINCT
              • AVG
              • BIT_AND
              • BIT_OR
              • BIT_XOR
              • COUNT
              • CUME_DIST
              • DENSE_RANK
              • FIRST_VALUE
              • LAG
              • LAST_VALUE
              • LEAD
              • MAX
              • MIN
              • NTH_VALUE
              • NTILE
              • PERCENT_RANK
              • RANK
              • ROW_NUMBER
              • STD
              • STDDEV
              • STDDEV_POP
              • STDDEV_SAMP
              • SUM
              • VAR_POP
              • VAR_SAMP
              • VARIANCE
            • Encryption functions
              • AES_DECRYPT
              • AES_ENCRYPT
              • COMPRESS
              • DECODE
              • DES_DECRYPT
              • DES_ENCRYPT
              • ENCODE
              • ENCRYPT
              • MD5
              • PASSWORD
              • UNCOMPRESS
              • UNCOMPRESSED_LENGTH
              • RANDOM_BYTES
              • SHA
              • SHA1
              • SHA2
              • VALIDATE_PASSWORD_STRENGTH
              • SM3
              • SM4_ENCRYPT
              • SM4_DECRYPT
            • Information functions
              • BENCHMARK
              • CHARSET
              • COERCIBILITY
              • COLLATION
              • CONNECTION_ID
              • CURRENT_ROLE
              • CURRENT_USER
              • DATABASE
              • FOUND_ROWS
              • LAST_INSERT_ID
              • ICU_VERSION
              • OB_TRANSACTION_ID
              • ROW_COUNT
              • SCHEMA
              • SESSION_USER
              • SYSTEM_USER
              • USER
              • VERSION
              • OB_VERSION
            • JSON functions
              • Overview
              • Functions for creating JSON text
                • JSON_ARRAY
                • JSON_OBJECT
                • JSON_QUOTE
              • Functions for searching JSON text
                • JSON_CONTAINS
                • JSON_CONTAINS_PATH
                • JSON_EXTRACT
                • JSON_KEYS
                • JSON_OVERLAPS
                • JSON_SEARCH
                • JSON_VALUE
                • MEMBER OF
              • Functions for modifying JSON text
                • JSON_ARRAY_APPEND
                • JSON_APPEND
                • JSON_ARRAY_INSERT
                • JSON_INSERT
                • JSON_MERGE
                • JSON_MERGE_PATCH
                • JSON_MERGE_PRESERVE
                • JSON_REMOVE
                • JSON_REPLACE
                • JSON_SET
                • JSON_UNQUOTE
              • Functions for returning JSON text properties
                • JSON_DEPTH
                • JSON_LENGTH
                • JSON_TYPE
                • JSON_VALID
              • `JSON_TABLE`
              • JSON utility functions
                • JSON_PRETTY
                • JSON_STORAGE_SIZE
              • JSON aggregate functions
                • JSON_ARRAYAGG
                • JSON_OBJECTAGG
              • JSON schema validation functions
                • JSON_SCHEMA_VALID
                • JSON_SCHEMA_VALIDATION_REPORT
            • XML functions
              • Overview
              • Functions for querying XML data
                • EXTRACTVALUE
              • Functions for modifying XML data
                • UPDATEXML
            • Spatial functions
              • Overview
              • Functions that create geometry values
              • Spatial operation functions
              • Spatial relation functions
              • Geometry property functions
              • Geometry format conversion functions
              • Spatial analysis functions
              • Spatial constructor functions
              • Spatial accessor functions
              • Spatial format conversion functions
              • Geometry processing functions
              • _ST_GeoHash
            • Performance schema functions
              • FORMAT_BYTES
              • FORMAT_PICO_TIME
            • Lock functions
              • Lock functions
              • GET_LOCK
              • IS_FREE_LOCK
              • IS_USED_LOCK
              • RELEASE_ALL_LOCKS
              • RELEASE_LOCK
            • Roaring bitmap functions
              • Overview
              • Roaring bitmap constructor functions
              • Roaring bitmap cardinality calculation functions
              • Roaring bitmap operation functions
              • Roaring bitmap judgment functions
              • Roaring bitmap output functions
              • Roaring bitmap aggregate functions
            • Array functions
              • Overview
              • Array constructor functions
              • Array judgment functions
            • Other functions
              • ANY_VALUE
              • BIN_TO_UUID
              • COALESCE
              • DEFAULT
              • NAME_CONST
              • INET_ATON
              • INET_NTOA
              • INET6_ATON
              • INET6_NTOA
              • IS_IPV4
              • IS_IPV4_COMPAT
              • IS_IPV6
              • IS_UUID
              • NVL
              • UUID_TO_BIN
              • SLEEP
              • UUID
              • UUID_SHORT
              • VALUES
          • Queries and subqueries
            • Overview
            • Subqueries
            • Joins
            • Full-text queries
          • SQL statements
            • General syntax
            • CTE
            • ALTER DATABASE
            • ALTER EXTERNAL TABLE
            • ALTER OUTLINE
            • ALTER SEQUENCE
            • MAJOR and MINOR
            • ALTER TABLE
            • ALTER TABLEGROUP
            • ALTER TABLESPACE
            • ALTER USER
            • ALTER VIEW
            • ANALYZE
            • CREATE DATABASE LINK
            • CREATE DATABASE
            • CREATE EXTERNAL TABLE
            • CREATE INDEX
            • CREATE MATERIALIZED VIEW
            • CREATE MATERIALIZED VIEW LOG
            • CREATE OUTLINE
            • CREATE RESTORE POINT
            • CREATE ROLE
            • CREATE SEQUENCE
            • CREATE TABLE
            • CREATE TABLEGROUP
            • CREATE TABLESPACE
            • CREATE USER
            • CREATE VIEW
            • CHECKSUM TABLE
            • DEALLOCATE PREPARE
            • DROP DATABASE LINK
            • DELETE
            • DESCRIBE
            • DROP DATABASE
            • DROP INDEX
            • DROP MATERIALIZED VIEW
            • DROP MATERIALIZED VIEW LOG
            • DROP OUTLINE
            • DROP ROLE
            • DROP TABLE
            • DROP TABLEGROUP
            • DROP TABLESPACE
            • DROP SEQUENCE
            • DROP USER
            • DROP VIEW
            • EXECUTE
            • EXPLAIN
            • FLASHBACK
            • GRANT
            • HELP
            • INSERT
            • KILL
            • LOAD DATA
            • LOCK TABLES
            • OPTIMIZE
            • PREPARE
            • PURGE
            • PURGE RECYCLEBIN
            • RENAME USER
            • RENAME TABLE
            • REPLACE
            • REPAIR TABLE
            • REVOKE
            • SAVEPOINT
            • SCHEMA
            • SELECT INTO
            • SET DEFAULT ROLE
            • SELECT
              • SELECT statement
              • JOIN clause
              • OVER clause
              • UNION clause
            • SET
            • SET CHARSET
            • SET NAMES
            • SET PASSWORD
            • SET ROLE
            • SET TRANSACTION
            • SHOW
            • SUBMIT JOB
            • SHOW JOB STATUS
            • CANCEL JOB
            • TRANSACTION
            • TRUNCATE TABLE
            • UPDATE
            • USE
            • VALUES
          • DDL feature
            • Overview
            • Online and offline DDL operations
            • Index operations
            • Primary key operations
            • Column operations
            • Generated column operations
            • Foreign key operations
            • Table operations
            • Partition operations
            • Column type change rules
            • Conversion rules for numeric data types
        • User tenants (Oracle mode)
          • Introduction to SQL
          • Pseudo columns
            • Overview
            • Hierarchical query pseudocolumns
            • Sequence pseudocolumns
            • ORA_ROWSCN pseudocolumn
            • ROWNUM pseudocolumn
            • ROWID pseudocolumn
          • Basic elements
            • Built-in data types
              • Overview
              • Character data types
                • Overview
                • CHAR data type
                • NCHAR data type
                • NVARCHAR2 data type
                • VARCHAR2 data type
                • VARCHAR data type
              • Numeric data types
                • Overview
                • NUMBER data type
                • FLOAT data type
                • Floating-point numbers
                • Precedence of numeric data types
              • Datetime and interval data types
                • Overview
                • DATE data type
                • TIMESTAMP data type
                • TIMESTAMP WITH TIME ZONE data type
                • TIMESTAMP WITH LOCAL TIME ZONE data type
                • INTERVAL YEAR TO MONTH data type
                • INTERVAL DAY TO SECOND data type
                • Calculation of dates, timestamps, and intervals
              • RAW data type
              • Large object data types
                • Overview
                • BLOB data type
                • CLOB data type
                • LOB types
              • Rowid data types
              • User-defined data types
              • Any types
              • JSON data types
                • Overview
                • Create JSON columns
                • Query JSON data
                • Conversion rules for JSON data types
              • XML data types
                • Overview
                • XML data definition
                • Create an XMLType column
                • Query XMLType data
                • Convert XMLType data
              • Spatial data types
                • Overview
                • Create a spatial column
                • SDO_GEOMETRY attribute access
                • Create a spatial index
            • Data type comparison rules
              • Overview
              • Numeric value comparison rules
              • Date value comparison rules
              • Character value comparison rules
              • Data type precedence
              • Data type conversion rules
              • Security considerations for data conversion
            • Literals
              • Overview
              • Text literals
              • Numeric literals
              • Datetime literals
                • Date literals
                • Timestamp literals
              • Interval literals
            • Format model
              • Overview
              • Number format models
              • Datetime format models
              • RR datetime format element
              • String-to-date conversion rules
            • NULL value
              • Overview
              • NULLs in SQL functions
              • NULLs in comparison conditions
              • NULLs in conditional expressions
            • Annotations
              • Overview
              • Comments within SQL statements
              • Comments on schema and non-schema objects
              • Hints
                • Overview
                • Hint list
                  • Hints related to access path
                  • Hints related to join orders
                  • Hints related to joins
                  • Hints related to parallel execution
                  • Hints related to query strategy
                  • Hints related to query conversion
                  • Other hints
            • Database objects
              • Schema objects
              • Non-schema objects
            • Database naming conventions
              • Overview
              • Suggestions on schema object names
            • Database object reference methods
              • Overview
              • Reference schema objects
              • Reference objects in a remote database
                • Create a DBLink
                • Reference a DBLink
              • Reference partitioned tables and indexes
              • Reference an attribute or method of an object type
            • Character sets and collations
          • Operators
            • Overview
            • Operator precedence
            • Arithmetic operators
            • Concatenation operator
            • Hierarchical query operators
            • Set operators
            • COLLATE operator
          • Functions
            • Overview
            • Single-row functions
              • Numeric functions
                • ABS
                • ACOS
                • ASIN
                • ATAN
                • ATAN2
                • BITAND
                • CEIL
                • COS
                • COSH
                • EXP
                • FLOOR
                • GENERATOR
                • LN
                • LOG
                • MOD
                • NANVL
                • NORMAL
                • POWER
                • REMAINDER
                • ROUND
                • RANDOM
                • RANDSTR
                • SIGN
                • SIN
                • SINH
                • SQRT
                • TAN
                • TANH
                • TRUNC
                • UNIFORM
                • WIDTH_BUCKET
                • ZIPF
              • String functions that return a string
                • CHR
                • CONCAT
                • INITCAP
                • LOWER
                • LPAD
                • LTRIM
                • NLS_LOWER
                • NLSSORT
                • NLS_UPPER
                • REGEXP_REPLACE
                • REGEXP_SUBSTR
                • REPLACE
                • RPAD
                • RTRIM
                • SUBSTR
                • TRANSLATE
                • TRANSLATE ... USING
                • TRIM
                • UPPER
              • String functions that return numbers
                • ASCII
                • INSTR
                • LENGTH
                • REGEXP_COUNT
                • REGEXP_INSTR
              • Datetime functions
                • ADD_MONTHS
                • CURRENT_DATE
                • CURRENT_TIMESTAMP
                • DBTIMEZONE
                • EXTRACT(datetime)
                • FROM_TZ
                • LAST_DAY
                • LOCALTIMESTAMP
                • MONTHS_BETWEEN
                • NEXT_DAY
                • NUMTODSINTERVAL
                • NUMTOYMINTERVAL
                • ROUND(date)
                • SESSIONTIMEZONE
                • SYS_EXTRACT_UTC
                • SYSDATE
                • SYSTIMESTAMP
                • TO_CHAR(datetime)
                • TO_DSINTERVAL
                • TO_TIMESTAMP
                • TO_TIMESTAMP_TZ
                • TO_YMINTERVAL
                • TRUNC(date)
                • TZ_OFFSET
              • Generic comparison functions
                • GREATEST
                • LEAST
              • Conversion functions
                • ASCIISTR
                • CAST
                • CHARTOROWID
                • CONVERT
                • HEXTORAW
                • NUMTODSINTERVAL
                • NUMTOYMINTERVAL
                • RAWTOHEX
                • ROWIDTOCHAR
                • ROWIDTONCHAR
                • SCN_TO_TIMESTAMP
                • TIMESTAMP_TO_SCN
                • TO_BINARY_DOUBLE
                • TO_BINARY_FLOAT
                • TO_BLOB
                • TO_CHAR(character)
                • TO_CHAR(datetime)
                • TO_CHAR(number)
                • TO_CLOB
                • TO_DATE
                • TO_DSINTERVAL
                • TO_MULTI_BYTE
                • TO_NUMBER
                • TO_NCHAR(character)
                • TO_NCHAR(datetime)
                • TO_NCHAR(number)
                • TO_SINGLE_BYTE
                • TO_TIMESTAMP
                • TO_TIMESTAMP_TZ
                • TO_YMINTERVAL
                • UNISTR
              • Encoding and decoding functions
                • DECODE
                • DUMP
                • ORA_HASH
                • VSIZE
              • Null value related functions
                • COALESCE
                • LNNVL
                • NANVL
                • NULLIF
                • NVL
                • NVL2
              • Environment and identifier functions
                • SYS_CONTEXT
                • SYS_GUID
                • UID
                • USER
                • USERENV
                • OB_VERSION
              • Hierarchical functions
                • SYS_CONNECT_BY_PATH
              • JSON functions
                • Overview
                • Create JSON text functions
                  • JSON_ARRAY
                  • JSON_OBJECT
                  • JSON_ARRAYAGG
                  • JSON_OBJECTAGG
                • Query JSON text functions
                  • JSON_VALUE
                  • JSON_QUERY
                  • JSON_EXISTS
                  • JSON_TABLE
                • Validate JSON text functions
                  • JSON_EQUAL
                • Modify JSON text functions
                  • JSON_MERGEPATCH
              • XML functions
                • Overview
                • Construct XMLType data functions
                  • XMLAGG
                  • XMLATTRIBUTES
                  • XMLELEMENT
                  • XMLPARSE
                • Query XMLType data functions
                  • EXTRACT
                  • EXTRACTVALUE
                  • XMLSERIALIZE
                  • XMLCAST
                  • XMLTABLE
                  • XMLSEQUENCE
                • Modify XMLType data functions
                  • UPDATEXML
                  • INSERTCHILDXML
                  • DELETEXML
              • Spatial functions
                • Overview
                • Constructor functions
                • Query functions
                • Format conversion functions
            • Aggregate functions
              • APPROX_COUNT_DISTINCT
              • AVG
              • CORR
              • COUNT
              • COVAR_POP
              • COVAR_SAMP
              • CUME_DIST
              • DENSE_RANK
              • GROUPING
              • KEEP
              • LISTAGG
              • MAX
              • MEDIAN
              • MIN
              • PERCENT_RANK
              • PERCENTILE_CONT
              • PERCENTILE_DISC
              • RANK
              • REGR_(Linear Regression)
              • ROLLUP
              • STDDEV
              • STDDEV_POP
              • STDDEV_SAMP
              • SUM
              • VAR_POP
              • VAR_SAMP
              • VARIANCE
              • WMSYS.WM_CONCAT/WM_CONCAT
              • GROUP_ID
              • GROUPING_ID
            • Analysis functions
              • Overview
              • AVG
              • CORR
              • COUNT
              • COVAR_POP
              • COVAR_SAMP
              • CUME_DIST
              • DENSE_RANK
              • FIRST_VALUE
              • KEEP
              • LAG
              • LAST_VALUE
              • LEAD
              • LISTAGG
              • MAX
              • MEDIAN
              • MIN
              • NTILE
              • NTH_VALUE
              • PERCENT_RANK
              • PERCENTILE_CONT
              • PERCENTILE_DISC
              • RANK
              • RATIO_TO_REPORT
              • REGR_(Linear Regression)
              • ROW_NUMBER
              • STDDEV
              • STDDEV_POP
              • STDDEV_SAMP
              • SUM
              • VAR_POP
              • VAR_SAMP
              • VARIANCE
              • WMSYS.WM_CONCAT/WM_CONCAT
            • Information functions
              • OB_TRANSACTION_ID
          • Expressions
            • Overview
            • Simple expressions
            • Compound expressions
            • Case expressions
            • Column expressions
            • CURSOR expressions
            • Datetime expressions
            • Function expressions
            • Interval expressions
            • Scalar subquery expressions
            • Type constructor expressions
            • Expression list
          • Conditions
            • Overview
            • Condition precedence
            • Comparison conditions
            • Floating-point conditions
            • Logical conditions
            • Pattern-matching conditions
            • NULL conditions
            • Compound conditions
            • BETWEEN condition
            • EXISTS condition
            • IN condition
          • Queries and subqueries
            • Overview
            • Simple query
            • Hierarchical query
            • Compound query
            • Join query
            • Subquery
            • Lateral derived tables
            • DUAL table query
          • SQL statements
            • DDL
              • ALTER EXTERNAL TABLE
              • ALTER INDEX
              • ALTER KEYSTORE
              • ALTER OUTLINE
              • ALTER PROFILE
              • ALTER ROLE
              • ALTER SEQUENCE
              • ALTER SESSION
              • ALTER SYSTEM FLUSH PLAN CACHE
              • ALTER SYSTEM PARAMETER
              • ALTER TABLE
              • ALTER TABLEGROUP
              • ALTER USER
              • COMMENT
              • CREATE CONTEXT
              • CREATE DIRECTORY
              • CREATE DATABASE LINK
              • CREATE EXTERNAL TABLE
              • CREATE INDEX
              • CREATE KEYSTORE
              • CREATE MATERIALIZED VIEW
              • CREATE MATERIALIZED VIEW LOG
              • CREATE OUTLINE
              • CREATE PROFILE
              • CREATE ROLE
              • CREATE SEQUENCE
              • CREATE SYNONYM
              • CREATE TABLE
              • CREATE TABLEGROUP
              • CREATE TABLESPACE
              • CREATE USER
              • CREATE VIEW
              • DROP CONTEXT
              • DROP DATABASE LINK
              • DROP DIRECTORY
              • DROP INDEX
              • DROP MATERIALIZED VIEW
              • DROP MATERIALIZED VIEW LOG
              • DROP OUTLINE
              • DROP PROFILE
              • DROP ROLE
              • DROP SEQUENCE
              • DROP SYNONYM
              • DROP TABLE
              • DROP TABLEGROUP
              • DROP TABLESPACE
              • DROP USER
              • DROP VIEW
              • RENAME
              • TRUNCATE TABLE
              • MAJOR and MINOR
            • DML
              • DELETE
              • INSERT
              • MERGE
              • PURGE
              • EXPLAIN
              • SELECT
                • SIMPLE SELECT
                • Set-based SELECT
                • WITH clause
              • UPDATE
            • DCL
              • ANALYZE
              • ALTER SYSTEM KILL SESSION
              • AUDIT
              • COMMIT
              • FLASHBACK TABLE BEFORE DROP
              • GRANT
              • KILL
              • LOAD DATA
              • LOCK TABLE
              • REVOKE
              • ROLLBACK
              • SAVEPOINT
              • SELECT INTO
              • SET NAMES
              • SET PASSWORD
              • SET ROLE
              • SET VARIABLE
              • SHOW
              • SHRINK
              • TRANSACTION
          • DDL feature
            • Overview
            • Online and offline DDL operations
            • Index operations
            • Primary key operations
            • Column operations
            • Generated column operations
            • Foreign key operations
            • Table operations
            • Partition operations
            • Column type change rules
            • Conversion rules for numeric data types
      • SQL specifications and practices
        • Limitations on writing SQL statements
        • SQL writing specifications
          • SELECT statements
          • DML statements
          • DDL statements
          • Multi-table join statements
          • Table scan
          • Transactions
          • Cache
          • Hint
          • Others
        • SQL statement examples
          • Implicit data type conversion
          • Join tables
          • Weak consistency read
          • Pagination queries
      • PL reference
        • What is PL
          • Overview
          • Main features of PL
          • PL architecture
        • PL reference (MySQL mode)
          • Syntax of PL stored programs
          • PL stored procedures
            • Overview
            • Variables in stored programs
            • Stored procedures
            • Stored objects and privilege management
            • Stored functions
            • Triggers
            • Limitations on stored programs
          • PL cursors
            • Overview
            • Cursor execution process
            • Limitations on server cursors
          • PL conditional control statements
            • CASE
            • IF
            • ITERATE
            • LEAVE
            • LOOP
            • REPEAT
            • RETURN
            • WHILE
          • PL data manipulation statements
            • CALL
            • DO
          • PL data definition statements
            • ALTER FUNCTION
            • ALTER PROCEDURE
            • CREATE FUNCTION
            • CREATE PROCEDURE
            • CREATE TRIGGER
            • DROP FUNCTION
            • DROP PROCEDURE
            • DROP TRIGGER
          • PL database management statements
            • SHOW CREATE FUNCTION
            • SHOW CREATE PROCEDURE
            • SHOW CREATE TRIGGER
            • SHOW FUNCTION STATUS
            • SHOW PROCEDURE STATUS
            • SHOW TRIGGERS
          • PL related dictionary views
            • INFORMATION_SCHEMA PARAMETERS
            • INFORMATION_SCHEMA ROUTINES
            • INFORMATION_SCHEMA TRIGGERS
          • PL exception handling
            • Overview
            • DECLARE ... CONDITION
            • DECLARE ... HANDLER
            • GET DIAGNOSTICS
            • RESIGNAL
            • SIGNAL
            • Effective scope of an exception handler
            • Diagnostics area
            • Exception handling and OUT/INOUT parameters
            • Limitations on exception handling
          • PL system packages
            • Overview
            • DBMS_MVIEW
              • Overview
              • PURGE_LOG
              • REFRESH
            • DBMS_MVIEW_STAT
              • Overview
              • PURGE_REFRESH_STATS
              • SET_MVREF_STATS_PARAMS
              • SET_SYSTEM_DEFAULT
            • DBMS_RESOURCE_MANAGER
              • Overview
              • CREATE_CONSUMER_GROUP
              • CREATE_PLAN
              • CREATE_PLAN_DIRECTIVE
              • DELETE_CONSUMER_GROUP
              • DELETE_PLAN
              • DELETE_PLAN_DIRECTIVE
              • SET_CONSUMER_GROUP_MAPPING
              • UPDATE_PLAN_DIRECTIVE
            • DBMS_STATS
              • Overview
              • ALTER_STATS_HISTORY_RETENTION
              • CREATE_STAT_TABLE
              • DELETE_COLUMN_STATS
              • DELETE_INDEX_STATS
              • DELETE_TABLE_STATS
              • DELETE_SCHEMA_STATS
              • DELETE_SCHEMA_PREFS
              • DELETE_SYSTEM_STATS
              • DELETE_TABLE_PREFS
              • DROP_STAT_TABLE
              • EXPORT_COLUMN_STATS
              • EXPORT_INDEX_STATS
              • EXPORT_TABLE_STATS
              • EXPORT_SCHEMA_STATS
              • FLUSH_DATABASE_MONITORING_INFO
              • GATHER_INDEX_STATS
              • GATHER_TABLE_STATS
              • GATHER_SCHEMA_STATS
              • GATHER_SYSTEM_STATS
              • GET_STATS_HISTORY_AVAILABILITY
              • GET_STATS_HISTORY_RETENTION
              • GET_PARAM
              • GET_PREFS
              • IMPORT_INDEX_STATS
              • IMPORT_COLUMN_STATS
              • IMPORT_TABLE_STATS
              • IMPORT_SCHEMA_STATS
              • LOCK_PARTITION_STATS
              • LOCK_SCHEMA_STATS
              • LOCK_TABLE_STATS
              • RESTORE_TABLE_STATS
              • RESTORE_SCHEMA_STATS
              • RESET_GLOBAL_PREF_DEFAULTS
              • RESET_PARAM_DEFAULTS
              • PURGE_STATS
              • SET_COLUMN_STATS
              • SET_INDEX_STATS
              • SET_TABLE_STATS
              • SET_GLOBAL_PREFS
              • SET_PARAM
              • SET_SCHEMA_PREFS
              • SET_SYSTEM_STATS
              • SET_TABLE_PREFS
              • UNLOCK_PARTITION_STATS
              • UNLOCK_SCHEMA_STATS
              • UNLOCK_TABLE_STATS
            • DBMS_TRUSTED_CERTIFICATE_MANAGER
              • Overview
              • ADD_TRUSTED_CERTIFICATE
              • DELETE_TRUSTED_CERTIFICATE
              • UPDATE_TRUSTED_CERTIFICATE
            • DBMS_UDR
              • Overview
              • CREATE_RULE
              • DISABLE_RULE
              • ENABLE_RULE
              • REMOVE_RULE
            • DBMS_WORKLOAD_REPOSITORY
              • Overview
              • ASH_REPORT
              • CREATE_SNAPSHOT
              • DROP_SNAPSHOT_RANGE
              • MODIFY_SNAPSHOT_SETTINGS
            • DBMS_XPLAN
              • Overview
              • DISPLAY_ACTIVE_SESSION_PLAN
              • DISPLAY_CURSOR
              • DISPLAY
              • DISABLE_OPT_TRACE
              • DISPLAY_SQL_PLAN_BASELINE
              • ENABLE_OPT_TRACE
              • SET_OPT_TRACE_PARAMETER
            • DBMS_LIMIT_CALCULATOR
              • Overview
              • CALCULATE_MIN_PHY_RES_NEEDED_BY_UNIT
              • CALCULATE_MIN_PHY_RES_NEEDED_BY_LOGIC_RES
              • CALCULATE_MIN_PHY_RES_NEEDED_BY_STANDBY_TENANT
            • DBMS_EXTERNAL_TABLE
              • Overview
              • AUTO_REFRESH_EXTERNAL_TABLE
          • Reserved and non-reserved PL keywords
        • PL reference (Oracle mode)
          • PL language basics
            • Character sets
            • Lexical units
            • Declaration
            • Reference identifiers
            • Scope and visibility of identifiers
            • Assign values
            • Expressions
            • PL blocks
            • Subprograms
            • Error-reporting functions
          • PL data types
            • Overview
            • SQL data types
            • LOB data types
            • BOOLEAN type
            • User-defined subtypes
            • PLS_INTEGER and BINARY_INTEGER
            • Arrays
            • PL JSON data types
          • PL process control
            • Overview
            • Conditional control
            • Loop control
            • Sequential control
          • PL collections and records
            • Overview
            • Collections
            • Associative arrays
            • Varrays
            • Nested tables
            • Collection constructor function
            • Collection methods
              • Overview
              • DELETE method
              • TRIM method
              • EXTEND method
              • EXISTS method
              • FIRST and LAST methods
              • COUNT method
              • LIMIT method
              • PRIOR and NEXT methods
            • Records
            • Insert records into a table and update a table by using records
            • Create and call a subprogram with record type parameters
          • PL static SQL
            • Overview
            • Cursors
              • Overview
              • Cursor attributes
              • Implicit cursors
              • Explicit cursors
              • Cursor variables
              • Traverse cursor data by using the FOR loop
              • Modify and drop a cursor
            • Transaction processing and control
            • Autonomous transactions
              • Overview
              • Control autonomous transactions
              • Autonomous triggers
              • Call autonomous functions from SQL statements
          • PL dynamic SQL
            • Overview
            • Execute dynamic SQL statements
            • DBMS_SQL system package
          • PL stored procedures and functions
            • Overview
            • Create a stored procedure
            • Create a function
            • Manage stored procedures and functions
            • Privilege control
            • Pipeline functions
              • Overview
              • Create a pipelined table function
              • Application
            • User-defined functions
              • Overview
              • Interface for user-defined aggregate functions
              • Create user-defined aggregate functions
              • Use user-defined aggregate functions
            • Collection of stored procedure information and its impact on parallel execution of SQL statements
            • PL DBLinks
          • PL triggers
            • Overview
            • Create a DML trigger
            • Modify and drop a trigger
            • Disable or enable a trigger
            • Query trigger information
            • INSTEAD OF DML trigger
            • Compound DML trigger
          • PL packages
            • Overview
            • Create a program package
            • Overloaded programs in a package
            • Manage program packages
            • Definition of the PL environment by the STANDARD package
          • PL exception handling
            • Overview
            • Compile-Time alerts
            • Exception types
            • Exception handling processes
          • DDL operations on stored PL units
            • Overview
            • ALTER FUNCTION
            • ALTER PACKAGE
            • ALTER PROCEDURE
            • ALTER TRIGGER
            • ALTER TYPE
            • CREATE FUNCTION
            • CREATE PACKAGE
            • CREATE PACKAGE BODY
            • CREATE PROCEDURE
            • CREATE TRIGGER
            • CREATE TYPE
            • CREATE TYPE BODY
            • DROP FUNCTION
            • DROP PACKAGE
            • DROP PROCEDURE
            • DROP TRIGGER
            • DROP TYPE
            • DROP TYPE BODY
          • PL label security package
            • Overview
            • SA_SYSDBA policy management package
              • Overview
              • SA_SYSDBA.ALTER_POLICY
              • SA_SYSDBA.CREATE_POLICY
              • SA_SYSDBA.DROP_POLICY
            • SA_COMPONENTS label component package
              • Overview
              • SA_COMPONENTS.ALTER_LEVEL
              • SA_COMPONENTS.CREATE_LEVEL
              • SA_COMPONENTS.DROP_LEVEL
            • SA_LABEL_ADMIN label management package
              • Overview
              • SA_LABEL_ADMIN.ALTER_LABEL
              • SA_LABEL_ADMIN.CREATE_LABEL
              • SA_LABEL_ADMIN.DROP_LABEL
            • SA_POLICY_ADMIN policy management package
              • Overview
              • SA_POLICY_ADMIN.APPLY_TABLE_POLICY
              • SA_POLICY_ADMIN.DISABLE_TABLE_POLICY
              • SA_POLICY_ADMIN.ENABLE_TABLE_POLICY
              • SA_POLICY_ADMIN.REMOVE_TABLE_POLICY
            • SA_USER_ADMIN user label management package
              • Overview
              • SA_USER_ADMIN.SET_LEVELS
            • SA_SESSION session management package
              • Overview
              • SA_SESSION.LABEL
              • SA_SESSION.RESTORE_DEFAULT_LABELS
              • SA_SESSION.ROW_LABEL
              • SA_SESSION.SET_LABEL
              • SA_SESSION.SET_ROW_LABEL
          • PL system package (Oracle mode)
            • Overview
            • DBMS_APPLICATION_INFO
              • Overview
              • READ_CLIENT_INFO
              • READ_MODULE
              • SET_ACTION
              • SET_CLIENT_INFO
              • SET_MODULE
            • DBMS_AUDIT_MGMT
              • Overview
              • CLEAN_AUDIT_TRAIL
              • CREATE_PURGE_JOB
              • DROP_PURGE_JOB
              • SET_LAST_ARCHIVE_TIMESTAMP
              • SET_PURGE_JOB_STATUS
            • DBMS_CRYPTO
              • Overview
              • ENCRYPT
              • DECRYPT
              • HASH
            • DBMS_DEBUG
              • Overview
              • ATTACH_SESSION
              • CONTINUE
              • DEBUG_ON
              • DEBUG_OFF
              • DETACH_SESSION
              • DELETE_BREAKPOINT
              • DISABLE_BREAKPOINT
              • ENABLE_BREAKPOINT
              • GET_VALUE
              • GET_VALUES
              • GET_RUNTIME_INFO
              • GET_TIMEOUT_BEHAVIOUR
              • INITIALIZE
              • PROBE_VERSION
              • PRINT_BACKTRACE
              • SET_TIMEOUT
              • SET_TIMEOUT_BEHAVIOUR
              • SET_BREAKPOINT
              • SHOW_BREAKPOINTS
            • DBMS_DESCRIBE
              • Overview
              • DESCRIBE_PROCEDURE
            • DBMS_JOB
              • Overview
              • BROKEN
              • CHANGE
              • ZONE
              • INTERVAL
              • NEXT_DATE
              • REMOVE
              • RUN
              • SUBMIT
              • USER_EXPORT
              • WHAT
            • DBMS_LOB
              • Overview
              • APPEND
              • CLOSE
              • COPY
              • CREATETEMPORARY
              • ERASE
              • FREETEMPORARY
              • GETLENGTH
              • ISOPEN
              • INSTR
              • ISTEMPORARY
              • OPEN
              • READ
              • SUBSTR
              • TRIM
              • WRITE
              • WRITEAPPEND
            • DBMS_LOCK
              • Overview
              • ALLOCATE_UNIQUE
              • ALLOCATE_UNIQUE_AUTONOMOUS
              • REQUEST
              • SLEEP
              • RELEASE
            • DBMS_METADATA
              • Overview
              • GET_DDL
            • DBMS_MVIEW
              • Overview
              • PURGE_LOG
              • REFRESH
            • DBMS_MONITOR
              • Overview
              • OB_SESSION_TRACE_ENABLE
              • OB_SESSION_TRACE_DISABLE
              • OB_CLIENT_ID_TRACE_ENABLE
              • OB_CLIENT_ID_TRACE_DISABLE
              • OB_MOD_ACT_TRACE_ENABLE
              • OB_MOD_ACT_TRACE_DISABLE
              • OB_TENANT_TRACE_ENABLE
              • OB_TENANT_TRACE_DISABLE
            • DBMS_MVIEW_STAT
              • Overview
              • PURGE_REFRESH_STATS
              • SET_MVREF_STATS_PARAMS
              • SET_SYSTEM_DEFAULT
            • DBMS_OUTPUT
              • Overview
              • DISABLE
              • ENABLE
              • GET_LINE
              • GET_LINES
              • NEW_LINE
              • PUT
              • PUT_LINE
            • DBMS_PLAN_CACHE
              • Overview
              • PURGE
            • DBMS_RANDOM
              • Overview
              • INITIALIZE
              • NORMAL
              • RANDOM
              • SEED
              • STRING
              • TERMINATE
              • VALUE
            • DBMS_RESOURCE_MANAGER
              • Overview
              • CREATE_CONSUMER_GROUP
              • CREATE_PLAN
              • CREATE_PLAN_DIRECTIVE
              • DELETE_CONSUMER_GROUP
              • DELETE_PLAN
              • DELETE_PLAN_DIRECTIVE
              • SET_CONSUMER_GROUP_MAPPING
              • UPDATE_PLAN_DIRECTIVE
            • DBMS_SCHEDULER
              • Overview
              • CREATE_JOB
              • CREATE_JOB_CLASS
              • CREATE_PROGRAM
              • DEFINE_PROGRAM_ARGUMENT
              • DISABLE
              • DISABLE
              • DROP_JOB
              • DROP_JOB_CLASS
              • DROP_PROGRAM
              • ENABLE
              • ENABLE
              • GENERATE_JOB_NAME
              • PURGE_LOG
              • RUN_JOB
              • SET_ATTRIBUTE
              • SET_JOB_ARGUMENT_VALUE
              • STOP_JOB
            • DBMS_SESSION
              • Overview
              • CLEAR_ALL_CONTEXT
              • CLEAR_CONTEXT
              • CLEAR_IDENTIFIER
              • RESET_PACKAGE
              • SET_CONTEXT
              • SET_IDENTIFIER
            • DBMS_SQL
              • Overview
              • BIND_VARIABLE
              • CLOSE_CURSOR
              • COLUMN_VALUE
              • DEFINE_COLUMN
              • DEFINE_ARRAY
              • DESCRIBE_COLUMNS
              • EXECUTE
              • EXECUTE_AND_FETCH
              • FETCH_ROWS
              • IS_OPEN
              • LAST_ERROR_POSITION
              • OPEN_CURSOR
              • PARSE
            • DBMS_STATS
              • Overview
              • ALTER_STATS_HISTORY_RETENTION
              • CREATE_STAT_TABLE
              • DELETE_COLUMN_STATS
              • DELETE_INDEX_STATS
              • DELETE_TABLE_STATS
              • DELETE_SCHEMA_STATS
              • DELETE_SCHEMA_PREFS
              • DELETE_SYSTEM_STATS
              • DELETE_TABLE_PREFS
              • DROP_STAT_TABLE
              • EXPORT_COLUMN_STATS
              • EXPORT_INDEX_STATS
              • EXPORT_TABLE_STATS
              • EXPORT_SCHEMA_STATS
              • FLUSH_DATABASE_MONITORING_INFO
              • GATHER_INDEX_STATS
              • GATHER_TABLE_STATS
              • GATHER_SCHEMA_STATS
              • GATHER_SYSTEM_STATS
              • GET_STATS_HISTORY_AVAILABILITY
              • GET_STATS_HISTORY_RETENTION
              • GET_PARAM
              • GET_PREFS
              • IMPORT_INDEX_STATS
              • IMPORT_COLUMN_STATS
              • IMPORT_TABLE_STATS
              • IMPORT_SCHEMA_STATS
              • LOCK_PARTITION_STATS
              • LOCK_SCHEMA_STATS
              • LOCK_TABLE_STATS
              • RESTORE_TABLE_STATS
              • RESTORE_SCHEMA_STATS
              • RESET_GLOBAL_PREF_DEFAULTS
              • RESET_PARAM_DEFAULTS
              • PURGE_STATS
              • SET_COLUMN_STATS
              • SET_INDEX_STATS
              • SET_TABLE_STATS
              • SET_GLOBAL_PREFS
              • SET_PARAM
              • SET_SCHEMA_PREFS
              • SET_SYSTEM_STATS
              • SET_TABLE_PREFS
              • UNLOCK_PARTITION_STATS
              • UNLOCK_SCHEMA_STATS
              • UNLOCK_TABLE_STATS
              • COPY_TABLE_STATS
            • DBMS_UDR
              • Overview
              • CREATE_RULE
              • DISABLE_RULE
              • ENABLE_RULE
              • REMOVE_RULE
            • DBMS_UTILITY
              • Overview
              • ACTIVE_INSTANCES
              • CURRENT_INSTANCE
              • DB_VERSION
              • FORMAT_CALL_STACK
              • FORMAT_ERROR_BACKTRACE
              • FORMAT_ERROR_STACK
              • GET_ENDIANNESS
              • GET_HASH_VALUE
              • GET_PARAMETER_VALUE
              • GET_SQL_HASH
              • GET_TIME
              • IS_BIT_SET
              • IS_CLUSTER_DATABASE
              • NAME_RESOLVE
              • NAME_TOKENIZE
              • OLD_CURRENT_SCHEMA
              • OLD_CURRENT_USER
              • PORT_STRING
              • TABLE_TO_COMMA
            • DBMS_WORKLOAD_REPOSITORY
              • Overview
              • ASH_REPORT
            • DBMS_XA
              • Overview
              • DBMS_XA constants
              • DBMS_XA_XID object type
              • DIST_TXN_SYNC
              • XA_COMMIT
              • XA_END
              • XA_FORGET
              • XA_GETLASTOER
              • XA_PREPARE
              • XA_RECOVER
              • XA_ROLLBACK
              • XA_SETTIMEOUT
              • XA_START
            • DBMS_XMLGEN
              • Overview
              • CONVERT
            • DBMS_PROFILER
              • Overview
              • START_PROFILER
              • STOP_PROFILER
              • PAUSE_PROFILER
              • RESUME_PROFILER
              • FLUSH_DATA
              • GET_VERSION
              • INTERNAL_VERSION_CHECK
              • ROLLUP_UNIT
              • ROLLUP_RUN
              • OB_INIT_OBJECTS
              • OB_DROP_OBJECTS
            • DBMS_XPLAN
              • Overview
              • DISPLAY_ACTIVE_SESSION_PLAN
              • DISPLAY_CURSOR
              • DISPLAY
              • DISABLE_OPT_TRACE
              • DISPLAY_SQL_PLAN_BASELINE
              • ENABLE_OPT_TRACE
              • SET_OPT_TRACE_PARAMETER
            • DBMS_EXTERNAL_TABLE
              • Overview
              • AUTO_REFRESH_EXTERNAL_TABLE
            • ODCIConst
              • Overview
              • ODCIArgDesc.ArgType
              • ODCIEnv.CallProperty
              • ODCIEnv.Envflags
              • ODCIIndexAlter
              • ODCIIndexAlter parameter alter_option
              • ODCIIndexInfo.IndexInfoFlags
              • ODCIIndexInfo.IndexParaDegree
              • ODCIPredInfo.Flags
              • ODCIQueryInfo.Flags
              • ODCIStatsOptions.Flags
              • ODCIStatsOptions.Options
              • Return Status
              • ScnFlg
            • UTL_ENCODE
              • Overview
              • BASE64_DECODE
              • BASE64_ENCODE
            • UTL_FILE
              • Overview
              • FCLOSE
              • FFLUSH
              • FOPEN
              • FGETPOS
              • FREMOVE
              • FRENAME
              • FSEEK
              • NEW_LINE
              • GET_LINE
              • PUT
              • PUT_LINE
            • UTL_I18N
              • Overview
              • RAW_TO_CHAR
              • STRING_TO_RAW
            • UTL_RECOMP
              • Overview
              • RECOMP_PARALLEL
              • RECOMP_SERIAL
              • TRUNCATE_UTL_RECOMP_SKIP_LIST
              • POPULATE_UTL_RECOMP_SKIP_LIST
              • PARALLEL_SLAVE
            • UTL_RAW
              • Overview
              • BIT_AND
              • BIT_COMPLEMENT
              • BIT_OR
              • BIT_XOR
              • CAST_FROM_BINARY_DOUBLE
              • CAST_FROM_BINARY_FLOAT
              • CAST_FROM_BINARY_INTEGER
              • CAST_FROM_NUMBER
              • CAST_TO_BINARY_DOUBLE
              • CAST_TO_BINARY_FLOAT
              • CAST_TO_BINARY_INTEGER
              • CAST_TO_NUMBER
              • CAST_TO_RAW
              • CAST_TO_VARCHAR2
              • COMPARE
              • CONCAT
              • COPIES
              • LENGTH
              • REVERSE
              • SUBSTR
            • ANYDATA TYPE
              • Overview
              • BEGINCREATE static procedure
              • ENDCREATE member procedure
              • GET* member functions
              • GETTYPE member function
              • GETTYPENAME member function
              • PIECEWISE member procedure
              • SET* member procedures
            • XMLType
              • Overview
              • CREATEXML
              • GETCLOBVAL
              • GETSTRINGVAL
              • TRANSFORM
              • XMLTYPE
          • Reserved PL keywords
      • Reserved keywords (MySQL mode)
      • Reserved keywords (Oracle mode)
    • System views
      • Overview
      • Outline of system views
      • Changes in views in OceanBase Database V3.x and V4.x
      • SYS tenant views
        • Dictionary views
          • information_schema.CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS
          • information_schema.CHARACTER_SETS
          • information_schema.CHECK_CONSTRAINTS
          • information_schema.COLLATION_CHARACTER_SET_APPLICABILITY
          • information_schema.COLLATIONS
          • information_schema.COLUMN_PRIVILEGES
          • information_schema.COLUMNS
          • information_schema.ENGINES
          • information_schema.events
          • information_schema.GLOBAL_STATUS
          • information_schema.GLOBAL_VARIABLES
          • information_schema.KEY_COLUMN_USAGE
          • information_schema.PARAMETERS
          • information_schema.PARTITIONS
          • information_schema.PROCESSLIST
          • information_schema.QUERY_RESPONSE_TIME
          • information_schema.REFERENTIAL_CONSTRAINTS
          • information_schema.ROUTINES
          • information_schema.SCHEMA_PRIVILEGES
          • information_schema.SCHEMATA
          • information_schema.SESSION_STATUS
          • information_schema.SESSION_VARIABLES
          • information_schema.STATISTICS
          • information_schema.TABLE_CONSTRAINTS
          • information_schema.TABLE_PRIVILEGES
          • information_schema.TABLES
          • information_schema.USER_PRIVILEGES
          • information_schema.VIEW_TABLE_USAGE
          • information_schema.VIEWS
          • mysql.columns_priv
          • mysql.db
          • mysql.default_roles
          • mysql.help_category
          • mysql.help_keyword
          • mysql.help_relation
          • mysql.help_topic
          • mysql.proc
          • mysql.procs_priv
          • mysql.role_edges
          • mysql.time_zone
          • mysql.time_zone_name
          • mysql.time_zone_transition
          • mysql.time_zone_transition_type
          • mysql.user
          • oceanbase.ALL_OB_EXTERNAL_TABLE_FILES
          • oceanbase.CDB_CKPT_HISTORY
          • oceanbase.CDB_OB_DATABASE_PRIVILEGE
          • oceanbase.CDB_IND_COLUMNS
          • oceanbase.CDB_IND_PARTITIONS
          • oceanbase.CDB_IND_SUBPARTITIONS
          • CDB_INDEX_USAGE
          • oceanbase.CDB_INDEXES
          • CDB_MVIEW_LOGS
          • CDB_MVIEWS
          • CDB_MVREF_CHANGE_STATS
          • CDB_MVREF_RUN_STATS
          • CDB_MVREF_STATS
          • CDB_MVREF_STATS_PARAMS
          • CDB_MVREF_STATS_SYS_DEFAULTS
          • CDB_MVREF_STMT_STATS
          • oceanbase.CDB_OB_ACCESS_POINT
          • oceanbase.CDB_OB_LS_ARB_REPLICA_TASKS
          • oceanbase.CDB_OB_ARCHIVE_DEST
          • oceanbase.CDB_OB_ARCHIVELOG
          • oceanbase.CDB_OB_ARCHIVELOG_PIECE_FILES
          • oceanbase.CDB_OB_ARCHIVELOG_SUMMARY
          • oceanbase.CDB_OB_AUTO_INCREMENT
          • CDB_OB_AUX_STATISTICS
          • oceanbase.CDB_OB_BACKUP_DELETE_JOB_HISTORY
          • oceanbase.CDB_OB_BACKUP_DELETE_JOBS
          • oceanbase.CDB_OB_BACKUP_DELETE_POLICY
          • oceanbase.CDB_OB_BACKUP_DELETE_TASK_HISTORY
          • oceanbase.CDB_OB_BACKUP_DELETE_TASKS
          • oceanbase.CDB_OB_BACKUP_JOB_HISTORY
          • oceanbase.CDB_OB_BACKUP_JOBS
          • oceanbase.CDB_OB_BACKUP_PARAMETER
          • oceanbase.CDB_OB_BACKUP_SET_FILES
          • oceanbase.CDB_OB_BACKUP_STORAGE_INFO
          • oceanbase.CDB_OB_BACKUP_STORAGE_INFO_HISTORY
          • oceanbase.CDB_OB_BACKUP_TASK_HISTORY
          • oceanbase.CDB_OB_BACKUP_TASKS
          • oceanbase.CDB_OB_BALANCE_JOB_HISTORY
          • oceanbase.CDB_OB_BALANCE_JOBS
          • oceanbase.CDB_OB_BALANCE_TASK_HISTORY
          • oceanbase.CDB_OB_BALANCE_TASKS
          • oceanbase.CDB_OB_COLUMN_CHECKSUM_ERROR_INFO
          • oceanbase.CDB_OB_DATA_DICTIONARY_IN_LOG
          • oceanbase.CDB_OB_DATABASES
          • oceanbase.CDB_OB_DEADLOCK_EVENT_HISTORY
          • oceanbase.CDB_OB_EXTERNAL_TABLE_FILES
          • oceanbase.CDB_OB_FREEZE_INFO
          • oceanbase.CDB_OB_IMPORT_TABLE_JOB_HISTORY
          • oceanbase.CDB_OB_IMPORT_TABLE_JOBS
          • oceanbase.CDB_OB_IMPORT_TABLE_TASK_HISTORY
          • oceanbase.CDB_OB_IMPORT_TABLE_TASKS
          • oceanbase.CDB_OB_KV_TTL_TASK_HISTORY
          • oceanbase.CDB_OB_KV_TTL_TASKS
          • oceanbase.CDB_OB_LOG_RESTORE_SOURCE
          • oceanbase.CDB_OB_LS
          • oceanbase.CDB_OB_LS_ARB_REPLICA_TASK_HISTORY
          • oceanbase.CDB_OB_LS_HISTORY
          • oceanbase.CDB_OB_LS_LOCATIONS
          • oceanbase.CDB_OB_LS_LOG_ARCHIVE_PROGRESS
          • oceanbase.CDB_OB_LS_REPLICA_TASKS
          • CDB_OB_LS_REPLICA_TASK_HISTORY
          • oceanbase.CDB_OB_MAJOR_COMPACTION
          • oceanbase.CDB_OB_RECOVER_TABLE_JOB_HISTORY
          • oceanbase.CDB_OB_RECOVER_TABLE_JOBS
          • oceanbase.CDB_OB_SERVICES
          • oceanbase.CDB_OB_RESTORE_HISTORY
          • oceanbase.CDB_OB_RESTORE_PROGRESS
          • oceanbase.CDB_OB_SYS_VARIABLES
          • oceanbase.CDB_OB_TABLE_LOCATIONS
          • oceanbase.CDB_OB_TABLEGROUP_PARTITIONS
          • oceanbase.CDB_OB_TABLEGROUP_SUBPARTITIONS
          • oceanbase.CDB_OB_TABLEGROUP_TABLES
          • oceanbase.CDB_OB_TABLEGROUPS
          • oceanbase.CDB_OB_TABLET_CHECKSUM_ERROR_INFO
          • oceanbase.CDB_OB_TABLET_REPLICAS
          • oceanbase.CDB_OB_TABLET_TO_LS
          • oceanbase.CDB_OB_TEMP_FILES
          • oceanbase.CDB_OB_TENANT_EVENT_HISTORY
          • oceanbase.CDB_OB_TRANSFER_PARTITION_TASKS
          • oceanbase.CDB_OB_TRANSFER_PARTITION_TASK_HISTORY
          • oceanbase.CDB_OB_TRANSFER_TASK_HISTORY
          • oceanbase.CDB_OB_TRANSFER_TASKS
          • oceanbase.CDB_OB_USERS
          • oceanbase.CDB_OB_ZONE_MAJOR_COMPACTION
          • oceanbase.CDB_OBJECTS
          • oceanbase.CDB_PART_INDEXES
          • oceanbase.CDB_PART_KEY_COLUMNS
          • oceanbase.CDB_PART_TABLES
          • oceanbase.CDB_SCHEDULER_JOB_RUN_DETAILS
          • oceanbase.CDB_SUBPART_KEY_COLUMNS
          • oceanbase.CDB_SUBPARTITION_TEMPLATES
          • oceanbase.CDB_TAB_COL_STATISTICS
          • oceanbase.CDB_TAB_COLS
          • oceanbase.CDB_TAB_COLS_V$
          • oceanbase.CDB_TAB_PARTITIONS
          • oceanbase.CDB_TAB_SUBPARTITIONS
          • oceanbase.CDB_TABLES
          • oceanbase.CDB_WR_ACTIVE_SESSION_HISTORY
          • oceanbase.CDB_WR_CONTROL
          • oceanbase.CDB_WR_EVENT_NAME
          • oceanbase.CDB_WR_SNAPSHOT
          • oceanbase.CDB_WR_SQLSTAT
          • oceanbase.CDB_WR_SQLTEXT
          • oceanbase.CDB_WR_STATNAME
          • oceanbase.CDB_WR_SYS_TIME_MODEL
          • oceanbase.CDB_WR_SYSSTAT
          • oceanbase.CDB_WR_SYSTEM_EVENT
          • oceanbase.DBA_DB_LINKS
          • oceanbase.DBA_IND_PARTITIONS
          • oceanbase.DBA_IND_STATISTICS
          • oceanbase.DBA_IND_SUBPARTITIONS
          • DBA_INDEX_USAGE
          • DBA_MVIEW_LOGS
          • DBA_MVIEWS
          • DBA_MVREF_CHANGE_STATS
          • DBA_MVREF_RUN_STATS
          • DBA_MVREF_STATS
          • DBA_MVREF_STATS_PARAMS
          • DBA_MVREF_STATS_SYS_DEFAULTS
          • DBA_MVREF_STMT_STATS
          • oceanbase.DBA_OB_ACCESS_POINT
          • oceanbase.DBA_OB_ARBITRATION_SERVICE
          • oceanbase.DBA_OB_ARCHIVE_DEST
          • oceanbase.DBA_OB_ARCHIVELOG
          • oceanbase.DBA_OB_ARCHIVELOG_PIECE_FILES
          • oceanbase.DBA_OB_ARCHIVELOG_SUMMARY
          • oceanbase.DBA_OB_AUTO_INCREMENT
          • DBA_OB_AUX_STATISTICS
          • oceanbase.DBA_OB_BACKUP_DELETE_JOB_HISTORY
          • oceanbase.DBA_OB_BACKUP_DELETE_JOBS
          • oceanbase.DBA_OB_BACKUP_DELETE_POLICY
          • oceanbase.DBA_OB_BACKUP_DELETE_TASK_HISTORY
          • oceanbase.DBA_OB_BACKUP_DELETE_TASKS
          • oceanbase.DBA_OB_BACKUP_JOB_HISTORY
          • oceanbase.DBA_OB_BACKUP_JOBS
          • oceanbase.DBA_OB_BACKUP_PARAMETER
          • oceanbase.DBA_OB_BACKUP_SET_FILES
          • oceanbase.DBA_OB_BACKUP_STORAGE_INFO
          • oceanbase.DBA_OB_BACKUP_STORAGE_INFO_HISTORY
          • oceanbase.DBA_OB_BACKUP_TASK_HISTORY
          • oceanbase.DBA_OB_BACKUP_TASKS
          • oceanbase.DBA_OB_BALANCE_JOB_HISTORY
          • oceanbase.DBA_OB_BALANCE_JOBS
          • oceanbase.DBA_OB_BALANCE_TASK_HISTORY
          • oceanbase.DBA_OB_BALANCE_TASKS
          • DBA_OB_CLONE_HISTORY
          • DBA_OB_CLONE_PROGRESS
          • oceanbase.DBA_OB_CLUSTER_EVENT_HISTORY
          • oceanbase.DBA_OB_CONCURRENT_LIMIT_SQL
          • oceanbase.DBA_OB_DATA_DICTIONARY_IN_LOG
          • oceanbase.DBA_OB_DATABASE_PRIVILEGE
          • oceanbase.DBA_OB_DATABASES
          • oceanbase.DBA_OB_DEADLOCK_EVENT_HISTORY
          • oceanbase.DBA_OB_EXTERNAL_TABLE_FILES
          • oceanbase.DBA_OB_FREEZE_INFO
          • oceanbase.DBA_OB_IMPORT_TABLE_JOB_HISTORY
          • oceanbase.DBA_OB_IMPORT_TABLE_JOBS
          • oceanbase.DBA_OB_IMPORT_TABLE_TASK_HISTORY
          • oceanbase.DBA_OB_IMPORT_TABLE_TASKS
          • oceanbase.DBA_OB_KV_TTL_TASK_HISTORY
          • oceanbase.DBA_OB_KV_TTL_TASKS
          • oceanbase.DBA_OB_LOG_RESTORE_SOURCE
          • oceanbase.DBA_OB_LS
          • oceanbase.DBA_OB_LS_ARB_REPLICA_TASKS
          • oceanbase.DBA_OB_LS_ARB_REPLICA_TASK_HISTORY
          • oceanbase.DBA_OB_LS_HISTORY
          • oceanbase.DBA_OB_LS_LOCATIONS
          • oceanbase.DBA_OB_LS_LOG_ARCHIVE_PROGRESS
          • oceanbase.DBA_OB_LS_REPLICA_TASKS
          • oceanbase.DBA_OB_LS_REPLICA_TASK_HISTORY
          • oceanbase.DBA_OB_MAJOR_COMPACTION
          • oceanbase.DBA_OB_OUTLINE_CONCURRENT_HISTORY
          • oceanbase.DBA_OB_OUTLINES
          • oceanbase.DBA_OB_RECOVER_TABLE_JOB_HISTORY
          • oceanbase.DBA_OB_SERVICES
          • oceanbase.DBA_OB_RECOVER_TABLE_JOBS
          • oceanbase.DBA_OB_RESOURCE_POOLS
          • oceanbase.DBA_OB_RESTORE_HISTORY
          • oceanbase.DBA_OB_RESTORE_PROGRESS
          • oceanbase.DBA_OB_ROOTSERVICE_EVENT_HISTORY
          • oceanbase.DBA_OB_RSRC_IO_DIRECTIVES
          • oceanbase.DBA_OB_SEQUENCE_OBJECTS
          • oceanbase.DBA_OB_SERVER_EVENT_HISTORY
          • oceanbase.DBA_OB_SERVER_JOBS
          • oceanbase.DBA_OB_SERVERS
          • oceanbase.DBA_OB_SYS_VARIABLES
          • oceanbase.DBA_OB_TABLE_LOCATIONS
          • oceanbase.DBA_OB_TABLE_OPT_STAT_GATHER_HISTORY
          • oceanbase.DBA_OB_TABLE_STAT_STALE_INFO
          • oceanbase.DBA_OB_TABLEGROUP_PARTITIONS
          • oceanbase.DBA_OB_TABLEGROUP_SUBPARTITIONS
          • oceanbase.DBA_OB_TABLEGROUP_TABLES
          • oceanbase.DBA_OB_TABLEGROUPS
          • oceanbase.DBA_OB_TABLET_REPLICAS
          • oceanbase.DBA_OB_TABLET_TO_LS
          • oceanbase.DBA_OB_TASK_OPT_STAT_GATHER_HISTORY
          • oceanbase.DBA_OB_TEMP_FILES
          • oceanbase.DBA_OB_TENANT_EVENT_HISTORY
          • oceanbase.DBA_OB_TENANT_JOBS
          • oceanbase.DBA_OB_TENANTS
          • oceanbase.DBA_OB_TRANSFER_PARTITION_TASKS
          • oceanbase.DBA_OB_TRANSFER_PARTITION_TASK_HISTORY
          • oceanbase.DBA_OB_TRANSFER_TASK_HISTORY
          • oceanbase.DBA_OB_TRANSFER_TASKS
          • DBA_OB_TRUSTED_ROOT_CERTIFICATE
          • oceanbase.DBA_OB_UNIT_CONFIGS
          • oceanbase.DBA_OB_UNIT_JOBS
          • oceanbase.DBA_OB_UNITS
          • oceanbase.DBA_OB_USER_DEFINED_RULES
          • oceanbase.DBA_OB_USERS
          • oceanbase.DBA_OB_ZONE_MAJOR_COMPACTION
          • oceanbase.DBA_OB_ZONES
          • oceanbase.DBA_OBJECTS
          • oceanbase.DBA_PART_COL_STATISTICS
          • oceanbase.DBA_PART_HISTOGRAMS
          • oceanbase.DBA_PART_INDEXES
          • oceanbase.DBA_PART_KEY_COLUMNS
          • oceanbase.DBA_PART_TABLES
          • oceanbase.DBA_RSRC_CONSUMER_GROUPS
          • oceanbase.DBA_RSRC_GROUP_MAPPINGS
          • oceanbase.DBA_RSRC_PLAN_DIRECTIVES
          • oceanbase.DBA_RSRC_PLANS
          • oceanbase.DBA_SCHEDULER_JOBS
          • oceanbase.DBA_SCHEDULER_JOB_RUN_DETAILS
          • oceanbase.DBA_SCHEDULER_WINDOWS
          • oceanbase.DBA_SEQUENCES
          • oceanbase.DBA_SQL_MANAGEMENT_CONFIG
          • oceanbase.DBA_SQL_PLAN_BASELINES
          • oceanbase.DBA_SUBPART_COL_STATISTICS
          • oceanbase.DBA_SUBPART_HISTOGRAMS
          • oceanbase.DBA_SUBPART_KEY_COLUMNS
          • oceanbase.DBA_SUBPARTITION_TEMPLATES
          • oceanbase.DBA_TAB_COL_STATISTICS
          • oceanbase.DBA_TAB_HISTOGRAMS
          • oceanbase.DBA_TAB_MODIFICATIONS
          • oceanbase.DBA_TAB_PARTITIONS
          • oceanbase.DBA_TAB_STATISTICS
          • oceanbase.DBA_TAB_STATS_HISTORY
          • oceanbase.DBA_TAB_SUBPARTITIONS
          • oceanbase.DBA_WR_ACTIVE_SESSION_HISTORY
          • oceanbase.DBA_WR_CONTROL
          • oceanbase.DBA_WR_EVENT_NAME
          • oceanbase.DBA_WR_SNAPSHOT
          • oceanbase.DBA_WR_SQLSTAT
          • oceanbase.DBA_WR_SQLTEXT
          • oceanbase.DBA_WR_STATNAME
          • oceanbase.DBA_WR_SYS_TIME_MODEL
          • oceanbase.DBA_WR_SYSSTAT
          • oceanbase.DBA_WR_SYSTEM_EVENT
        • Performance views
          • GV$ACTIVE_SESSION_HISTORY
          • GV$DML_STATS
          • GV$LATCH
          • GV$OB_COMPACTION_DIAGNOSE_INFO
          • GV$OB_COMPACTION_PROGRESS
          • GV$OB_COMPACTION_SUGGESTIONS
          • GV$OB_DTL_INTERM_RESULT_MONITOR
          • GV$OB_FLT_TRACE_CONFIG
          • GV$OB_IO_BENCHMARK
          • GV$OB_IO_CALIBRATION_STATUS
          • GV$OB_KVCACHE
          • GV$OB_LOG_STAT
          • GV$OB_LS_SNAPSHOTS
          • GV$OB_MEMORY
          • GV$OB_MEMSTORE
          • GV$OB_MEMSTORE_INFO
          • GV$OB_MERGE_INFO
          • GV$OB_NIC_INFO
          • GV$OB_RPC_INCOMING
          • GV$OB_RPC_OUTGOING
          • GV$OB_PARAMETERS
          • GV$OB_PLAN_CACHE_PLAN_EXPLAIN
          • GV$OB_PLAN_CACHE_PLAN_STAT
          • GV$OB_PLAN_CACHE_STAT
          • GV$OB_PROCESSLIST
          • GV$OB_PS_ITEM_INFO
          • GV$OB_PS_STAT
          • GV$OB_PX_P2P_DATAHUB
          • GV$OB_PX_TARGET_MONITOR
          • GV$OB_PX_WORKER_STAT
          • GV$OB_SERVER_SCHEMA_INFO
          • GV$OB_SERVERS
          • GV$OB_SESS_TIME_MODEL
          • GV$OB_SESSION
          • GV$OB_SQL_AUDIT
          • GV$SQL_JOIN_FILTER
          • GV$OB_SQL_PLAN
          • GV$SQL_PLAN_MONITOR
          • GV$OB_SQL_WORKAREA_MEMORY_INFO
          • GV$OB_SQLSTAT
          • GV$OB_SSTABLES
          • GV$OB_SYS_TIME_MODEL
          • GV$OB_TABLET_COMPACTION_HISTORY
          • GV$OB_TABLET_COMPACTION_PROGRESS
          • GV$OB_TENANT_MEMORY
          • GV$OB_TENANT_RUNTIME_INFO
          • GV$OB_TRANSACTION_PARTICIPANTS
          • GV$OB_UNITS
          • GV$SESSION_EVENT
          • GV$SESSION_LONGOPS
          • GV$SESSION_WAIT
          • GV$SESSION_WAIT_HISTORY
          • GV$SESSTAT
          • GV$SQL_WORKAREA
          • GV$SQL_WORKAREA_ACTIVE
          • GV$SQL_WORKAREA_HISTOGRAM
          • GV$SYSSTAT
          • GV$SYSTEM_EVENT
          • gv$tenant
          • gv$tenant_memstore_allocator_info
          • GV$OB_ARBITRATION_MEMBER_INFO
          • GV$OB_ARBITRATION_SERVICE_STATUS
          • GV$OB_LOCKS
          • GV$OB_OPT_STAT_GATHER_MONITOR
          • GV$OB_THREAD
          • GV$OB_PL_CACHE_OBJECT
          • GV$UNIT
          • V$OB_PL_CACHE_OBJECT
          • V$ACTIVE_SESSION_HISTORY
          • V$DML_STATS
          • V$ENCRYPTED_TABLESPACES
          • V$EVENT_NAME
          • V$LATCH
          • V$OB_ARCHIVE_DEST_STATUS
          • V$OB_COMPACTION_DIAGNOSE_INFO
          • V$OB_COMPACTION_PROGRESS
          • V$OB_COMPACTION_SUGGESTIONS
          • V$OB_COMPATIBILITY_CONTROL
          • V$OB_DTL_INTERM_RESULT_MONITOR
          • V$OB_ENCRYPTED_TABLES
          • V$OB_IO_BENCHMARK
          • V$OB_IO_CALIBRATION_STATUS
          • V$OB_KVCACHE
          • V$OB_LOG_STAT
          • V$OB_LS_LOG_RESTORE_STATUS
          • V$OB_LS_REPLICA_TASK_PLAN
          • V$OB_LS_SNAPSHOTS
          • V$OB_MEMORY
          • V$OB_MEMSTORE
          • V$OB_MEMSTORE_INFO
          • V$OB_MERGE_INFO
          • V$OB_NIC_INFO
          • V$OB_RPC_INCOMING
          • V$OB_RPC_OUTGOING
          • V$OB_PARAMETERS
          • V$OB_PLAN_CACHE_PLAN_EXPLAIN
          • V$OB_PLAN_CACHE_PLAN_STAT
          • V$OB_PLAN_CACHE_STAT
          • V$OB_PROCESSLIST
          • V$OB_PS_ITEM_INFO
          • V$OB_PS_STAT
          • V$OB_PX_P2P_DATAHUB
          • V$OB_PX_TARGET_MONITOR
          • V$OB_PX_WORKER_STAT
          • V$OB_SERVER_SCHEMA_INFO
          • V$OB_SERVERS
          • V$OB_SESS_TIME_MODEL
          • V$OB_SESSION
          • V$SESSION_EVENT
          • V$OB_SQL_AUDIT
          • V$SQL_JOIN_FILTER
          • V$OB_SQL_PLAN
          • V$OB_SQL_WORKAREA_MEMORY_INFO
          • V$OB_SQLSTAT
          • V$OB_SSTABLES
          • V$OB_SYS_TIME_MODEL
          • V$OB_TABLET_COMPACTION_HISTORY
          • V$OB_TABLET_COMPACTION_PROGRESS
          • V$OB_TENANT_MEMORY
          • V$OB_TENANT_RUNTIME_INFO
          • V$OB_TIMESTAMP_SERVICE
          • V$OB_TRANSACTION_PARTICIPANTS
          • V$OB_UNITS
          • V$RESTORE_POINT
          • V$RSRC_PLAN
          • V$SESSION_LONGOPS
          • V$SESSION_WAIT
          • V$SESSION_WAIT_HISTORY
          • V$SESSTAT
          • V$SQL_MONITOR_STATNAME
          • V$SQL_PLAN_MONITOR
          • V$SQL_WORKAREA
          • V$SQL_WORKAREA_ACTIVE
          • V$SQL_WORKAREA_HISTOGRAM
          • V$STATNAME
          • V$SYSSTAT
          • V$SYSTEM_EVENT
          • V$OB_ARBITRATION_MEMBER_INFO
          • V$OB_ARBITRATION_SERVICE_STATUS
          • V$OB_LOCKS
          • V$OB_OPT_STAT_GATHER_MONITOR
          • V$OB_THREAD
          • v$tenant_memstore_allocator_info
          • V$UNIT
      • MySQL tenant views
        • Dictionary views
          • information_schema.CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS
          • information_schema.CHARACTER_SETS
          • information_schema.CHECK_CONSTRAINTS
          • information_schema.COLLATION_CHARACTER_SET_APPLICABILITY
          • information_schema.COLLATIONS
          • information_schema.COLUMN_PRIVILEGES
          • information_schema.COLUMNS
          • information_schema.ENGINES
          • information_schema.events
          • information_schema.GLOBAL_STATUS
          • information_schema.GLOBAL_VARIABLES
          • information_schema.KEY_COLUMN_USAGE
          • information_schema.PARAMETERS
          • information_schema.PARTITIONS
          • information_schema.PROCESSLIST
          • information_schema.QUERY_RESPONSE_TIME
          • information_schema.REFERENTIAL_CONSTRAINTS
          • information_schema.ROUTINES
          • information_schema.SCHEMA_PRIVILEGES
          • information_schema.SCHEMATA
          • information_schema.SESSION_STATUS
          • information_schema.SESSION_VARIABLES
          • information_schema.ST_GEOMETRY_COLUMNS
          • information_schema.ST_SPATIAL_REFERENCE_SYSTEMS
          • information_schema.STATISTICS
          • information_schema.TABLE_CONSTRAINTS
          • information_schema.TABLE_PRIVILEGES
          • information_schema.TABLES
          • information_schema.USER_PRIVILEGES
          • information_schema.VIEW_TABLE_USAGE
          • information_schema.VIEWS
          • mysql.columns_priv
          • mysql.db
          • mysql.default_roles
          • mysql.help_category
          • mysql.help_keyword
          • mysql.help_relation
          • mysql.help_topic
          • mysql.proc
          • mysql.procs_priv
          • mysql.role_edges
          • mysql.time_zone
          • mysql.time_zone_name
          • mysql.time_zone_transition
          • mysql.time_zone_transition_type
          • mysql.user
          • oceanbase.ALL_OB_EXTERNAL_TABLE_FILES
          • oceanbase.DBA_DB_LINKS
          • oceanbase.DBA_IND_PARTITIONS
          • oceanbase.DBA_IND_STATISTICS
          • oceanbase.DBA_IND_SUBPARTITIONS
          • DBA_INDEX_USAGE
          • DBA_MVIEW_LOGS
          • DBA_MVIEWS
          • DBA_MVREF_CHANGE_STATS
          • DBA_MVREF_RUN_STATS
          • DBA_MVREF_STATS
          • DBA_MVREF_STATS_PARAMS
          • DBA_MVREF_STATS_SYS_DEFAULTS
          • DBA_MVREF_STMT_STATS
          • oceanbase.DBA_OB_ACCESS_POINT
          • oceanbase.DBA_OB_ARCHIVE_DEST
          • oceanbase.DBA_OB_ARCHIVELOG
          • oceanbase.DBA_OB_ARCHIVELOG_PIECE_FILES
          • oceanbase.DBA_OB_ARCHIVELOG_SUMMARY
          • oceanbase.DBA_OB_AUTO_INCREMENT
          • DBA_OB_AUX_STATISTICS
          • oceanbase.DBA_OB_BACKUP_DELETE_JOB_HISTORY
          • oceanbase.DBA_OB_BACKUP_DELETE_JOBS
          • oceanbase.DBA_OB_BACKUP_DELETE_POLICY
          • oceanbase.DBA_OB_BACKUP_DELETE_TASK_HISTORY
          • oceanbase.DBA_OB_BACKUP_DELETE_TASKS
          • oceanbase.DBA_OB_BACKUP_JOB_HISTORY
          • oceanbase.DBA_OB_BACKUP_JOBS
          • oceanbase.DBA_OB_BACKUP_PARAMETER
          • oceanbase.DBA_OB_BACKUP_SET_FILES
          • oceanbase.DBA_OB_BACKUP_STORAGE_INFO
          • oceanbase.DBA_OB_BACKUP_STORAGE_INFO_HISTORY
          • oceanbase.DBA_OB_BACKUP_TASK_HISTORY
          • oceanbase.DBA_OB_BACKUP_TASKS
          • oceanbase.DBA_OB_BALANCE_JOB_HISTORY
          • oceanbase.DBA_OB_BALANCE_JOBS
          • oceanbase.DBA_OB_BALANCE_TASK_HISTORY
          • oceanbase.DBA_OB_BALANCE_TASKS
          • oceanbase.DBA_OB_CONCURRENT_LIMIT_SQL
          • oceanbase.DBA_OB_DATA_DICTIONARY_IN_LOG
          • oceanbase.DBA_OB_DATABASE_PRIVILEGE
          • oceanbase.DBA_OB_DATABASES
          • oceanbase.DBA_OB_DEADLOCK_EVENT_HISTORY
          • oceanbase.DBA_OB_EXTERNAL_TABLE_FILES
          • oceanbase.DBA_OB_FREEZE_INFO
          • oceanbase.DBA_OB_IMPORT_TABLE_JOB_HISTORY
          • oceanbase.DBA_OB_IMPORT_TABLE_JOBS
          • oceanbase.DBA_OB_IMPORT_TABLE_TASK_HISTORY
          • oceanbase.DBA_OB_IMPORT_TABLE_TASKS
          • oceanbase.DBA_OB_KV_TTL_TASK_HISTORY
          • oceanbase.DBA_OB_KV_TTL_TASKS
          • oceanbase.DBA_OB_LOG_RESTORE_SOURCE
          • oceanbase.DBA_OB_LS
          • oceanbase.DBA_OB_LS_ARB_REPLICA_TASKS
          • oceanbase.DBA_OB_LS_ARB_REPLICA_TASK_HISTORY
          • oceanbase.DBA_OB_LS_HISTORY
          • oceanbase.DBA_OB_LS_LOCATIONS
          • oceanbase.DBA_OB_LS_LOG_ARCHIVE_PROGRESS
          • oceanbase.DBA_OB_LS_REPLICA_TASKS
          • oceanbase.DBA_OB_LS_REPLICA_TASK_HISTORY
          • oceanbase.DBA_OB_MAJOR_COMPACTION
          • oceanbase.DBA_OB_OUTLINE_CONCURRENT_HISTORY
          • oceanbase.DBA_OB_OUTLINES
          • oceanbase.DBA_OB_RECOVER_TABLE_JOB_HISTORY
          • oceanbase.DBA_OB_RECOVER_TABLE_JOBS
          • oceanbase.DBA_OB_SERVICES
          • oceanbase.DBA_OB_RESTORE_HISTORY
          • oceanbase.DBA_OB_RESTORE_PROGRESS
          • oceanbase.DBA_OB_RSRC_IO_DIRECTIVES
          • oceanbase.DBA_OB_SEQUENCE_OBJECTS
          • oceanbase.DBA_OB_SYS_VARIABLES
          • oceanbase.DBA_OB_TABLE_LOCATIONS
          • oceanbase.DBA_OB_TABLE_OPT_STAT_GATHER_HISTORY
          • oceanbase.DBA_OB_TABLE_STAT_STALE_INFO
          • oceanbase.DBA_OB_TABLEGROUP_PARTITIONS
          • oceanbase.DBA_OB_TABLEGROUP_SUBPARTITIONS
          • oceanbase.DBA_OB_TABLEGROUP_TABLES
          • oceanbase.DBA_OB_TABLEGROUPS
          • oceanbase.DBA_OB_TABLET_REPLICAS
          • oceanbase.DBA_OB_TABLET_TO_LS
          • oceanbase.DBA_OB_TASK_OPT_STAT_GATHER_HISTORY
          • oceanbase.DBA_OB_TENANT_EVENT_HISTORY
          • oceanbase.DBA_OB_TENANTS
          • oceanbase.DBA_OB_TEMP_FILES
          • oceanbase.DBA_OB_TRANSFER_PARTITION_TASKS
          • oceanbase.DBA_OB_TRANSFER_PARTITION_TASK_HISTORY
          • oceanbase.DBA_OB_TRANSFER_TASK_HISTORY
          • oceanbase.DBA_OB_TRANSFER_TASKS
          • oceanbase.DBA_OB_USER_DEFINED_RULES
          • oceanbase.DBA_OB_USERS
          • oceanbase.DBA_OB_ZONE_MAJOR_COMPACTION
          • oceanbase.DBA_OBJECTS
          • oceanbase.DBA_PART_COL_STATISTICS
          • oceanbase.DBA_PART_HISTOGRAMS
          • oceanbase.DBA_PART_INDEXES
          • oceanbase.DBA_PART_KEY_COLUMNS
          • oceanbase.DBA_PART_TABLES
          • oceanbase.DBA_RSRC_CONSUMER_GROUPS
          • oceanbase.DBA_RSRC_GROUP_MAPPINGS
          • oceanbase.DBA_RSRC_PLAN_DIRECTIVES
          • oceanbase.DBA_RSRC_PLANS
          • oceanbase.DBA_SCHEDULER_JOBS
          • oceanbase.DBA_SCHEDULER_JOB_RUN_DETAILS
          • oceanbase.DBA_SCHEDULER_WINDOWS
          • oceanbase.DBA_SEQUENCES
          • oceanbase.DBA_SQL_MANAGEMENT_CONFIG
          • oceanbase.DBA_SQL_PLAN_BASELINES
          • oceanbase.DBA_SUBPART_COL_STATISTICS
          • oceanbase.DBA_SUBPART_HISTOGRAMS
          • oceanbase.DBA_SUBPART_KEY_COLUMNS
          • oceanbase.DBA_SUBPARTITION_TEMPLATES
          • oceanbase.DBA_TAB_COL_STATISTICS
          • oceanbase.DBA_TAB_HISTOGRAMS
          • oceanbase.DBA_TAB_MODIFICATIONS
          • oceanbase.DBA_TAB_PARTITIONS
          • oceanbase.DBA_TAB_STATISTICS
          • oceanbase.DBA_TAB_STATS_HISTORY
          • oceanbase.DBA_TAB_SUBPARTITIONS
          • oceanbase.DBA_WR_ACTIVE_SESSION_HISTORY
          • oceanbase.DBA_WR_CONTROL
          • oceanbase.DBA_WR_EVENT_NAME
          • oceanbase.DBA_WR_SNAPSHOT
          • oceanbase.DBA_WR_SQLSTAT
          • oceanbase.DBA_WR_SQLTEXT
          • oceanbase.DBA_WR_STATNAME
          • oceanbase.DBA_WR_SYS_TIME_MODEL
          • oceanbase.DBA_WR_SYSSTAT
          • oceanbase.DBA_WR_SYSTEM_EVENT
        • Performance views
          • GV$ACTIVE_SESSION_HISTORY
          • GV$DML_STATS
          • GV$LATCH
          • GV$OB_COMPACTION_DIAGNOSE_INFO
          • GV$OB_COMPACTION_PROGRESS
          • GV$OB_COMPACTION_SUGGESTIONS
          • GV$OB_DTL_INTERM_RESULT_MONITOR
          • GV$OB_FLT_TRACE_CONFIG
          • GV$OB_IO_BENCHMARK
          • GV$OB_IO_CALIBRATION_STATUS
          • GV$OB_KVCACHE
          • GV$OB_LOG_STAT
          • GV$OB_LS_SNAPSHOTS
          • GV$OB_MEMORY
          • GV$OB_MEMSTORE
          • GV$OB_MEMSTORE_INFO
          • GV$OB_MERGE_INFO
          • GV$OB_NIC_INFO
          • GV$OB_RPC_INCOMING
          • GV$OB_RPC_OUTGOING
          • GV$OB_PARAMETERS
          • GV$OB_PLAN_CACHE_PLAN_EXPLAIN
          • GV$OB_PLAN_CACHE_PLAN_STAT
          • GV$OB_PLAN_CACHE_STAT
          • GV$OB_PROCESSLIST
          • GV$OB_PS_ITEM_INFO
          • GV$OB_PS_STAT
          • GV$OB_PX_P2P_DATAHUB
          • GV$OB_PX_TARGET_MONITOR
          • GV$OB_PX_WORKER_STAT
          • GV$OB_SERVER_SCHEMA_INFO
          • GV$OB_SERVERS
          • GV$OB_SESS_TIME_MODEL
          • GV$OB_SESSION
          • GV$OB_SQL_AUDIT
          • GV$SQL_JOIN_FILTER
          • GV$OB_SQL_PLAN
          • GV$OB_SQL_WORKAREA_MEMORY_INFO
          • GV$OB_SQLSTAT
          • GV$OB_SSTABLES
          • GV$OB_SYS_TIME_MODEL
          • GV$OB_TABLET_COMPACTION_HISTORY
          • GV$OB_TABLET_COMPACTION_PROGRESS
          • GV$OB_TENANT_MEMORY
          • GV$OB_TRANSACTION_PARTICIPANTS
          • GV$OB_UNITS
          • GV$SESSION_EVENT
          • GV$SESSION_LONGOPS
          • GV$SESSION_WAIT
          • GV$SESSION_WAIT_HISTORY
          • GV$SESSTAT
          • GV$SQL_PLAN_MONITOR
          • GV$SQL_WORKAREA
          • GV$SQL_WORKAREA_ACTIVE
          • GV$SQL_WORKAREA_HISTOGRAM
          • GV$SYSSTAT
          • GV$SYSTEM_EVENT
          • GV$OB_ARBITRATION_MEMBER_INFO
          • GV$OB_ARBITRATION_SERVICE_STATUS
          • GV$OB_LOCKS
          • GV$OB_OPT_STAT_GATHER_MONITOR
          • GV$OB_THREAD
          • GV$OB_PL_CACHE_OBJECT
          • V$OB_PL_CACHE_OBJECT
          • V$ACTIVE_SESSION_HISTORY
          • V$DML_STATS
          • V$EVENT_NAME
          • V$LATCH
          • V$OB_ARCHIVE_DEST_STATUS
          • V$OB_COMPACTION_DIAGNOSE_INFO
          • V$OB_COMPACTION_PROGRESS
          • V$OB_COMPACTION_SUGGESTIONS
          • V$OB_COMPATIBILITY_CONTROL
          • V$OB_DTL_INTERM_RESULT_MONITOR
          • V$OB_ENCRYPTED_TABLES
          • V$ENCRYPTED_TABLESPACES
          • V$OB_IO_BENCHMARK
          • V$OB_IO_CALIBRATION_STATUS
          • V$OB_KVCACHE
          • V$OB_LOG_STAT
          • V$OB_LS_LOG_RESTORE_STATUS
          • V$OB_LS_REPLICA_TASK_PLAN
          • V$OB_LS_SNAPSHOTS
          • V$OB_MEMORY
          • V$OB_MEMSTORE
          • V$OB_MEMSTORE_INFO
          • V$OB_MERGE_INFO
          • V$OB_NIC_INFO
          • V$OB_RPC_INCOMING
          • V$OB_RPC_OUTGOING
          • V$OB_PARAMETERS
          • V$OB_PLAN_CACHE_PLAN_EXPLAIN
          • V$OB_PLAN_CACHE_PLAN_STAT
          • V$OB_PLAN_CACHE_STAT
          • V$OB_PROCESSLIST
          • V$OB_PS_ITEM_INFO
          • V$OB_PS_STAT
          • V$OB_PX_P2P_DATAHUB
          • V$OB_PX_TARGET_MONITOR
          • V$OB_PX_WORKER_STAT
          • V$RSRC_PLAN
          • V$OB_SERVER_SCHEMA_INFO
          • V$OB_SERVERS
          • V$OB_SESS_TIME_MODEL
          • V$OB_SESSION
          • V$SESSION_EVENT
          • V$OB_SQL_AUDIT
          • V$SQL_JOIN_FILTER
          • V$OB_SQL_PLAN
          • V$OB_SQL_WORKAREA_MEMORY_INFO
          • V$OB_SQLSTAT
          • V$OB_SSTABLES
          • V$OB_SYS_TIME_MODEL
          • V$OB_TABLET_COMPACTION_HISTORY
          • V$OB_TABLET_COMPACTION_PROGRESS
          • V$OB_TENANT_MEMORY
          • V$OB_TIMESTAMP_SERVICE
          • V$OB_TRANSACTION_PARTICIPANTS
          • V$OB_UNITS
          • V$RESTORE_POINT
          • V$SESSION_LONGOPS
          • V$SESSION_WAIT
          • V$SESSION_WAIT_HISTORY
          • V$SESSTAT
          • V$SQL_MONITOR_STATNAME
          • V$SQL_PLAN_MONITOR
          • V$SQL_WORKAREA
          • V$SQL_WORKAREA_ACTIVE
          • V$SQL_WORKAREA_HISTOGRAM
          • V$STATNAME
          • V$SYSSTAT
          • V$SYSTEM_EVENT
          • V$OB_ARBITRATION_MEMBER_INFO
          • V$OB_ARBITRATION_SERVICE_STATUS
          • V$OB_LOCKS
          • V$OB_OPT_STAT_GATHER_MONITOR
          • V$OB_THREAD
      • Oracle tenant views
        • Dictionary views
          • ALL_ALL_TABLES
          • ALL_ARGUMENTS
          • ALL_COL_COMMENTS
          • ALL_COL_PRIVS
          • ALL_COLL_TYPES
          • ALL_CONS_COLUMNS
          • ALL_CONSTRAINTS
          • ALL_DB_LINKS
          • ALL_DEF_AUDIT_OPTS
          • ALL_DEPENDENCIES
          • ALL_DIRECTORIES
          • ALL_ERRORS
          • ALL_IND_COLUMNS
          • ALL_IND_EXPRESSIONS
          • ALL_IND_PARTITIONS
          • ALL_IND_STATISTICS
          • ALL_IND_SUBPARTITIONS
          • ALL_INDEXES
          • ALL_METHOD_PARAMS
          • ALL_MVIEW_LOGS
          • ALL_MVIEWS
          • ALL_OB_EXTERNAL_TABLE_FILES
          • ALL_OBJECTS
          • ALL_PART_COL_STATISTICS
          • ALL_PART_HISTOGRAMS
          • ALL_PART_INDEXES
          • ALL_PART_KEY_COLUMNS
          • ALL_PART_TABLES
          • ALL_POLICIES
          • ALL_POLICY_CONTEXTS
          • ALL_POLICY_GROUPS
          • ALL_PROCEDURES
          • ALL_PROFILES
          • ALL_SCHEDULER_JOB_ARGS
          • ALL_SCHEDULER_PROGRAM_ARGS
          • ALL_SCHEDULER_WINDOWS
          • ALL_SEC_RELEVANT_COLS
          • ALL_SEQUENCES
          • ALL_SOURCE
          • ALL_SUBPART_COL_STATISTICS
          • ALL_SUBPART_HISTOGRAMS
          • ALL_SUBPART_KEY_COLUMNS
          • ALL_SUBPARTITION_TEMPLATES
          • ALL_SYNONYMS
          • ALL_TAB_COL_STATISTICS
          • ALL_TAB_COLS
          • ALL_TAB_COLUMNS
          • ALL_TAB_COMMENTS
          • ALL_TAB_HISTOGRAMS
          • ALL_TAB_MODIFICATIONS
          • ALL_TAB_PARTITIONS
          • ALL_TAB_PRIVS
          • ALL_TAB_STATISTICS
          • ALL_TAB_STATS_HISTORY
          • ALL_TAB_SUBPARTITIONS
          • ALL_TABLES
          • ALL_TRIGGER_ORDERING
          • ALL_TRIGGERS
          • ALL_TYPE_ATTRS
          • ALL_TYPE_METHODS
          • ALL_TYPES
          • ALL_USERS
          • ALL_VIEWS
          • AUDIT_ACTIONS
          • DBA_ALL_TABLES
          • DBA_ARGUMENTS
          • DBA_AUDIT_EXISTS
          • DBA_AUDIT_OBJECT
          • DBA_AUDIT_SESSION
          • DBA_AUDIT_STATEMENT
          • DBA_AUDIT_TRAIL
          • DBA_COL_COMMENTS
          • DBA_COL_PRIVS
          • DBA_COLL_TYPES
          • DBA_CONS_COLUMNS
          • DBA_CONSTRAINTS
          • DBA_CONTEXT
          • DBA_DB_LINKS
          • DBA_DEPENDENCIES
          • DBA_DIRECTORIES
          • DBA_ERRORS
          • DBA_IND_COLUMNS
          • DBA_IND_EXPRESSIONS
          • DBA_IND_PARTITIONS
          • DBA_IND_STATISTICS
          • DBA_IND_SUBPARTITIONS
          • DBA_INDEX_USAGE
          • DBA_INDEXES
          • DBA_JOBS
          • DBA_JOBS_RUNNING
          • DBA_METHOD_PARAMS
          • DBA_MVIEW_LOGS
          • DBA_MVIEWS
          • DBA_MVREF_CHANGE_STATS
          • DBA_MVREF_RUN_STATS
          • DBA_MVREF_STATS
          • DBA_MVREF_STATS_PARAMS
          • DBA_MVREF_STATS_SYS_DEFAULTS
          • DBA_MVREF_STMT_STATS
          • DBA_OB_ACCESS_POINT
          • DBA_OB_ARCHIVE_DEST
          • DBA_OB_ARCHIVELOG
          • DBA_OB_ARCHIVELOG_PIECE_FILES
          • DBA_OB_ARCHIVELOG_SUMMARY
          • DBA_OB_AUX_STATISTICS
          • DBA_OB_BACKUP_DELETE_JOB_HISTORY
          • DBA_OB_BACKUP_DELETE_JOBS
          • DBA_OB_BACKUP_DELETE_POLICY
          • DBA_OB_BACKUP_DELETE_TASK_HISTORY
          • DBA_OB_BACKUP_DELETE_TASKS
          • DBA_OB_BACKUP_JOB_HISTORY
          • DBA_OB_BACKUP_JOBS
          • DBA_OB_BACKUP_PARAMETER
          • DBA_OB_BACKUP_SET_FILES
          • DBA_OB_BACKUP_STORAGE_INFO
          • DBA_OB_BACKUP_STORAGE_INFO_HISTORY
          • DBA_OB_BACKUP_TASK_HISTORY
          • DBA_OB_BACKUP_TASKS
          • DBA_OB_BALANCE_JOB_HISTORY
          • DBA_OB_BALANCE_JOBS
          • DBA_OB_BALANCE_TASK_HISTORY
          • DBA_OB_BALANCE_TASKS
          • DBA_OB_CONCURRENT_LIMIT_SQL
          • DBA_OB_DATA_DICTIONARY_IN_LOG
          • DBA_OB_DATABASE_PRIVILEGE
          • DBA_OB_DATABASES
          • DBA_OB_DEADLOCK_EVENT_HISTORY
          • DBA_OB_EXTERNAL_TABLE_FILES
          • DBA_OB_FREEZE_INFO
          • DBA_OB_IMPORT_TABLE_JOB_HISTORY
          • DBA_OB_IMPORT_TABLE_JOBS
          • DBA_OB_IMPORT_TABLE_TASK_HISTORY
          • DBA_OB_IMPORT_TABLE_TASKS
          • DBA_OB_LOG_RESTORE_SOURCE
          • DBA_OB_LS
          • DBA_OB_LS_ARB_REPLICA_TASKS
          • DBA_OB_LS_ARB_REPLICA_TASK_HISTORY
          • DBA_OB_LS_HISTORY
          • DBA_OB_LS_LOCATIONS
          • DBA_OB_LS_LOG_ARCHIVE_PROGRESS
          • DBA_OB_SERVICES
          • DBA_OB_LS_REPLICA_TASKS
          • DBA_OB_LS_REPLICA_TASK_HISTORY
          • DBA_OB_MAJOR_COMPACTION
          • DBA_OB_OUTLINE_CONCURRENT_HISTORY
          • DBA_OB_OUTLINES
          • DBA_OB_RECOVER_TABLE_JOB_HISTORY
          • DBA_OB_RECOVER_TABLE_JOBS
          • DBA_OB_RESTORE_HISTORY
          • DBA_OB_RESTORE_PROGRESS
          • DBA_OB_RSRC_IO_DIRECTIVES
          • DBA_OB_SPATIAL_COLUMNS
          • DBA_OB_SYS_VARIABLES
          • DBA_OB_TABLE_LOCATIONS
          • DBA_OB_TABLE_OPT_STAT_GATHER_HISTORY
          • DBA_OB_TABLE_STAT_STALE_INFO
          • DBA_OB_TABLEGROUP_PARTITIONS
          • DBA_OB_TABLEGROUP_SUBPARTITIONS
          • DBA_OB_TABLEGROUP_TABLES
          • DBA_OB_TABLEGROUPS
          • DBA_OB_TABLET_REPLICAS
          • DBA_OB_TABLET_TO_LS
          • DBA_OB_TASK_OPT_STAT_GATHER_HISTORY
          • DBA_OB_TENANT_EVENT_HISTORY
          • DBA_OB_TEMP_FILES
          • DBA_OB_TENANTS
          • DBA_OB_TRANSFER_PARTITION_TASKS
          • DBA_OB_TRANSFER_PARTITION_TASK_HISTORY
          • DBA_OB_TRANSFER_TASK_HISTORY
          • DBA_OB_TRANSFER_TASKS
          • DBA_OB_USER_DEFINED_RULES
          • DBA_OB_ZONE_MAJOR_COMPACTION
          • DBA_OBJ_AUDIT_OPTS
          • DBA_OBJECTS
          • DBA_PART_COL_STATISTICS
          • DBA_PART_HISTOGRAMS
          • DBA_PART_INDEXES
          • DBA_PART_KEY_COLUMNS
          • DBA_PART_TABLES
          • DBA_POLICIES
          • DBA_POLICY_CONTEXTS
          • DBA_POLICY_GROUPS
          • DBA_PROCEDURES
          • DBA_PROFILES
          • DBA_RECYCLEBIN
          • DBA_ROLE_PRIVS
          • DBA_ROLES
          • DBA_RSRC_CONSUMER_GROUPS
          • DBA_RSRC_GROUP_MAPPINGS
          • DBA_RSRC_PLAN_DIRECTIVES
          • DBA_RSRC_PLANS
          • DBA_SCHEDULER_JOB_ARGS
          • DBA_SCHEDULER_JOB_RUN_DETAILS
          • DBA_SCHEDULER_JOBS
          • DBA_SCHEDULER_PROGRAM
          • DBA_SCHEDULER_PROGRAM_ARGS
          • DBA_SCHEDULER_WINDOWS
          • DBA_SEC_RELEVANT_COLS
          • DBA_SEGMENTS
          • DBA_SEQUENCES
          • DBA_SOURCE
          • DBA_SQL_MANAGEMENT_CONFIG
          • DBA_SQL_PLAN_BASELINES
          • DBA_STMT_AUDIT_OPTS
          • DBA_SUBPART_COL_STATISTICS
          • DBA_SUBPART_HISTOGRAMS
          • DBA_SUBPART_KEY_COLUMNS
          • DBA_SUBPARTITION_TEMPLATES
          • DBA_SYNONYMS
          • DBA_SYS_PRIVS
          • DBA_TAB_COL_STATISTICS
          • DBA_TAB_COLS
          • DBA_TAB_COLUMNS
          • DBA_TAB_COMMENTS
          • DBA_TAB_HISTOGRAMS
          • DBA_TAB_MODIFICATIONS
          • DBA_TAB_PARTITIONS
          • DBA_TAB_PRIVS
          • DBA_TAB_STATISTICS
          • DBA_TAB_STATS_HISTORY
          • DBA_TAB_SUBPARTITIONS
          • DBA_TABLES
          • DBA_TABLESPACES
          • DBA_TRIGGER_ORDERING
          • DBA_TRIGGERS
          • DBA_TYPE_ATTRS
          • DBA_TYPE_METHODS
          • DBA_TYPES
          • DBA_USERS
          • DBA_VIEWS
          • DBA_WR_ACTIVE_SESSION_HISTORY
          • DBA_WR_CONTROL
          • DBA_WR_EVENT_NAME
          • DBA_WR_SNAPSHOT
          • DBA_WR_SQLSTAT
          • DBA_WR_SQLTEXT
          • DBA_WR_STATNAME
          • DBA_WR_SYS_TIME_MODEL
          • DBA_WR_SYSSTAT
          • DBA_WR_SYSTEM_EVENT
          • DBMS_LOCK_ALLOCATED
          • DICT
          • DICTIONARY
          • NLS_DATABASE_PARAMETERS
          • NLS_INSTANCE_PARAMETERS
          • NLS_SESSION_PARAMETERS
          • PROXY_USERS
          • ROLE_ROLE_PRIVS
          • ROLE_SYS_PRIVS
          • ROLE_TAB_PRIVS
          • STMT_AUDIT_OPTION_MAP
          • TENANT_VIRTUAL_GLOBAL_VARIABLE
          • TENANT_VIRTUAL_SESSION_VARIABLE
          • USER_ALL_TABLES
          • USER_ARGUMENTS
          • USER_AUDIT_OBJECT
          • USER_AUDIT_SESSION
          • USER_AUDIT_STATEMENT
          • USER_AUDIT_TRAIL
          • USER_COL_COMMENTS
          • USER_COL_PRIVS
          • USER_COLL_TYPES
          • USER_CONS_COLUMNS
          • USER_CONSTRAINTS
          • USER_DB_LINKS
          • USER_DEPENDENCIES
          • USER_ERRORS
          • USER_IND_COLUMNS
          • USER_IND_EXPRESSIONS
          • USER_IND_PARTITIONS
          • USER_IND_STATISTICS
          • USER_IND_SUBPARTITIONS
          • USER_INDEXES
          • USER_JOBS
          • USER_MVIEW_LOGS
          • USER_MVIEWS
          • USER_MVREF_CHANGE_STATS
          • USER_MVREF_RUN_STATS
          • USER_MVREF_STATS
          • USER_MVREF_STATS_PARAMS
          • USER_MVREF_STATS_SYS_DEFAULTS
          • USER_MVREF_STMT_STATS
          • USER_OBJECTS
          • USER_PART_COL_STATISTICS
          • USER_PART_HISTOGRAMS
          • USER_PART_INDEXES
          • USER_PART_KEY_COLUMNS
          • USER_PART_TABLES
          • USER_POLICIES
          • USER_POLICY_CONTEXTS
          • USER_POLICY_GROUPS
          • USER_PROCEDURES
          • USER_PROFILES
          • USER_RECYCLEBIN
          • USER_ROLE_PRIVS
          • USER_SCHEDULER_JOB_ARGS
          • USER_SCHEDULER_PROGRAM_ARGS
          • USER_SEC_RELEVANT_COLS
          • USER_SEGMENTS
          • USER_SEQUENCES
          • USER_SOURCE
          • USER_SUBPART_COL_STATISTICS
          • USER_SUBPART_HISTOGRAMS
          • USER_SUBPART_KEY_COLUMNS
          • USER_SUBPARTITION_TEMPLATES
          • USER_SYNONYMS
          • USER_SYS_PRIVS
          • USER_TAB_COL_STATISTICS
          • USER_TAB_COLS
          • USER_TAB_COLUMNS
          • USER_TAB_COMMENTS
          • USER_TAB_HISTOGRAMS
          • USER_TAB_MODIFICATIONS
          • USER_TAB_PARTITIONS
          • USER_TAB_PRIVS
          • USER_TAB_STATISTICS
          • USER_TAB_STATS_HISTORY
          • USER_TAB_SUBPARTITIONS
          • USER_TABLES
          • USER_TABLESPACES
          • USER_TRIGGER_ORDERING
          • USER_TRIGGERS
          • USER_TYPE_ATTRS
          • USER_TYPE_METHODS
          • USER_TYPES
          • USER_USERS
          • USER_VIEWS
        • Performance views
          • GV$ACTIVE_SESSION_HISTORY
          • GV$DBLINK
          • GV$DML_STATS
          • GV$GLOBAL_TRANSACTION
          • GV$INSTANCE
          • GV$OB_ARBITRATION_MEMBER_INFO
          • GV$OB_COMPACTION_DIAGNOSE_INFO
          • GV$OB_COMPACTION_PROGRESS
          • GV$OB_COMPACTION_SUGGESTIONS
          • GV$OB_DTL_INTERM_RESULT_MONITOR
          • GV$OB_FLT_TRACE_CONFIG
          • GV$OB_GLOBAL_TRANSACTION
          • GV$OB_KVCACHE
          • GV$OB_LOG_STAT
          • GV$OB_LS_SNAPSHOTS
          • GV$OB_MEMORY
          • GV$OB_MEMSTORE
          • GV$OB_MEMSTORE_INFO
          • GV$OB_NIC_INFO
          • GV$OB_OPT_STAT_GATHER_MONITOR
          • GV$OB_PARAMETERS
          • GV$OB_PLAN_CACHE_PLAN_EXPLAIN
          • GV$OB_PL_CACHE_OBJECT
          • GV$OB_PLAN_CACHE_PLAN_STAT
          • GV$OB_PLAN_CACHE_STAT
          • GV$OB_PROCESSLIST
          • GV$OB_PS_ITEM_INFO
          • GV$OB_PS_STAT
          • GV$OB_PX_P2P_DATAHUB
          • GV$OB_PX_TARGET_MONITOR
          • GV$OB_PX_WORKER_STAT
          • GV$OB_SERVER_SCHEMA_INFO
          • GV$OB_SESS_TIME_MODEL
          • GV$OB_SESSION
          • GV$OB_SQL_AUDIT
          • GV$SQL_JOIN_FILTER
          • GV$OB_SQL_PLAN
          • GV$OB_SQL_WORKAREA_MEMORY_INFO
          • GV$OB_SQLSTAT
          • GV$OB_SSTABLES
          • GV$OB_SYS_TIME_MODEL
          • GV$OB_TABLET_COMPACTION_HISTORY
          • GV$OB_TABLET_COMPACTION_PROGRESS
          • GV$OB_TENANT_MEMORY
          • GV$OB_TRANSACTION_PARTICIPANTS
          • GV$OB_UNITS
          • GV$OPEN_CURSOR
          • GV$SESSION_WAIT
          • GV$SESSION_WAIT_HISTORY
          • GV$SESSTAT
          • GV$SQL_PLAN_MONITOR
          • GV$SQL_WORKAREA
          • GV$SQL_WORKAREA_ACTIVE
          • GV$SQL_WORKAREA_HISTOGRAM
          • GV$SYSSTAT
          • GV$SYSTEM_EVENT
          • GV$OB_ARBITRATION_SERVICE_STATUS
          • GV$OB_LOCKS
          • GV$OB_THREAD
          • V$ACTIVE_SESSION_HISTORY
          • V$DBLINK
          • V$DML_STATS
          • V$OB_ENCRYPTED_TABLES
          • V$ENCRYPTED_TABLESPACES
          • V$EVENT_NAME
          • V$GLOBAL_TRANSACTION
          • V$GLOBALCONTEXT
          • V$INSTANCE
          • V$OB_MEMORY
          • V$OB_MEMSTORE
          • V$NLS_PARAMETERS
          • V$OB_ARBITRATION_MEMBER_INFO
          • V$OB_ARCHIVE_DEST_STATUS
          • V$OB_COMPACTION_DIAGNOSE_INFO
          • V$OB_COMPACTION_PROGRESS
          • V$OB_COMPACTION_SUGGESTIONS
          • V$OB_DTL_INTERM_RESULT_MONITOR
          • V$OB_GLOBAL_TRANSACTION
          • V$OB_KVCACHE
          • V$OB_LOG_STAT
          • V$OB_LS_LOG_RESTORE_STATUS
          • V$OB_LS_SNAPSHOTS
          • V$OB_MEMSTORE_INFO
          • V$OB_NIC_INFO
          • V$OB_OPT_STAT_GATHER_MONITOR
          • V$OB_PARAMETERS
          • V$OB_PL_CACHE_OBJECT
          • V$OB_PROCESSLIST
          • V$OB_PX_P2P_DATAHUB
          • V$OB_PX_TARGET_MONITOR
          • V$OB_PX_WORKER_STAT
          • V$OB_SERVER_SCHEMA_INFO
          • V$OB_SESS_TIME_MODEL
          • V$OB_SESSION
          • V$OB_SQL_PLAN
          • V$OB_SQL_WORKAREA_MEMORY_INFO
          • V$OB_SQLSTAT
          • V$OB_SYS_TIME_MODEL
          • V$OB_TABLET_COMPACTION_HISTORY
          • V$OB_TABLET_COMPACTION_PROGRESS
          • V$OB_TIMESTAMP_SERVICE
          • V$OB_TRANSACTION_PARTICIPANTS
          • V$OB_UNITS
          • V$OPEN_CURSOR
          • V$OB_PLAN_CACHE_PLAN_EXPLAIN
          • V$OB_PLAN_CACHE_PLAN_STAT
          • V$OB_PLAN_CACHE_STAT
          • V$OB_PS_ITEM_INFO
          • V$OB_PS_STAT
          • V$RSRC_PLAN
          • V$SESSION_WAIT
          • V$SESSION_WAIT_HISTORY
          • V$SESSTAT
          • V$OB_SQL_AUDIT
          • V$SQL_JOIN_FILTER
          • V$SQL_MONITOR_STATNAME
          • V$SQL_PLAN_MONITOR
          • V$SQL_WORKAREA
          • V$SQL_WORKAREA_ACTIVE
          • V$SQL_WORKAREA_HISTOGRAM
          • V$OB_SSTABLES
          • V$RESTORE_POINT
          • V$STATNAME
          • V$SYSSTAT
          • V$SYSTEM_EVENT
          • V$OB_TENANT_MEMORY
          • V$TIMEZONE_NAMES
          • V$VERSION
          • V$OB_ARBITRATION_SERVICE_STATUS
          • V$OB_LOCKS
          • V$OB_LS_REPLICA_TASK_PLAN
          • V$OB_THREAD
      • Common statistical events
      • General wait events
    • Parameters and system variables
      • Overview
      • Parameters
        • Overview
        • Cluster-level parameters
          • alert_log_level
          • all_cluster_list
          • all_server_list
          • auto_broadcast_location_cache_rate_limit
          • auto_leader_switch_interval
          • auto_refresh_location_cache_rate_limit
          • autoinc_cache_refresh_interval
          • backup_backup_dest
          • backup_backup_dest_option
          • backup_concurrency
          • backup_dest
          • backup_dest_option
          • backup_log_archive_option
          • backup_net_limit
          • backup_recovery_window
          • backup_region
          • backup_zone
          • balance_blacklist_failure_threshold
          • balance_blacklist_retry_interval
          • balancer_emergency_percentage
          • balancer_log_interval
          • balancer_task_timeout
          • balancer_timeout_check_interval
          • balancer_tolerance_percentage
          • bf_cache_miss_count_threshold
          • bf_cache_priority
          • builtin_db_data_verify_cycle
          • cache_wash_threshold
          • clog_cache_priority
          • clog_disk_usage_limit_percentage
          • clog_disk_utilization_threshold
          • clog_expire_days
          • clog_sync_time_warn_threshold
          • clog_transport_compress_func
          • cluster
          • cluster_id
          • config_additional_dir
          • cpu_count
          • cpu_reserved
          • data_copy_concurrency
          • data_dir
          • data_disk_usage_limit_percentage
          • data_disk_write_limit_percentage
          • data_storage_error_tolerance_time
          • data_storage_warning_tolerance_time
          • datafile_disk_percentage
          • datafile_maxsize
          • datafile_next
          • datafile_size
          • dead_socket_detection_timeout
          • debug_sync_timeout
          • default_compress
          • default_compress_func
          • default_row_format
          • default_transport_compress_func
          • devname
          • diag_syslog_per_error_limit
          • disk_io_thread_count
          • dtl_buffer_size
          • election_blacklist_interval
          • election_cpu_quota
          • enable_asan_for_memory_context
          • enable_async_syslog
          • enable_auto_leader_switch
          • enable_auto_refresh_location_cache
          • enable_cgroup
          • enable_dblink
          • enable_ddl
          • enable_election_group
          • enable_global_background_resource_isolation
          • enable_global_freeze_trigger
          • enable_log_archive
          • enable_major_freeze
          • enable_manual_merge
          • enable_merge_by_turn
          • enable_ob_esi_process
          • enable_ob_ratelimit
          • enable_one_phase_commit
          • enable_perf_event
          • enable_pg
          • enable_record_trace_id
          • enable_record_trace_log
          • enable_rereplication
          • enable_rich_error_msg
          • enable_rootservice_standalone
          • enable_rpc_authentication_bypass
          • enable_separate_sys_clog
          • enable_smooth_leader_switch
          • enable_sql_audit
          • enable_sql_operator_dump
          • enable_sys_table_ddl
          • enable_sys_unit_standalone
          • enable_syslog_recycle
          • enable_syslog_wf
          • enable_tcp_keepalive
          • enable_upgrade_mode
          • fast_recovery_concurrency
          • flush_log_at_trx_commit
          • fuse_row_cache_priority
          • gc_wait_archive
          • get_leader_candidate_rpc_timeout
          • global_background_cpu_quota
          • global_index_build_single_replica_timeout
          • global_major_freeze_residual_memory
          • global_write_halt_residual_memory
          • high_priority_net_thread_count
          • ignore_replay_checksum_error
          • ignore_replica_checksum_error
          • ilog_index_expire_time
          • index_block_cache_priority
          • index_cache_priority
          • index_clog_cache_priority
          • index_info_block_cache_priority
          • internal_sql_execute_timeout
          • large_query_threshold
          • large_query_worker_percentage
          • leak_mod_to_check
          • lease_time
          • local_ip
          • location_cache_cpu_quota
          • location_cache_expire_time
          • location_cache_priority
          • location_cache_refresh_min_interval
          • location_cache_refresh_rpc_timeout
          • location_cache_refresh_sql_timeout
          • location_fetch_concurrency
          • location_refresh_thread_count
          • log_archive_batch_buffer_limit
          • log_archive_checkpoint_interval
          • log_disk_percentage
          • log_disk_size
          • log_storage_warning_tolerance_time
          • ls_meta_table_check_interval
          • max_kept_major_version_number
          • max_px_worker_count
          • max_string_print_length
          • max_syslog_file_count
          • memory_chunk_cache_size
          • memory_limit
          • memory_limit_percentage
          • memory_reserved
          • memstore_limit_percentage
          • merge_stat_sampling_ratio
          • merge_thread_count
          • merger_completion_percentage
          • merger_switch_leader_duration_time
          • merger_warm_up_duration_time
          • micro_block_merge_verify_level
          • migrate_concurrency
          • migration_disable_time
          • min_observer_version
          • minor_deferred_gc_time
          • minor_freeze_times
          • minor_merge_concurrency
          • minor_warm_up_duration_time
          • multiblock_read_gap_size
          • multiblock_read_size
          • mysql_port
          • net_thread_count
          • ob_esi_io_concurrency
          • ob_esi_max_syslog_file_count
          • ob_esi_memory_limit
          • ob_esi_rpc_port
          • ob_esi_session_timeout
          • ob_esi_syslog_level
          • ob_event_history_recycle_interval
          • ob_ratelimit_stat_period
          • ob_startup_mode
          • obconfig_url
          • observer_id
          • ofs_list
          • opt_tab_stat_cache_priority
          • partition_table_check_interval
          • plan_cache_evict_interval
          • plan_cache_high_watermark
          • plan_cache_low_watermark
          • px_task_size
          • px_workers_per_cpu_quota
          • rdma_io_thread_count
          • rebuild_replica_data_lag_threshold
          • recyclebin_object_expire_time
          • replica_safe_remove_time
          • resource_hard_limit
          • resource_soft_limit
          • restore_concurrency
          • rootservice_async_task_queue_size
          • rootservice_async_task_thread_count
          • rootservice_list
          • rootservice_memory_limit
          • rootservice_ready_check_interval
          • row_compaction_update_limit
          • row_purge_thread_count
          • rpc_client_authentication_method
          • rpc_port
          • rpc_server_authentication_method
          • rpc_timeout
          • schema_history_expire_time
          • schema_history_recycle_interval
          • server_balance_cpu_mem_tolerance_percent
          • server_balance_critical_disk_waterlevel
          • server_balance_disk_tolerance_percent
          • server_check_interval
          • server_cpu_quota_max
          • server_cpu_quota_min
          • server_data_copy_in_concurrency
          • server_data_copy_out_concurrency
          • server_permanent_offline_time
          • sql_audit_memory_limit
          • sql_login_thread_count
          • sql_net_thread_count
          • sql_protocol_min_tls_version
          • ssl_client_authentication
          • ssl_external_kms_info
          • stack_size
          • standby_fetch_log_bandwidth_limit
          • storage_meta_cache_priority
          • strict_check_os_params
          • switchover_process_thread_count
          • sys_bkgd_io_high_percentage
          • sys_bkgd_io_low_percentage
          • sys_bkgd_migration_change_member_list_timeout
          • sys_bkgd_migration_retry_num
          • sys_bkgd_net_percentage
          • sys_cpu_limit_trigger
          • syslog_compress_func
          • syslog_disk_size
          • syslog_file_uncompressed_count
          • syslog_io_bandwidth_limit
          • syslog_level
          • system_cpu_quota
          • system_memory
          • system_trace_level
          • tableapi_transport_compress_func
          • tablet_ls_cache_priority
          • tablet_meta_table_check_interval
          • tablet_meta_table_scan_batch_count
          • tablet_size
          • tcp_keepcnt
          • tcp_keepidle
          • tcp_keepintvl
          • tenant_cpu_variation_per_server
          • tenant_groups
          • tenant_task_queue_size
          • token_reserved_percentage
          • trace_log_sampling_interval
          • trace_log_slow_query_watermark
          • trx_2pc_retry_interval
          • trx_force_kill_threshold
          • trx_try_wait_lock_timeout
          • unit_balance_resource_weight
          • use_large_pages
          • user_block_cache_priority
          • user_iort_up_percentage
          • user_row_cache_priority
          • user_tab_col_stat_cache_priority
          • virtual_table_location_cache_expire_time
          • wait_leader_batch_count
          • weak_read_version_refresh_interval
          • workers_per_cpu_quota
          • zone
          • zone_merge_concurrency
          • zone_merge_order
          • zone_merge_timeout
        • Tenant-level parameters
          • arbitration_timeout
          • archive_lag_target
          • audit_sys_operations
          • audit_trail
          • backup_data_file_size
          • balancer_idle_time
          • choose_migration_source_policy
          • clog_max_unconfirmed_log_count
          • clog_persistence_compress_func
          • compaction_dag_cnt_limit
          • compaction_high_thread_score
          • compaction_low_thread_score
          • compaction_mid_thread_score
          • compaction_schedule_tablet_batch_cnt
          • compatible
          • connection_control_failed_connections_threshold
          • connection_control_max_connection_delay
          • connection_control_min_connection_delay
          • cpu_quota_concurrency
          • ddl_thread_score
          • default_auto_increment_mode
          • default_enable_extended_rowid
          • default_progressive_merge_num
          • default_table_store_format
          • dump_data_dictionary_to_log_interval
          • enable_clog_persistence_compress
          • enable_early_lock_release
          • enable_kv_ttl
          • enable_monotonic_weak_read
          • enable_rebalance
          • enable_sql_extension
          • enable_transfer
          • enable_user_defined_rewrite_rules
          • external_kms_info
          • freeze_trigger_percentage
          • ha_high_thread_score
          • ha_low_thread_score
          • ha_mid_thread_score
          • io_category_config
          • job_queue_processes
          • kv_ttl_duty_duration
          • kv_ttl_history_recycle_interval
          • lob_enable_block_cache_threshold
          • log_archive_concurrency
          • log_disk_throttling_maximum_duration
          • log_disk_throttling_percentage
          • log_disk_utilization_limit_threshold
          • log_disk_utilization_threshold
          • log_restore_concurrency
          • log_storage_compress_all
          • log_storage_compress_func
          • log_transport_compress_all
          • log_transport_compress_func
          • ls_gc_delay_time
          • major_compact_trigger
          • major_freeze_duty_time
          • max_partition_num
          • max_stale_time_for_weak_consistency
          • merger_check_interval
          • minor_compact_trigger
          • ob_compaction_schedule_interval
          • ob_enable_batched_multi_statement
          • ob_proxy_readonly_transaction_routing_policy
          • ob_query_switch_leader_retry_timeout
          • ob_ssl_invited_common_names
          • open_cursors
          • optimizer_index_cost_adj
          • partition_balance_schedule_interval
          • plsql_code_type
          • plsql_debug
          • plsql_optimize_level
          • plsql_v2_compatibility
          • query_response_time_flush
          • query_response_time_range_base
          • query_response_time_stats
          • range_optimizer_max_mem_size
          • rpc_memory_limit_percentage
          • spill_compression_codec
          • sql_work_area
          • standby_db_fetch_log_rpc_timeout
          • standby_db_preferred_upstream_log_region
          • tde_method
          • tenant_sql_login_thread_count
          • tenant_sql_net_thread_count
          • storage_rowsets_size
          • ttl_thread_score
          • undo_retention
          • workarea_size_policy
          • writing_throttling_maximum_duration
          • writing_throttling_trigger_percentage
      • System variables
        • Overview of system variables
        • Global variables
          • activate_all_roles_on_login
          • auto_increment_cache_size
          • auto_increment_increment
          • auto_increment_offset
          • autocommit
          • automatic_sp_privileges
          • binlog_row_image
          • block_encryption_mode
          • character_set_client
          • character_set_connection
          • cardinality_estimation_model
          • character_set_database
          • character_set_filesystem
          • character_set_results
          • character_set_server
          • character_set_system
          • collation_connection
          • collation_database
          • collation_server
          • connect_timeout
          • cte_max_recursion_depth
          • cursor_sharing
          • datadir
          • debug_sync
          • default_password_lifetime
          • default_storage_engine
          • div_precision_increment
          • error_on_overlap_time
          • event_scheduler
          • explicit_defaults_for_timestamp
          • foreign_key_checks
          • group_concat_max_len
          • identity
          • init_connect
          • innodb_stats_persistent
          • innodb_strict_mode
          • interactive_timeout
          • license
          • lc_time_names
          • log_row_value_options
          • lower_case_table_names
          • max_allowed_packet
          • max_connections
          • max_sp_recursion_depth
          • max_user_connections
          • net_buffer_length
          • net_read_timeout
          • net_write_timeout
          • nls_calendar
          • nls_characterset
          • nls_comp
          • nls_currency
          • nls_date_format
          • nls_date_language
          • nls_dual_currency
          • nls_iso_currency
          • nls_length_semantics
          • nls_nchar_characterset
          • nls_nchar_conv_excp
          • nls_numeric_characters
          • nls_sort
          • nls_territory
          • nls_timestamp_format
          • nls_timestamp_tz_format
          • ob_bnl_join_cache_size
          • ob_compatibility_mode
          • ob_compatibility_control
          • ob_compatibility_version
          • ob_create_table_strict_mode
          • ob_default_lob_inrow_threshold
          • ob_default_replica_num
          • ob_early_lock_release
          • ob_enable_aggregation_pushdown
          • ob_enable_blk_nestedloop_join
          • ob_enable_hash_group_by
          • ob_enable_index_direct_select
          • ob_enable_jit
          • ob_enable_pl_cache
          • ob_enable_plan_cache
          • ob_enable_rich_error_msg
          • ob_enable_sql_audit
          • ob_enable_transformation
          • ob_enable_transmission_checksum
          • ob_enable_truncate_flashback
          • ob_global_debug_sync
          • ob_log_level
          • ob_max_read_stale_time
          • ob_pl_block_timeout
          • ob_plan_cache_evict_high_percentage
          • ob_plan_cache_evict_low_percentage
          • ob_plan_cache_percentage
          • ob_proxy_global_variables_version
          • ob_query_timeout
          • ob_read_consistency
          • ob_reserved_meta_memory_percentage
          • ob_route_policy
          • ob_sql_audit_percentage
          • ob_sql_work_area_percentage
          • ob_tcp_invited_nodes
          • ob_temp_tablespace_size_percentage
          • ob_timestamp_service
          • ob_trx_idle_timeout
          • ob_trx_lock_timeout
          • ob_trx_timeout
          • optimizer_capture_sql_plan_baselines
          • ob_security_version
          • optimizer_dynamic_sampling
          • optimizer_features_enable
          • optimizer_use_sql_plan_baselines
          • parallel_degree_limit
          • parallel_degree_policy
          • parallel_max_servers
          • parallel_min_scan_time_threshold
          • parallel_servers_target
          • performance_schema
          • plugin_dir
          • plsql_ccflags
          • query_cache_size
          • query_cache_type
          • query_rewrite_enabled
          • query_rewrite_integrity
          • read_only
          • recyclebin
          • regexp_stack_limit
          • regexp_time_limit
          • resource_manager_plan
          • runtime_bloom_filter_max_size
          • runtime_filter_max_in_num
          • runtime_filter_type
          • runtime_filter_wait_time_ms
          • secure_file_priv
          • server_uuid
          • sql_auto_is_null
          • sql_mode
          • sql_quote_show_create
          • sql_safe_updates
          • sql_select_limit
          • sql_throttle_current_priority
          • sql_throttle_network
          • sql_throttle_priority
          • sql_throttle_rt
          • sql_warnings
          • system_time_zone
          • time_zone
          • transaction_isolation
          • transaction_read_only
          • tx_isolation
          • tx_read_only
          • validate_password_check_user_name
          • validate_password_length
          • validate_password_mixed_case_count
          • validate_password_number_count
          • validate_password_policy
          • validate_password_special_char_count
          • version
          • version_comment
          • wait_timeout
        • Session-level variables
          • is_result_accurate
          • last_insert_id
          • nls_language
          • ob_capability_flag
          • ob_enable_show_trace
          • ob_last_schema_version
          • ob_max_read_stale_time
          • ob_org_cluster_id
          • ob_proxy_partition_hit
          • ob_proxy_set_trx_executed
          • ob_trace_info
          • optimizer_dynamic_sampling
          • parallel_degree_limit
          • parallel_degree_policy
          • parallel_min_scan_time_threshold
          • runtime_bloom_filter_max_size
          • runtime_filter_max_in_num
          • runtime_filter_type
          • runtime_filter_wait_time_ms
          • timestamp
          • tracefile_identifier
    • Error codes
      • MySQL mode
        • Overview
        • 0001 to 3999
        • 4000 to 4499
        • 4500 to 4999
        • 5000 to 5999
        • 6000 to 6999
        • 7000 to 7999
        • 8000 to 8999
        • 9000 to 9499
        • 9500 to 9999
        • 10000 to 12000
        • 22998, 30926, 38104, and 38105
      • Oracle mode
        • Overview
        • OBE-00000 to OBE-00999
        • OBE-01000 to OBE-01499
        • OBE-01500 to OBE-01999
        • OBE-02000 to OBE-04999
        • OBE-05000 to OBE-10000
        • OBE-10000 to OBE-19999
        • OBE-20000 to OBE-29999
        • OBE-30000 to OBE-49999
        • OBE-50000 to OBE-99999
        • PLS-00000 to PLS-00999
    • Performance tuning
      • Overview
      • Performance related tools
        • System tools
          • Top
          • CPU tools
          • Memory tools
          • Disk I/O tools
          • Network tools
        • Internal tables
          • GV$SYSSTAT
          • GV$OB_SQL_AUDIT
          • GV$OB_TRANSACTION_PARTICIPANTS
        • Logs
          • slow trans
          • dump tenant info
          • Trace logs
        • OCP
      • System tuning
        • OS parameter tuning
        • Database parameter tuning
          • CPU parameters
          • I/O parameters
          • Memory-related parameters
          • Network transmission parameters
        • ODP parameter tuning
          • CPU parameters
          • Network transmission parameters
          • Routing parameters on nodes
      • Performance diagnosis
        • Monitor and diagnose the cluster performance
        • Diagnose tenant performance
        • Monitor ODP performance
        • Monitor host performance
        • WR management
          • Overview
          • Manage WR
          • Monitor historical session performance
          • Clean up WR data
        • ASH report
          • ASH
          • Generate ASH reports
          • Analyze ASH reports
      • Business model tuning
        • Load balancing
        • SQL diagnostics
        • Distributed transactions
      • SQL tuning
        • Execution process of SQL queries
        • SQL execution plans
          • Introduction to SQL execution plans
          • Execution plan operators
            • TABLE SCAN
            • JOIN
            • COUNT
            • GROUP BY
            • WINDOW FUNCTION
            • SUBPLAN FILTER
            • DISTINCT
            • SEQUENCE
            • MATERIAL
            • SORT
            • LIMIT
            • FOR UPDATE
            • SELECT INTO
            • SUBPLAN SCAN
            • UNION
            • INTERSECT
            • EXCEPT/MINUS
            • INSERT
            • DELETE
            • UPDATE
            • MERGE
            • EXCHANGE
            • GI
          • Plan cache
          • Fast parameterization
          • Real-time execution plan display
          • SQL optimization practice with EXPLAIN
        • Distributed execution plans
          • Perform distributed execution and parallel queries
          • Generate a distributed plan
          • Schedule distributed execution plans
          • Manage distributed execution plans
          • Parallel execution enabling methods and their priority
          • Auto DOP
          • Execute parallel queries
          • Perform parameter tuning for a parallel query
          • Parallel DML
          • Parallel DDL
        • Parallel execution plans
          • Introduction to parallel execution
          • Classification and optimization of parallel execution
          • Set concurrent execution
            • Concurrency control and queuing
            • Set a DOP for parallel execution
            • Set parallel execution parameters
          • Parallel execution diagnostics
          • Parallel execution tuning tips
          • Quick start
        • SQL tuning
          • Overview
          • General procedure
          • SQL execution performance monitoring
            • GV$OB_SQL_AUDIT
            • SQL Trace
            • Plan cache views
            • SQL performance analysis example
              • Use SQL Audit to analyze wait events in a query
              • Analyze SQL queries that cause an abrupt RT jitter
              • View and analyze the shape of an execution plan
              • Analyze slow SQL queries
              • Query SQL traffic distribution and QPS
              • Check whether SQL queries are balanced across servers in a cluster
              • Find the TOP N SQL queries
              • Analyze whether an unusually large number of remote execution requests exist in the system or the execution of an SQL statement
              • Find full table scan SQL statements in a tenant
              • Find the TOP N queries with the longest execution time within a certain period
              • Analyze queries related to distributed plans
              • Check whether the RPC execution count of a distributed subplan is balanced across servers in a cluster
          • Optimizer statistics
            • Overview of statistics
            • Statistics collection methods
              • Overview
              • Histograms
              • Manual statistics collection
              • Automatic statistics collection
              • Online statistics collection
              • Dynamic sampling
            • Statistics management
              • Overview
              • Delete statistics
              • Set statistics
              • Import and export statistics
              • Lock and unlock statistics
              • Manage statistics history
              • Manage statistics preferences
            • Monitoring and diagnostics for statistics collection
            • Examples
          • Query rewrite
            • Overview
            • Rule-based query rewrite
            • Cost-based query rewrite
          • Query optimization
            • Access path
              • Overview
              • Rule-based path selection
              • Cost-based path selection
            • Join algorithm
              • Overview
              • Join algorithms
              • Runtime filter
              • Join order
          • Manage execution plans
            • Optimizer hints
            • Plan binding
            • SQL plan management
        • Glossary
        • General issues in SQL tuning
    • Database proxy
      • Connection and routing
      • OceanBase Database Proxy
      • ODP
        • Overview
        • Manage ODP clusters
          • Create an ODP cluster
          • Manage ODP cluster parameters
          • Delete an ODP cluster
          • Upgrade all ODPs in an ODP cluster
          • Restart all ODPs in an ODP cluster
          • Manage OceanBase clusters connected to an ODP cluster
          • Monitor ODP cluster performance
        • Manage ODP
          • Add an ODP
          • Start an ODP
          • Refresh ODP configurations
          • Stop an ODP
          • Restart an ODP
          • Delete an ODP
          • Upgrade one or more ODPs
        • ODP startup parameters
      • Physical connections
      • Logical connection
        • Query all sessions
        • Query the details of a session
        • Query the metrics of a session
        • Query session variables
        • Terminate a server session
      • Route management
        • Table-based routing of ODP
        • LDC-based routing
        • ODP routing policy
          • Read/Write splitting
          • Follower-first read
          • Blocklist mechanism
          • Transaction routing
      • View tenant sessions
      • Terminate a tenant session
      • Set the maximum number of connections for a tenant
    • Drivers
      • ECOB
      • OBCI
      • OceanBase Connector/J
      • OceanBase Connector/C
      • OceanBase Connector/ODBC
    • Platforms
      • OMA
      • OMS
      • OCP
      • ODC
      • OCP Express
        • OCP Express
        • View cluster overview information
        • Tenant management
        • Monitor a cluster
        • Diagnostic analysis
        • Log service
      • OAT
    • Components & tools
      • O&M management
        • OBShell
          • Overview
          • Use OBShell
            • obshell management
              • Start or stop obshell
              • Upgrade obshell
            • Cluster management
              • Deploy an OceanBase cluster
              • Take over an OceanBase cluster not deployed by obshell
              • Start an OceanBase cluster
              • Stop an OceanBase cluster
              • Use obshell to scale out an OceanBase cluster
              • Upgrade an OceanBase cluster
            • Configure an OBServer node to start automatically on boot
          • Command line
            • Agent commands of obshell
            • Cluster commands of obshell
            • Task commands of obshell
          • API references
            • obshell API requests
            • obshell management
              • AgentUpgradeCheck
              • UpgradeAgent
              • QueryNodeStatus
            • Hybrid encryption for API operations
            • Cluster management
              • AddNodeBeforeClusterInitialization
              • DeleteNodeBeforeClusterInitialization
              • SetClusterConfig
              • SetServerConfig
              • InitializeCluster
              • StartCluster
              • StopCluster
              • ObUpgradeCheck
              • UpgradeOb
              • AddNode
              • GetObInfo
            • Task management
              • OperateDag
              • GetDagDetails
              • GetNodeDetails
              • GetSubtaskDetails
              • QueryUnfinishedTasks
              • QueryUnfinishedAgentTasks
              • QueryUnfinishedObTasks
              • QueryLastObTask
              • QueryLastAgentTask
            • Other APIs
              • UploadPkg
              • GetPublicKey
          • SDK references
            • Python
              • Quick start
              • Add a node before cluster initialization
              • Remove a node before cluster initialization
              • Set cluster-level configurations
              • Set server-level configurations
              • Initialize a cluster
              • Start a cluster
              • Stop a cluster
              • Upload an RPM package
              • Perform an agent upgrade check
              • Perform an OceanBase Database upgrade check
              • Upgrade agents
              • Upgrade OceanBase Database
              • Scale out a cluster
              • Query the status of a node
              • Query the information about a cluster
              • Operate a task
              • Obtain the information about a task
              • Obtain the information about a node
              • Obtain the information about a subtask
              • Query all unfinished tasks
              • Query unfinished agent tasks
              • Query unfinished OceanBase cluster tasks
              • Query the last O&M task in an OceanBase cluster
              • Query the last O&M task of an obshell node
              • Clean up obshell nodes in an uninitialized cluster
              • Create a cluster
            • GO
              • Quick start
              • Add a node before cluster initialization
              • Remove a node before cluster initialization
              • Set cluster-level configurations
              • Set server-level configurations
              • Initialize a cluster
              • Start a cluster
              • Stop a cluster
              • Upload an RPM package
              • Perform an agent upgrade check
              • Perform an OceanBase Database upgrade check
              • Upgrade agents
              • Upgrade OceanBase Database
              • Scale out a cluster
              • Query the status of a node
              • Query the information about a cluster
              • Operate a task
              • Obtain the information about a task
              • Obtain the information about a node
              • Obtain the information about a subtask
              • Query all unfinished tasks
              • Query unfinished agent tasks
              • Query unfinished OceanBase cluster tasks
              • Query the last O&M task in an OceanBase cluster
              • Query the last O&M task of an obshell node
              • Clean up obshell nodes in an uninitialized cluster
              • Create a cluster
        • obd
        • ob_admin
          • Overview
          • clog
            • log_tool
            • Format of clogs
            • Transaction logs
          • Backup and restore
            • dump_backup
            • test_io_device
            • io_adapter_benchmark
          • dumpsst
        • ob-operator
        • ob_error
      • Monitoring and diagnostics
        • obdiag
        • SQL diagnoser
          • Overview
          • Deploy and use SQL diagnoser
            • Install sql_diagnoser
            • Use sql_diagnoser
          • SQL diagnoser remarks
            • Built-in diagnostic items
            • Diagnostic rule expression
            • API operations
            • Diagnostic items of SQL review
      • Log analysis
        • oblogminer
          • Overview
          • Install oblogminer
          • Command-line options
          • Examples
          • FAQ
      • Data integration
        • obloader and obdumper
        • oblogproxy
        • CDC
          • Overview
          • obcdc parameters
            • Sample configuration file
            • General obcdc parameters
            • obcdc parameters
          • obcdc development instructions
          • obcdc_tailf
          • Throttling
          • obcdc allowlist and blocklist
          • Incremental direct load in obcdc
          • FAQ
      • Stress testing tools
        • mysqltest
          • Use obd.sh to run mysqltest
          • Use of cases
            • Add a test case
            • Test case writing conventions
            • General test case writing commands
  • FAQ
    • Products
    • SQL statements
    • Deployment
    • Cluster management
    • High availability
    • FAQ about columnstores
  • Release Notes
    • Version number guidelines
    • OceanBase Database Enterprise Edition
      • V4.3
        • OceanBase Database Enterprise Edition V4.3.0
        • OceanBase Database V4.3.1
        • OceanBase Database Enterprise Edition V4.3.2
        • OceanBase Database Enterprise Edition V4.3.3
      • V4.2
        • OceanBase Database Enterprise Edition V4.2.1
        • OceanBase Database Enterprise Edition V4.2.0
      • V4.1
        • OceanBase Database Enterprise Edition V4.1.0
      • V3.2
        • OceanBase Database Enterprise Edition V3.2.4
        • OceanBase Database Enterprise Edition V3.2.3
        • OceanBase Database Enterprise Edition V3.2.2
        • OceanBase Database Enterprise Edition V3.2.1
        • OceanBase Database Enterprise Edition V3.2.0
      • V3.1
        • OceanBase Database Enterprise Edition V3.1.2
        • OceanBase Database Enterprise Edition V3.1.1
      • V2.2
        • OceanBase Database Enterprise Edition V2.2.77
        • OceanBase Database Enterprise Edition V2.2.76
        • OceanBase Database Enterprise Edition V2.2.30
    • OceanBase Database Community Edition
      • V4.3
        • OceanBase Database Community Edition V4.3.0
        • OceanBase Database Community Edition V4.3.1
        • OceanBase Database Community Edition V4.3.2
        • OceanBase Database Community Edition V4.3.3
      • V4.2
        • OceanBase Database Community Edition V4.2.1
        • OceanBase Database Community Edition V4.2.0
      • V4.1
        • OceanBase Database Community Edition V4.1.0
      • V4.0
        • OceanBase Database Community Edition V4.0.0
      • V3.1
        • OceanBase Database Community Edition V3.1.5
        • OceanBase Database Community Edition V3.1.4
        • OceanBase Database Community Edition V3.1.3
        • OceanBase Database Community Edition V3.1.2
        • OceanBase Database Community Edition V3.1.1
  • Glossary

Download PDF

What's New Overview Differences between Enterprise Edition and Community Edition System architecture Overview SQL data types Built-in functions System views Compatibility with MySQL Limitations Quick start with OceanBase Database Community Edition Before you begin Basic SQL operations (MySQL mode) Basic SQL operations (Oracle mode) Build a Java application Build a C application Build a Python application Build a Java application Build a C application Build a Go application Try out operational OLAP Try out parallel import and data compression Try out the multi-tenant feature Video tutorial Overview HA deployment solutions for OceanBase clusters Deployment process Overview Deploy an OceanBase cluster in a Kubernetes environment Clear an OceanBase cluster Recommended configurations Overview Use OMS to migrate data from a MySQL database to a MySQL tenant of OceanBase Database Use mydumper and myloader to migrate data from a MySQL database to OceanBase Database Use DBCAT to migrate schemas from a MySQL database to OceanBase Database Use DataX to migrate table data from a MySQL database to OceanBase Database Use CloudCanal to migrate data from a MySQL database to OceanBase Database Use Canal to synchronize data from a MySQL database to OceanBase Database Use Flink CDC to synchronize data from a MySQL database to OceanBase Database Use ChunJun to migrate data from a MySQL database to OceanBase Database Use OMS to migrate data from a MySQL tenant of OceanBase Database to a MySQL database Use OMS to migrate incremental data from an Oracle tenant of OceanBase Database to a MySQL database Use DBCAT to migrate schemas from OceanBase Database to a MySQL database Use DataX to migrate table data from OceanBase Database to a MySQL database Use Canal to synchronize data from OceanBase Database to a MySQL database Use CloudCanal to migrate data from OceanBase Database to a MySQL database Use Flink CDC to migrate data from OceanBase Database to a MySQL database Use ChunJun to migrate data from OceanBase Database to a MySQL database Use OMS to migrate data from an Oracle database to a MySQL tenant of OceanBase Database Use OMS to migrate data from an Oracle database to an Oracle tenant of OceanBase Database Use DBCAT to migrate schemas from an Oracle database to OceanBase Database Use DataX to migrate table data from an Oracle database to OceanBase Database Use OMS to migrate data from an Oracle tenant of OceanBase Database to an Oracle database Use DBCAT to migrate schemas from OceanBase Database to an Oracle database Use DataX to migrate table data from OceanBase Database to an Oracle database Use OMS to migrate data from a DB2 LUW database to a MySQL tenant of OceanBase Database Use OMS to migrate data from a DB2 LUW database to an Oracle tenant of OceanBase Database Use DBCAT to migrate table schemas from a DB2 LUW database to OceanBase Database Use OMS to migrate data from a MySQL tenant of OceanBase Database to a DB2 LUW database Use OMS to migrate data from an Oracle tenant of OceanBase Database to a DB2 LUW database Use OMS to migrate data from a TiDB database to a MySQL tenant of OceanBase Database Use OMS to migrate data from a PostgreSQL database to a MySQL tenant of OceanBase Database Use DataX to migrate CSV files to OceanBase Database Import data by using the LOAD DATA statement Import data from SQL files to OceanBase Database Use OMS to migrate data from an OceanBase tenant to another of the same type Use OMS to migrate data from an OceanBase tenant to another of the same type in active-active disaster recovery scenarios Use obloader & obdumper to migrate data between MySQL tenants in OceanBase Database Use obloader & obdumper to migrate data from a MySQL tenant to an Oracle tenant in OceanBase Database Use obloader & obdumper to migrate data between Oracle tenants in OceanBase Database Use obloader & obdumper to migrate data from an Oracle tenant to a MySQL tenant in OceanBase Database Migrate data between tables Migrate resource units Export data by using the SELECT INTO OUTFILE statement Overview Full direct load Incremental direct load Import data in direct load mode by using :obloader Log in to an OceanBase tenant Overview Cluster parameters Tenant introduction Tenant capacity Tenant types User tenant introduction Tenant system variables Overview Traffic distribution Data distribution High availability overview Flashback queries Overview Overview of physical backup and restore Experience physical backup and restore with simplified deployment Deploy NFS Overview Cases Overview Log levels Log stability
OceanBase logo

The Unified Distributed Database for the AI Era.

Follow Us
Products
OceanBase CloudOceanBase EnterpriseOceanBase Community EditionOceanBase seekdb
Resources
DocsBlogLive DemosTraining & Certification
Company
About OceanBaseTrust CenterLegalPartnerContact Us
Follow Us

© OceanBase 2026. All rights reserved

Cloud Service AgreementPrivacy PolicySecurity
Contact Us
Document Feedback
  1. Documentation Center
  2. OceanBase Database
  3. SQL
  4. V4.3.3
iconOceanBase Database
SQL - V 4.3.3
SQL
KV
  • V 4.4.2
  • V 4.3.5
  • V 4.3.3
  • V 4.3.1
  • V 4.3.0
  • V 4.2.5
  • V 4.2.2
  • V 4.2.1
  • V 4.2.0
  • V 4.1.0
  • V 4.0.0
  • V 3.1.4 and earlier

Connect to OceanBase Database by using Spring Batch

Last Updated:2024-11-11 08:44:21  Updated
share
What is on this page
Prerequisites
Procedure
Step 1: Obtain the OceanBase Database connection string
Step 2: Import the java-oceanbase-springbatch project to IntelliJ IDEA
Step 3: Modify the database connection information in the java-oceanbase-springbatch project
Step 4: Run the java-oceanbase-springbatch project
Project code
Code in pom.xml
Code in application.properties
Code in BatchApplication.java
Code in BatchConfig.java
Code in People.java
Code in PeopleDESC.java
Code in AddPeopleDescProcessor.java
Code in AddDescPeopleWriter.java
Code in AddPeopleWriter.java
Code in BatchConfigTest.java
Code in AddPeopleDescProcessorTest.java
Code in AddDescPeopleWriterTest.java
Code in AddPeopleWriterTest.java
Complete code
References

folded

share

This topic describes how to build an application using the Spring Batch framework and OceanBase Database. It also covers the use of the application for fundamental database operations, including table creation, data insertion, and data query.

Download the java-oceanbase-springbatch sample project

Prerequisites

  • You have installed OceanBase Database.
  • You have installed Java Development Kit (JDK) 1.8 and Maven.
  • You have installed IntelliJ IDEA.

Note

In this topic, IntelliJ IDEA Community Edition 2021.3.2 is used to run the sample code. You can also choose a suitable tool as needed.

Procedure

Note

The following procedure applies to Windows. If you use another operating system or compiler, the procedure can be slightly different.

  1. Obtain the OceanBase Database connection string.
  2. Import the java-oceanbase-springbatch project to IntelliJ IDEA.
  3. Modify the database connection information in the java-oceanbase-springbatch project.
  4. Run the java-oceanbase-springbatch project.

Step 1: Obtain the OceanBase Database connection string

  1. Contact the deployment personnel or administrator of OceanBase Database to obtain the connection string.

    obclient -hxx.xx.xx.xx -P2883 -uroot@sys#cluster -p**** -A
    
  2. Enter the URL of OceanBase Database.

    Note

    The URL of OceanBase Database is required in the application.properties file.

    jdbc:oceanbase://host:port/schema_name?user=$user_name&password=$password&characterEncoding=utf-8
    

    The parameters are described as follows:

    • host: the IP address for connecting to OceanBase Database, which is the IP address of OceanBase Database Proxy (ODP) for connection through ODP, or the IP address of an OBServer node for direct connection.
    • port: the port for connecting to OceanBase Database. For connection through ODP, the default value is 2883, which can be customized when ODP is deployed. For direct connection, the default value is 2881, which can be customized when OceanBase Database is deployed.
    • schema_name: the name of the schema to be accessed.
    • user_name: the username of the account in the format of user@tenant#cluster name or username@SERVICE:service name, which is specified by the -u parameter. When the value is in the user@tenant#cluster name format, the default tenant is sys and the default administrator is root. The cluster name is not required when you directly connect to OceanBase Database, but is required when you connect to OceanBase Database through ODP.
    • password: the password of the account.
    • characterEncoding: the character encoding format.

For more information about URL parameters, see Database URL.

Step 2: Import the java-oceanbase-springbatch project to IntelliJ IDEA

  1. Start IntelliJ IDEA and choose File > Open....

    file

  2. In the Open File or Project window, select the project files and click OK to import the files.

  3. IntelliJ IDEA automatically identifies various files in the project. You can view project information such as the directory structure, file list, module list, and dependencies in the Project window. Generally, the Project window is at the leftmost of the UI of IntelliJ IDEA and is opened by default. If the Project window is closed, you can choose View > Tool Windows > Project in the menu bar or press Alt + 1 to open it.

    Note

    When you use IntelliJ IDEA to import a project, IntelliJ IDEA automatically detects the pom.xml file in the project, downloads the required dependency libraries based on the dependencies described in the file, and adds them to the project.

  4. View the project.

springbatch

Step 3: Modify the database connection information in the java-oceanbase-springbatch project

Modify the database connection string in the application.properties file based on the information obtained in Step 1: Obtain the OceanBase Database connection string.

Here is a connection information example:

  • The name of the database driver is com.mysql.cj.jdbc.Driver.
  • The IP address of the OBServer node is 10.10.10.1.
  • The access port is 2881.
  • The name of the schema to be accessed is test.
  • The tenant account is root@mysql001. mysql001 is a MySQL user tenant created in OceanBase Database, and root is the username of a user in the mysql001 tenant.
  • The password is ******.

Here is the sample code:

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:oceanbase://10.10.10.1:2881/test?characterEncoding=utf-8
spring.datasource.username=root@mysql001
spring.datasource.password=******

spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update

spring.batch.job.enabled=false

logging.level.org.springframework=INFO
logging.level.com.example=DEBUG

Step 4: Run the java-oceanbase-springbatch project

  • Run the AddDescPeopleWriterTest.java file.

    1. Find the AddDescPeopleWriterTest.java file under src > test > java in the project package.
    2. Choose Run > Run... > AddDescPeopleWriterTest.testWrite in the menu bar or click the green triangle in the upper-right corner to run the file.
    3. View the logs and output of the project in the Console window of IDEA.
    Data in the people_desc table:
    PeopleDESC [name=John, age=25, desc=This is John with age 25]
    PeopleDESC [name=Alice, age=30, desc=This is Alice with age 30]
    Batch Job execution completed.
    
  • Run the AddPeopleWriterTest.java file.

    1. Find the AddDescPeopleWriterTest.java file under src > test > java in the project package.
    2. Choose Run > Run... > AddPeopleWriterTest.testWrite in the menu bar or click the green triangle in the upper-right corner to run the file.
    3. View the logs and output of the project in the Console window of IDEA.
    Data in the people table:
    People [name=zhangsan, age=27]
    People [name=lisi, age=35]
    Batch Job execution completed.
    

Project code

Click here to download the project code, which is a package named java-oceanbase-springbatch.

Decompress the package to obtain a folder named java-oceanbase-springbatch. The directory structure is as follows:

│  pom.xml
│
├─.idea
│
├─src
│  ├─main
│  │  ├─java
│  │  │  └─com
│  │  │      └─oceanbase
│  │  │          └─example
│  │  │              └─batch
│  │  │                  │──BatchApplication.java
│  │  │                  │
│  │  │                  ├─config
│  │  │                  │   └─BatchConfig.java
│  │  │                  │
│  │  │                  ├─model
│  │  │                  │   ├─People.java
│  │  │                  │   └─PeopleDESC.java
│  │  │                  │
│  │  │                  ├─processor
│  │  │                  │   └─AddPeopleDescProcessor.java
│  │  │                  │
│  │  │                  └─writer
│  │  │                      ├─AddDescPeopleWriter.java
│  │  │                      └─AddPeopleWriter.java
│  │  │
│  │  └─resources
│  │      └─application.properties
│  │
│  └─test
│      └─java
│          └─com
│              └─oceanbase
│                  └─example
│                      └─batch
│                          ├─config
│                          │   └─BatchConfigTest.java
│                          │
│                          ├─processor
│                          │   └─AddPeopleDescProcessorTest.java
│                          │
│                          └─writer
│                              ├─AddDescPeopleWriterTest.java
│                              └─AddPeopleWriterTest.java
│
└─target

The files and directories are described as follows:

  • pom.xml: the configuration file of the Maven project, which contains the dependencies, plug-ins, and build rules of the project.
  • .idea: a directory used in an Integrated Development Environment (IDE) to store configuration information related to the project.
  • src: a directory that stores the source code in the project.
  • main: a directory that stores the main source code and resource files.
  • java: a directory that stores the Java source code.
  • com.oceanbase.example.batch: The name of the package.
  • BatchApplication.java: the entry class to the application, which contains the main methods of the application.
  • config: the configuration class folder that contains the configuration classes of the application.
  • BatchConfig.java: the configuration class of the application, which is used to configure some properties and behavior of the application.
  • model: the model class folder that contains the data model classes of the application.
  • People.java: the personnel data model class.
  • PeopleDESC.java: the personnel description data model class.
  • processor: the processor class folder that contains the processor classes of the application.
  • AddPeopleDescProcessor.java: the processor class that adds personnel description information.
  • writer: the writer class folder that contains the writer classes of the application.
  • AddDescPeopleWriter.java: the writer class that writes personnel description information.
  • AddPeopleWriter.java: the writer class that writes personnel information.
  • resources: the resource folder that contains the configuration file and other static resource files of the application.
  • application.properties: the configuration file of the application, which is used to configure the properties of the application.
  • test: a directory that stores the test code and resource files.
  • BatchConfigTest.java: the test class for the configuration class of the application.
  • AddPeopleDescProcessorTest.java: the test class for the processor class that adds personnel description information.
  • AddDescPeopleWriterTest.java: the test class for the writer class that writes personnel description information.
  • AddPeopleWriterTest.java: the test class for the writer class that writes personnel information.
  • target: a directory that stores compiled class files and JAR packages.

Code in pom.xml

Note

You can retain the default code in this file for verification purposes or modify the code in the file as needed.

Perform the following steps to configure the pom.xml file:

  1. Declare the file.

    Declare the file to be an XML file that uses the XML standard 1.0 and character encoding format UTF-8.

    Here is the sample code:

    <?xml version="1.0" encoding="UTF-8"?>
    
  2. Configure namespaces and the POM model version.

    1. xmlns: the default XML namespace for the POM, which is set to http://maven.apache.org/POM/4.0.0.
    2. xmlns:xsi: the XML namespace for XML elements prefixed with xsi, which is set to http://www.w3.org/2001/XMLSchema-instance.
    3. xsi:schemaLocation: the location of an XML schema definition (XSD) file. The value consists of two parts: the default XML namespace (http://maven.apache.org/POM/4.0.0) and the URI of the XSD file (https://maven.apache.org/xsd/maven-4.0.0.xsd).
    4. <modelVersion>: the POM model version used by the POM file, which is set to 4.0.0.

    Here is the sample code:

     <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
         <modelVersion>4.0.0</modelVersion>
    </project>
    
  3. Configure parent project information.

    1. <groupId>: the ID of the parent project group, which is set to org.springframework.boot.
    2. <artifactId>: the name of the parent project, which is set to spring-boot-starter-parent.
    3. <version>: the version of the parent project, which is set to 2.7.11.
    4. <relativePath>: an empty path for the parent project.

    Here is the sample code:

     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
         <version>2.7.11</version>
         <relativePath/>
     </parent>
    
  4. Configure basic information.

    1. <groupId>: the ID of the project group, which is set to com.oceanbase.
    2. <artifactId>: the name of the project, which is set to java-oceanbase-springboot.
    3. <version>: the version of the project, which is set to 0.0.1-SNAPSHOT.
    4. <description>: the project information, which is set to Demo project for Spring Batch.

    Here is the sample code:

     <groupId>com.oceanbase</groupId>
     <artifactId>java-oceanbase-springboot</artifactId>
     <version>0.0.1-SNAPSHOT</version>
     <name>java-oceanbase-springbatch</name>
     <description>Demo project for Spring Batch</description>
    
  5. Configure the Java version.

    Specify to use Java 1.8 for the project.

    Here is the sample code:

      <properties>
          <java.version>1.8</java.version>
      </properties>
    
  6. Configure core dependencies.

    1. Define a dependency named spring-boot-starter that belongs to the org.springframework.boot group. This dependency contains default features provided by Spring Boot, such as web, data processing, security, and testing.

      Here is the sample code:

      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter</artifactId>
      </dependency>
      
    2. Define a dependency named spring-boot-starter-jdbc that belongs to the org.springframework.boot group. This dependency contains Java Database Connectivity (JDBC) features provided by Spring Boot, such as connection pool and data source configuration.

      Here is the sample code:

      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-jdbc</artifactId>
      </dependency>
      
    3. Define a dependency named spring-boot-starter-test that belongs to the org.springframework.boot group. This dependency takes effect in the test scope and provides test frameworks and tools of Spring Boot, such as JUnit, Mockito, and Hamcrest.

      Here is the sample code:

      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-test</artifactId>
          <scope>test</scope>
      </dependency>
      
    4. Define a dependency named oceanbase-client that belongs to the com.oceanbase group and whose version is 2.4.12. With this dependency, you can use the features of OceanBase Command-Line Client (OBClient), such as connections, queries, and transactions.

      Here is the sample code:

          <dependency>
              <groupId>com.oceanbase</groupId>
              <artifactId>oceanbase-client</artifactId>
              <version>2.4.12</version>
          </dependency>
      
    5. Define a dependency named spring-boot-starter-batch that belongs to the org.springframework.boot group. This dependency contains the batch processing feature provided by Spring Boot.

      Here is the sample code:

      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-batch</artifactId>
      </dependency>
      
    6. Define a dependency named spring-boot-starter-data-jpa that belongs to the org.springframework.boot group. This dependency contains necessary dependencies and configurations for Java Persistence API (JPA)-based data accesses, and is a Spring Boot starter.

      Here is the sample code:

      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-data-jpa</artifactId>
      </dependency>
      
    7. Define a dependency named tomcat-jdbc that belongs to the org.apache.tomcat group. This dependency allows the application to use JDBC connection pool features provided by Tomcat, including connection pool configuration, connection acquisition and release, and connection management.

      Here is the sample code:

      <dependency>
          <groupId>org.apache.tomcat</groupId>
          <artifactId>tomcat-jdbc</artifactId>
      </dependency>
      
    8. Define a dependency named junit that belongs to the junit group and whose version is 4.10 and effective scope is test. This dependency allows the application to use JUnit.

      Here is the sample code:

      <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>4.10</version>
          <scope>test</scope>
      </dependency>
      
    9. Define a dependency named javax.activation-api that belongs to the javax.activation group and whose version is 1.2.0. This dependency provides the Java Activation Framework (JAF) API.

      Here is the sample code:

      <dependency>
          <groupId>javax.activation</groupId>
          <artifactId>javax.activation-api</artifactId>
          <version>1.2.0</version>
      </dependency>
      
    10. Define a dependency named jakarta.persistence-api that belongs to the jakarta.persistence group and whose version is 2.2.3. This dependency provides the Jakarta Persistence API. Here is the sample code:

      <dependency>
          <groupId>jakarta.persistence</groupId>
          <artifactId>jakarta.persistence-api</artifactId>
          <version>2.2.3</version>
      </dependency>
      
  7. Configure the Maven plug-in.

    Define a plug-in named spring-boot-maven-plugin that belongs to the org.springframework.boot group. This plug-in can be used to package Spring Boot applications as executable JAR packages or WAR packages, or directly run Spring Boot applications.

    Here is the sample code:

     <build>
         <plugins>
             <plugin>
                 <groupId>org.springframework.boot</groupId>
                 <artifactId>spring-boot-maven-plugin</artifactId>
             </plugin>
         </plugins>
     </build>
    

Code in application.properties

The application.properties file contains database connection configurations, such as the database driver, URL, username, and password. It also contains configurations related to the JPA, Spring Batch, and log level.

  1. Configure the database connection.

    • spring.datasource.driver: the database driver used to establish a connection with OceanBase Database, which is set to com.mysql.cj.jdbc.Driver.
    • spring.datasource.url: the URL for connecting to the database.
    • spring.datasource.username: the username for connecting to the database.
    • spring.datasource.password: the password for connecting to the database.

    Here is the sample code:

    spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
    spring.datasource.url=jdbc:oceanbase://host:port/schema_name?characterEncoding=utf-8
    spring.datasource.username=user_name
    spring.datasource.password=******
    
  2. Configure the JPA.

    • spring.jpa.show-sql: specifies whether to display SQL statements in logs. The value true here indicates that SQL statements are displayed in logs.
    • spring.jpa.hibernate.ddl-auto: the DDL operation performed by Hibernate. The value update here indicates that Hibernate automatically updates the database schema when the application starts.

    Here is the sample code:

    spring.jpa.show-sql=true
    spring.jpa.hibernate.ddl-auto=update
    
  3. Configure Spring Batch.

    spring.batch.job.enable: specifies whether to enable Spring Batch jobs. The value false here indicates that Spring Batch jobs are disabled.

    Here is the sample code:

    spring.batch.job.enabled=false
    

    Note

    In Spring Batch, the spring.batch.job.enabled property specifies whether to execute Spring Batch jobs. The settings are described as follows:

    • spring.batch.job.enabled=true (default value): enables Spring Batch jobs, which means that Spring Boot automatically detects and executes all defined jobs when the Spring Boot application starts.
    • spring.batch.job.enabled=false: disables Spring Batch jobs. Set the property to false in a development or testing environment, or when you want to manually execute jobs by calling REST APIs or using a command-line tool.
    To sum up, spring.batch.job.enabled=false allows you to flexibly execute Spring Batch jobs at any time you want.

  4. Configure the log level.

    • logging.level.org.springframework: the log level of the Spring framework, which is set to INFO.
    • logging.level.com.example: the log level for the custom code of the application, which is set to DEBUG.

    Here is the sample code:

    logging.level.org.springframework=INFO
    logging.level.com.example=DEBUG
    

Code in BatchApplication.java

The BatchApplication.java file is the entry file to the Spring Boot application.

Perform the following steps to configure the BatchApplication.java file:

  1. Reference other classes and interfaces.

    Declare this file to contain the following interfaces and classes:

    • SpringApplication class: launches a Spring Boot application.
    • SpringBootApplication annotation: marks the class as the entry to the Spring Boot application.

    Here is the sample code:

        import org.springframework.boot.SpringApplication;
        import org.springframework.boot.autoconfigure.SpringBootApplication;
    
  2. Define the BatchApplication class.

    @SpringBootApplication annotation: marks the BatchApplication class as the entry to the Spring Boot application. BatchApplication class: defines a static main method as the entry to the application. In the main method, use the SpringApplication.run method to launch the Spring Boot application. Define a method named runBatchJob to run batch jobs.

    Here is the sample code:

    
    
        @SpringBootApplication
        public class BatchApplication {
            public static void main(String[] args) {
                SpringApplication.run(BatchApplication.class, args);
            }
    
            public void runBatchJob() {
            }
        }
    

Code in BatchConfig.java

The BatchConfig.java file configures components such as the steps, reader, processor, and writer for batch jobs.

Perform the following steps to configure the BatchConfig.java file:

  1. Reference other classes and interfaces.

    Declare this file to contain the following interfaces and classes:

    • People class: stores personnel information read from the database.
    • PeopleDESC class: stores the description converted or processed from personnel information.
    • AddPeopleDescProcessor class: converts a People object to a PeopleDESC object. This class implements the ItemProcessor interface.
    • AddDescPeopleWriter class: writes a PeopleDESC object to a specified destination. This class implements the ItemWriter interface.
    • Job interface: indicates a batch job.
    • Step interface: indicates a step in a job.
    • EnableBatchProcessing annotation: enables and configures Spring Batch features.
    • JobBuilderFactory class: creates and configures jobs.
    • StepBuilderFactory class: creates and configures steps.
    • RunIdIncrementer class: the run ID incrementer of Spring Batch, which is used to increment the run ID each time a job is run.
    • ItemProcessor interface: processes or converts the read items.
    • ItemReader interface: reads items from the data source.
    • ItemWriter interface: writes processed or converted items to a specified destination.
    • JdbcCursorItemReader class: reads data from the database and returns a cursor result set.
    • Autowired annotation: injects dependencies.
    • Bean annotation: creates and configures beans.
    • ComponentScan annotation: specifies the package or class to scan for components.
    • Configuration annotation: marks a class as a configuration class.
    • EnableAutoConfiguration annotation: enables automatic configuration of Spring Boot.
    • SpringBootApplication annotation: marks the class as the entry to the Spring Boot application.
    • DataSource interface: obtains database connections.

    Here is the sample code:

    import com.oceanbase.example.batch.model.People;
    import com.oceanbase.example.batch.model.PeopleDESC;
    import com.oceanbase.example.batch.processor.AddPeopleDescProcessor;
    import com.oceanbase.example.batch.writer.AddDescPeopleWriter;
    import org.springframework.batch.core.Job;
    import org.springframework.batch.core.Step;
    import org.springframework.batch.core.configuration.annotation.EnableBatchProcessing;
    import org.springframework.batch.core.configuration.annotation.JobBuilderFactory;
    import org.springframework.batch.core.configuration.annotation.StepBuilderFactory;
    import org.springframework.batch.core.launch.support.RunIdIncrementer;
    import org.springframework.batch.item.ItemProcessor;
    import org.springframework.batch.item.ItemReader;
    import org.springframework.batch.item.ItemWriter;
    import org.springframework.batch.item.database.JdbcCursorItemReader;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.ComponentScan;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.jdbc.core.BeanPropertyRowMapper;
    
    import javax.sql.DataSource;
    
  2. Define the BatchConfig class.

    It is a simple batch job of Spring Batch. In the class, define how data is read, processed, and written, and encapsulate these steps as a simple Spring Batch job. Use the annotations and automatic configuration feature of Spring Batch to create corresponding component instances by calling various @Bean methods, and use these components to read, process, and write data in step1.

    • Use @Configuration to mark this class as a configuration class.
    • Use @EnableBatchProcessing to enable Spring Batch. The annotation automatically creates necessary beans, such as JobRepository and JobLauncher.
    • Use @SpringBootApplication to mark the main class of the Spring Boot application. The Spring Boot application is launched from the main class.
    • Use @ComponentScan to specify the package to scan for components. Spring Boot scans and registers all components in the package and its sub-packages.
    • Use @EnableAutoConfiguration to automatically configure the infrastructure of the Spring Boot application.

    Here is the sample code:

     @Configuration
     @EnableBatchProcessing
     @SpringBootApplication
     @ComponentScan("com.oceanbase.example.batch.writer")
     @EnableAutoConfiguration
     public class BatchConfig {
     }
    
    1. Define the @Autowired annotation.

      Use the @Autowired annotation to inject JobBuilderFactory, StepBuilderFactory, and DataSource as member variables in the BatchConfig class. JobBuilderFactory is the factory class used to create and configure jobs. StepBuilderFactory is the factory class used to create and configure steps. DataSource is the interface used to obtain database connections.

      Here is the sample code:

      @Autowired
      private JobBuilderFactory jobBuilderFactory;
      
      @Autowired
      private StepBuilderFactory stepBuilderFactory;
      
      @Autowired
      private DataSource dataSource;
      
    2. Define the @Bean annotation.

      Use the @Bean annotation to define methods for creating readers, processors, writers, steps, and jobs.

      • Call the peopleReader method to create an instance of the ItemReader component. The component uses JdbcCursorItemReader to read People objects from the database. Set the data source in dataSource, set RowMapper to map database rows to People objects, and set the SQL query statement to SELECT * FROM people.

      • Call the addPeopleDescProcessor method to create an instance of the ItemProcessor component. The component uses AddPeopleDescProcessor to process People objects and return PeopleDESC objects.

      • Call the addDescPeopleWriter method to create an instance of the ItemWriter component. The component uses AddDescPeopleWriter to write PeopleDESC objects to the destination.

      • Call the step1 method to create an instance of the Step component. Name the instance as step1. Call stepBuilderFactory.get to get the step builder. Set the reader to the ItemReader component, the processor to the ItemProcessor component, the writer to the ItemWriter component, and the chunk size to 10. Call build to build and return the configured Step instance.

      • Call the importJob method to create an instance of the Job component. Name the job as importJob. Call jobBuilderFactory.get to get the job builder. Set the incrementer to RunIdIncrementer and the initial step in flow to Step. Call build to build and return the configured Job instance.

        Here is the sample code:

        @Bean
        public ItemReader<People> peopleReader() {
            JdbcCursorItemReader<People> reader = new JdbcCursorItemReader<>();
            reader.setDataSource((javax.sql.DataSource) dataSource);
            reader.setRowMapper(new BeanPropertyRowMapper<>(People.class));
            reader.setSql("SELECT * FROM people");
            return reader;
        }
        
        @Bean
        public ItemProcessor<People, PeopleDESC> addPeopleDescProcessor() {
            return new AddPeopleDescProcessor();
        }
        
        @Bean
        public ItemWriter<PeopleDESC> addDescPeopleWriter() {
            return new AddDescPeopleWriter();
        }
        
        @Bean
        public Step step1(ItemReader<People> reader, ItemProcessor<People, PeopleDESC> processor,
                        ItemWriter<PeopleDESC> writer) {
            return stepBuilderFactory.get("step1")
                    . <People, PeopleDESC>chunk(10)
                    .reader(reader)
                    .processor(processor)
                    .writer(writer)
                    .build();
        }
        
        @Bean
        public Job importJob(Step step1) {
            return jobBuilderFactory.get("importJob")
                    .incrementer(new RunIdIncrementer())
                    .flow(step1)
                    .end()
                    .build();
        }
        

Code in People.java

The People.java file defines a data model class named People to represent personnel information. The class contains two private member variables: name and age, and corresponding getter and setter methods. The toString method is overridden to print the object information. name indicates the name of a person, and age indicates the age of a person. The getter and setter methods respectively get and set the values of these attributes.

The class provides data storage and transfer means for the input and output of a batch program. In batch reads and writes, People objects store data, setter methods set data, and getter methods get data.

Here is the sample code:

    public class People {
        private String name;
        private int age;

            // getters and setters

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public int getAge() {
            return age;
        }

        public void setAge(int age) {
            this.age = age;
        }
        @Override
        public String toString() {
            return "People [name=" + name + ", age=" + age + "]";
        }
        // Getters and setters
    }

Code in PeopleDESC.java

The PeopleDESC.java file defines a data model class named PeopleDESC to represent the description of personnel information. The PeopleDESC class contains four attributes: name, age, desc, and id, which respectively represent the name, age, description, and identifier of a person. The class also contains corresponding getter and setter methods for getting and setting the attribute values. The toString method is overridden to return a string representation of the class, including the name, age, and description.

Similar to the People class, the PeopleDESC class provides data storage and transfer means for the input and output of a batch program.

Here is the sample code:

    public class PeopleDESC {
        private String name;
        private int age;
        private String desc;
        private int id;

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public int getAge() {
            return age;
        }

        public void setAge(int age) {
            this.age = age;
        }

        public String getDesc() {
            return desc;
        }

        public void setDesc(String desc) {
            this.desc = desc;
        }

        public int getId() {
            return id;
        }

        public void setId(int id) {
            this.id = id;
        }

        @Override
        public String toString() {
            return "PeopleDESC [name=" + name + ", age=" + age + ", desc=" + desc + "]";
        }
    }

Code in AddPeopleDescProcessor.java

The AddPeopleDescProcessor.java file defines a class named AddPeopleDescProcessor that implements the ItemProcessor interface for converting People objects to PeopleDESC objects.

Perform the following steps to configure the AddPeopleDescProcessor.java file:

  1. Reference other classes and interfaces.

    Declare this file to contain the following interfaces and classes:

    • People class: stores personnel information read from the database.
    • PeopleDESC class: stores the description converted or processed from personnel information.
    • ItemProcessor interface: processes or converts the read items.

    Here is the sample code:

    import com.oceanbase.example.batch.model.People;
    import com.oceanbase.example.batch.model.PeopleDESC;
    import org.springframework.batch.item.ItemProcessor;
    
  2. Define the AddPeopleDescProcessor class.

    The AddPeopleDescProcessor class of the ItemProcessor interface converts People objects to PeopleDESC objects, thus implementing the batch processing logic for the input data.

    In the process method of this class, create a PeopleDESC object named desc, and then use the item parameter to obtain the attributes (name and age) of the People object and populate these attributes to the desc object. At the same time, assign a value to the desc attribute of the desc object. The value assignment logic is to generate the description of the People object based on its attributes. Finally, return the processed PeopleDESC object.

    Here is the sample code:

    public class AddPeopleDescProcessor implements ItemProcessor<People, PeopleDESC> {
        @Override
        public PeopleDESC process(People item) throws Exception {
            PeopleDESC desc = new PeopleDESC();
            desc.setName(item.getName());
            desc.setAge(item.getAge());
            desc.setDesc("This is " + item.getName() + " with age " + item.getAge());
            return desc;
        }
    }
    

Code in AddDescPeopleWriter.java

The AddPeopleWriter.java file implements the AddDescPeopleWriter class of the ItemWriter interface to write People objects to the database.

Perform the following steps to configure the AddDescPeopleWriter.java file:

  1. Reference other classes and interfaces.

    Declare this file to contain the following interfaces and classes:

    • PeopleDESC class: stores the description converted or processed from personnel information.
    • ItemWriter interface: writes processed or converted items to a specified destination.
    • Autowired annotation: injects dependencies.
    • JdbcTemplate class: provides methods for executing SQL statements.
    • List interface: operates the query result set.

    Here is the sample code:

    import com.oceanbase.example.batch.model.PeopleDESC;
    import org.springframework.batch.item.ItemWriter;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.jdbc.core.JdbcTemplate;
    
    import java.util.List;
    
  2. Define the AddDescPeopleWriter class.

    1. Use the @Autowired annotation to automatically inject the JdbcTemplate instance, which will be used to perform database operations for data writes.

      Here is the sample code:

          @Autowired
          private JdbcTemplate jdbcTemplate;
      
    2. In the write method, traverse List<? extends PeopleDESC> that is passed in to fetch all PeopleDESC objects in sequence. Execute the SQL statement DROP TABLE people_desc to drop the table named people_desc that may already exist. Execute the SQL statement CREATE TABLE people_desc (id INT PRIMARY KEY, name VARCHAR2(255), age INT, description VARCHAR2(255)) to create a table named people_desc with four columns: id, name, age, and description. Execute the SQL statement INSERT INTO people_desc (id, name, age, description) VALUES (?, ?, ?, ?) to insert the attribute values of each PeopleDESC object into the people_desc table.

      Here is the sample code:

          @Override
          public void write(List<? extends PeopleDESC> items) throws Exception {
              // Drop the table that may already exist.
              jdbcTemplate.execute("DROP TABLE people_desc");
              // Create the table.
              String createTableSql = "CREATE TABLE people_desc (id INT PRIMARY KEY, name VARCHAR2(255), age INT, description VARCHAR2(255))";
              jdbcTemplate.execute(createTableSql);
              for (PeopleDESC item : items) {
                  String sql = "INSERT INTO people_desc (id, name, age, description) VALUES (?, ?, ?, ?) ";
                  jdbcTemplate.update(sql, item.getId(), item.getName(), item.getAge(), item.getDesc());
              }
          }
      

Code in AddPeopleWriter.java

The AddPeopleWriter.java file implements the AddDescPeopleWriter class of the ItemWriter interface to write PeopleDESC objects to the database.

Perform the following steps to configure the AddPeopleWriter.java file:

  1. Reference other classes and interfaces.

    Declare this file to contain the following interfaces and classes:

    • People class: stores personnel information read from the database.
    • ItemWriter interface: writes processed or converted items to a specified destination.
    • Autowired annotation: injects dependencies.
    • JdbcTemplate class: provides methods for executing SQL statements.
    • Component annotation: marks the class as a Spring component.
    • List interface: operates the query result set.

    Here is the sample code:

    import com.oceanbase.example.batch.model.People;
    import org.springframework.batch.item.ItemWriter;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.jdbc.core.JdbcTemplate;
    import org.springframework.stereotype.Component;
    
    import java.util.List;
    
  2. Define the AddPeopleWriter class.

    1. Use the @Autowired annotation to automatically inject the JdbcTemplate instance, which will be used to perform database operations for data writes.

      Here is the sample code:

          @Autowired
          private JdbcTemplate jdbcTemplate;
      
    2. In the write method, traverse List<? extends People> that is passed in to fetch all People objects in sequence. Execute the SQL statement DROP TABLE people to drop the table named people that may already exist. Execute the SQL statement CREATE TABLE people (name VARCHAR2(255), age INT) to create a table named people with two columns: name and age. Execute the SQL statement INSERT INTO people (name, age) VALUES (?, ?) to insert the attribute values of each People object into the people table.

      Here is the sample code:

      @Override
      public void write(List<? extends People> items) throws Exception {
          // Drop the table that may already exist.
          jdbcTemplate.execute("DROP TABLE people");
          // Create the table.
          String createTableSql = "CREATE TABLE people (name VARCHAR2(255), age INT)";
          jdbcTemplate.execute(createTableSql);
          for (People item : items) {
              String sql = "INSERT INTO people (name, age) VALUES (?, ?) ";
              jdbcTemplate.update(sql, item.getName(), item.getAge());
          }
      }
      

Code in BatchConfigTest.java

The BatchConfigTest.java file defines a class that uses JUnit for testing and is used to test the job configuration of Spring Batch.

Perform the following steps to configure the BatchConfigTest.java file:

  1. Reference other classes and interfaces.

    Declare this file to contain the following interfaces and classes:

    • Assert class: asserts test results.
    • Test annotation: marks a test method.
    • RunWith annotation: specifies the test runner.
    • Job interface: indicates a batch job.
    • JobExecution class: indicates the execution of a batch job.
    • JobParameters class: indicates the parameters of a batch job.
    • JobParametersBuilder class: builds parameters of a batch job.
    • JobLauncher interface: launches a batch job.
    • Autowired annotation: injects dependencies.
    • SpringBootTest annotation: marks the test class as a Spring Boot test.
    • SpringRunner class: specifies SpringRunner as the test runner.

    Here is the sample code:

    import org.junit.Assert;
    import org.junit.jupiter.api.Test;
    import org.junit.runner.RunWith;
    import org.springframework.batch.core.Job;
    import org.springframework.batch.core.JobExecution;
    import org.springframework.batch.core.JobParameters;
    import org.springframework.batch.core.JobParametersBuilder;
    import org.springframework.batch.core.launch.JobLauncher;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.test.context.SpringBootTest;
    import org.springframework.test.context.junit4.SpringRunner;
    
    import javax.batch.runtime.BatchStatus;
    import java.util.UUID;
    
  2. Define the BatchConfigTest class.

    With the SpringBootTest annotation and the SpringRunner runner, this class can perform Spring Boot integration tests. In the testJob method, use the JobLauncherTestUtils helper class to launch a batch job and use an assertion to verify the execution status of the job.

    1. Use the @Autowired annotation to automatically inject the JobLauncherTestUtils instance.

      Here is the sample code:

      @Autowired
      private JobLauncherTestUtils jobLauncherTestUtils;
      
    2. Use the @Test annotation to mark the testJob method as a test method. In this method, create a JobParameters object, call the jobLauncherTestUtils.launchJob method to launch the batch job, and then call the Assert.assertEquals method to assert the execution status of the job as COMPLETED.

      Here is the sample code:

      @Test
      public void testJob() throws Exception {
          JobParameters jobParameters = new JobParametersBuilder()
                  .addString("jobParam", "paramValue")
                  .toJobParameters();
      
          JobExecution jobExecution = jobLauncherTestUtils.launchJob(jobParameters);
      
          Assert.assertEquals(BatchStatus.COMPLETED, jobExecution.getStatus());
      }
      
    3. Use the @Autowired annotation to automatically inject the JobLauncher instance.

      Here is the sample code:

      @Autowired
      private JobLauncher jobLauncher;
      
    4. Use the @Autowired annotation to automatically inject the Job instance.

      Here is the sample code:

      @Autowired
      private Job job;
      
    5. Define an inner class named JobLauncherTestUtils to assist in launching a batch job. In the class, define the launchJob method for launching a batch job. In this method, call the jobLauncher.run method to launch a job and return the execution result of the job.

      Here is the sample code:

      private class JobLauncherTestUtils {
          public JobExecution launchJob(JobParameters jobParameters) throws Exception {
              return jobLauncher.run(job, jobParameters);
          }
      }
      

Code in AddPeopleDescProcessorTest.java

The AddPeopleDescProcessorTest.java file defines a class that uses JUnit for testing and is used to test the job configuration of Spring Batch.

Perform the following steps to configure the AddPeopleDescProcessorTest.java file:

  1. Reference other classes and interfaces.

    Declare this file to contain the following interfaces and classes:

    • People class: stores personnel information read from the database.
    • PeopleDESC class: stores the description converted or processed from personnel information.
    • Assert class: checks whether the actual test result meets the expectation.
    • Test annotation: marks a test method.
    • RunWith annotation: specifies the test runner.
    • Autowired annotation: injects dependencies.
    • SpringBootTest annotation: marks the test class as a Spring Boot test.
    • SpringRunner class: specifies SpringRunner as the test runner.

    Here is the sample code:

    import com.oceanbase.example.batch.model.People;
    import com.oceanbase.example.batch.model.PeopleDESC;
    import org.junit.Assert;
    import org.junit.jupiter.api.Test;
    import org.junit.runner.RunWith;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.test.context.SpringBootTest;
    import org.springframework.test.context.junit4.SpringRunner;
    
  2. Define the AddPeopleDescProcessorTest class.

    With the SpringBootTest annotation and the SpringRunner runner, this class can perform Spring Boot integration tests.

    1. Use the @Autowired annotation to automatically inject the AddPeopleDescProcessor instance.

      Here is the sample code:

      @Autowired
      private AddPeopleDescProcessor processor;
      
    2. Use the @Test annotation to mark the testProcess method as a test method. In this method, create a People object, call the processor.process method to process the object, and then assign the result to a PeopleDESC object.

      Here is the sample code:

      @Test
      public void testProcess() throws Exception {
      People people = new People();
      people.setName("John");
      people.setAge(25);
      
      PeopleDESC desc = processor.process(people);
      }
      

Code in AddDescPeopleWriterTest.java

The AddDescPeopleWriterTest.java file is a class that uses JUnit for testing and is used to test the write logic of AddDescPeopleWriter.

Perform the following steps to configure the AddDescPeopleWriterTest.java file:

  1. Reference other classes and interfaces.

    Declare this file to contain the following interfaces and classes:

    • PeopleDESC class: stores the description converted or processed from personnel information.
    • Assert class: asserts test results.
    • Test annotation: marks a test method.
    • RunWith annotation: specifies the test runner.
    • Autowired annotation: injects dependencies.
    • SpringBootTest annotation: marks the test class as a Spring Boot test.
    • JdbcTemplate class: provides methods for executing SQL statements.
    • SpringRunner class: specifies SpringRunner as the test runner.
    • ArrayList class: creates an empty list.
    • List interface: operates the query result set.

    Here is the sample code:

    import com.oceanbase.example.batch.model.PeopleDESC;
    import org.junit.Assert;
    import org.junit.jupiter.api.Test;
    import org.junit.runner.RunWith;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.test.context.SpringBootTest;
    import org.springframework.jdbc.core.JdbcTemplate;
    import org.springframework.test.context.junit4.SpringRunner;
    
    import java.util.ArrayList;
    import java.util.List;
    
  2. Define the AddDescPeopleWriterTest class.

    With the SpringBootTest annotation and the SpringRunner runner, this class can perform Spring Boot integration tests.

    1. Use @Autowired to inject instances. Use the @Autowired annotation to automatically inject the AddDescPeopleWriter and JdbcTemplate instances.

      Here is the sample code:

      @Autowired
      private AddDescPeopleWriter writer;
      @Autowired
      private JdbcTemplate jdbcTemplate;
      
    2. Use the method marked with @Test to test data insertion and output. Use the @Test annotation to mark the testWrite method as a test method. In this method, create an empty peopleDescList list and then add two PeopleDESC objects to the list. Call the writer.write method to write data in the list to the database. Use jdbcTemplate to execute the query statement that obtains data from the people_desc table. Execute the assertion statement to verify the correctness of the data. Return the query results to the console and return a message to indicate that job execution is complete.

      1. Insert data into the people_desc table. Create an empty PeopleDESC object list named peopleDescList. Create two PeopleDESC objects named desc1 and desc2 and set their attribute values. Add desc1 and desc2 to the peopleDescList list. Call the write method of writer to write the objects in the peopleDescList list to the people_desc table in the database. Call JdbcTemplate to execute the query statement SELECT COUNT(*) FROM people_desc that obtains the number of records in the people_desc table. Assign the result to the count variable. Call the Assert.assertEquals method to assert whether the value of count is 2.

        Here is the sample code:

           List<PeopleDESC> peopleDescList = new ArrayList<>();
           PeopleDESC desc1 = new PeopleDESC();
           desc1.setId(1);
           desc1.setName("John");
           desc1.setAge(25);
           desc1.setDesc("This is John with age 25");
           peopleDescList.add(desc1);
           PeopleDESC desc2 = new PeopleDESC();
           desc2.setId(2);
           desc2.setName("Alice");
           desc2.setAge(30);
           desc2.setDesc("This is Alice with age 30");
           peopleDescList.add(desc2);
           writer.write(peopleDescList);
        
           String selectSql = "SELECT COUNT(*) FROM people_desc";
           int count = jdbcTemplate.queryForObject(selectSql, Integer.class);
           Assert.assertEquals(2, count);
        
      2. Return data in the people_desc table. Use JdbcTemplate to execute the query statement SELECT * FROM people_desc, and use the lambda expression to process the query results. In the lambda expression, use methods such as rs.getInt and rs.getString to obtain field values in the query result set and populate the field values to the newly created PeopleDESC objects. Add all the newly created PeopleDESC objects to the result list resultDesc. Print the prompt line Data in the people_desc table:. Then, use a FOR loop to traverse the resultDesc list and use System.out.println to print the PeopleDESC objects in the list one by one. Finally, print a message to indicate that job execution is complete.

        Here is the sample code:

        List<PeopleDESC> resultDesc = jdbcTemplate.query("SELECT * FROM people_desc", (rs, rowNum) -> {
           PeopleDESC desc = new PeopleDESC();
           desc.setId(rs.getInt("id"));
           desc.setName(rs.getString("name"));
           desc.setAge(rs.getInt("age"));
           desc.setDesc(rs.getString("description"));
           return desc;
        });
        
        System.out.println("Data in the people_desc table:" );
        for (PeopleDESC desc : resultDesc) {
           System.out.println(desc);
        }
        
        // Return a message to indicate that job execution is complete.
        System.out.println("Batch Job execution completed." );
        

Code in AddPeopleWriterTest.java

The AddPeopleWriterTest.java file is a class that uses JUnit for testing and is used to test the write logic of AddPeopleWriterTest.

Perform the following steps to configure the AddPeopleWriterTest.java file:

  1. Reference other classes and interfaces.

    Declare this file to contain the following interfaces and classes:

    • People class: stores personnel information read from the database.
    • Test annotation: marks a test method.
    • RunWith annotation: specifies the test runner.
    • Autowired annotation: injects dependencies.
    • SpringBootApplication annotation: marks the class as the entry to the Spring Boot application.
    • SpringBootTest annotation: marks the test class as a Spring Boot test.
    • ComponentScan annotation: specifies the package or class to scan for components.
    • JdbcTemplate class: provides methods for executing SQL statements.
    • SpringRunner class: specifies SpringRunner as the test runner.
    • ArrayList class: creates an empty list.
    • List interface: operates the query result set.

    Here is the sample code:

    import com.oceanbase.example.batch.model.People;
    import org.junit.jupiter.api.Test;
    import org.junit.runner.RunWith;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.boot.test.context.SpringBootTest;
    import org.springframework.context.annotation.ComponentScan;
    import org.springframework.jdbc.core.JdbcTemplate;
    import org.springframework.test.context.junit4.SpringRunner;
    
    import java.util.ArrayList;
    import java.util.List;
    
  2. Define the AddPeopleWriterTest class.

    Use the SpringBootTest annotation and the SpringRunner runner for Spring Boot integration testing, and use the @ComponentScan annotation to specify the package to scan.

    1. Use @Autowired to inject instances. Use the @Autowired annotation to automatically inject the addPeopleWriter and JdbcTemplate instances.

      Here is the sample code:

      @Autowired
      private AddPeopleWriter addPeopleWriter;
      @Autowired
      private JdbcTemplate jdbcTemplate;
      
    2. Use the method marked with @Test to test data insertion and output.

      1. Insert data into the people table. First, create an empty People object list named peopleList. Then, create two People objects: person1 and person2, and set their name and age attributes. Add the two People objects to the peopleList list. Call the write method of addPeopleWriter and pass peopleList to the method as a parameter, so as to write the People objects to the database.

        Here is the sample code:

           List<People> peopleList = new ArrayList<>();
           People person1 = new People();
           person1.setName("zhangsan");
           person1.setAge(27);
           peopleList.add(person1);
           People person2 = new People();
           person2.setName("lisi");
           person2.setAge(35);
           peopleList.add(person2);
           addPeopleWriter.write(peopleList);
        
      2. Return data in the people table. Use JdbcTemplate to execute the query statement SELECT * FROM people, and use the lambda expression to process the query results. In the lambda expression, use the rs.getString and rs.getInt methods to obtain field values in the query result set and populate the field values to a new People object. Add all the newly created People objects to the result list result. Print the prompt line Data in the people table:. Then, use a FOR loop to traverse the result list and use System.out.println to print the People objects in the list one by one. Finally, print a message to indicate that job execution is complete.

        Here is the sample code:

           List<People> result = jdbcTemplate.query("SELECT * FROM people", (rs, rowNum) -> {
               People person = new People();
               person.setName(rs.getString("name"));
               person.setAge(rs.getInt("age"));
               return person;
           });
        
           System.out.println("Data in the people table:" );
           for (People person : result) {
               System.out.println(person);
           }
        
           // Return a message to indicate that job execution is complete.
           System.out.println("Batch Job execution completed." );
        

Complete code

pom.xml
application.properties
BatchApplication.java
BatchConfig.java
People.java
PeopleDESC.java
AddPeopleDescProcessor.java
AddDescPeopleWriter.java
AddPeopleWriter.java
BatchConfigTest.java
AddPeopleDescProcessorTest.java
AddDescPeopleWriterTest.java
AddPeopleWriterTest.java
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.11</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.oceanbase</groupId>
    <artifactId>java-oceanbase-springboot</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>java-oceanbase-springbatch</name>
    <description>Demo project for Spring Batch</description>
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>com.oceanbase</groupId>
            <artifactId>oceanbase-client</artifactId>
            <version>2.4.3</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-batch</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.10</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>javax.activation</groupId>
            <artifactId>javax.activation-api</artifactId>
            <version>1.2.0</version>
        </dependency>
        <dependency>
            <groupId>jakarta.persistence</groupId>
            <artifactId>jakarta.persistence-api</artifactId>
            <version>2.2.3</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

#configuration database

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:oceanbase://host:port/schema_name?characterEncoding=utf-8
spring.datasource.username=user_name
spring.datasource.password=

# JPA
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update

# Spring Batch
spring.batch.job.enabled=false

#
logging.level.org.springframework=INFO
logging.level.com.example=DEBUG
package com.oceanbase.example.batch;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class BatchApplication {
    public static void main(String[] args) {
        SpringApplication.run(BatchApplication.class, args);
    }

    public void runBatchJob() {
    }
}

package com.oceanbase.example.batch.config;

import com.oceanbase.example.batch.model.People;
import com.oceanbase.example.batch.model.PeopleDESC;
import com.oceanbase.example.batch.processor.AddPeopleDescProcessor;
import com.oceanbase.example.batch.writer.AddDescPeopleWriter;
import org.springframework.batch.core.Job;
import org.springframework.batch.core.Step;
import org.springframework.batch.core.configuration.annotation.EnableBatchProcessing;
import org.springframework.batch.core.configuration.annotation.JobBuilderFactory;
import org.springframework.batch.core.configuration.annotation.StepBuilderFactory;
import org.springframework.batch.core.launch.support.RunIdIncrementer;
import org.springframework.batch.item.ItemProcessor;
import org.springframework.batch.item.ItemReader;
import org.springframework.batch.item.ItemWriter;
import org.springframework.batch.item.database.JdbcCursorItemReader;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.core.BeanPropertyRowMapper;

import javax.sql.DataSource;
//import javax.activation.DataSource;

@Configuration
@EnableBatchProcessing
@SpringBootApplication
@ComponentScan("com.oceanbase.example.batch.writer")
@EnableAutoConfiguration
public class BatchConfig {
    @Autowired
    private JobBuilderFactory jobBuilderFactory;

    @Autowired
    private StepBuilderFactory stepBuilderFactory;

    @Autowired
    private DataSource dataSource;// Use the default dataSource provided by automatic Spring Boot configuration



    @Bean
    public ItemReader<People> peopleReader() {
        JdbcCursorItemReader<People> reader = new JdbcCursorItemReader<>();
        reader.setDataSource((javax.sql.DataSource) dataSource);
        reader.setRowMapper(new BeanPropertyRowMapper<>(People.class));
        reader.setSql("SELECT * FROM people");
        return reader;
    }

    @Bean
    public ItemProcessor<People, PeopleDESC> addPeopleDescProcessor() {
        return new AddPeopleDescProcessor();
    }

    @Bean
    public ItemWriter<PeopleDESC> addDescPeopleWriter() {
        return new AddDescPeopleWriter();
    }

    @Bean
    public Step step1(ItemReader<People> reader, ItemProcessor<People, PeopleDESC> processor,
                      ItemWriter<PeopleDESC> writer) {
        return stepBuilderFactory.get("step1")
                . <People, PeopleDESC>chunk(10)
                .reader(reader)
                .processor(processor)
                .writer(writer)
                .build();
    }

    @Bean
    public Job importJob(Step step1) {
        return jobBuilderFactory.get("importJob")
                .incrementer(new RunIdIncrementer())
                .flow(step1)
                .end()
                .build();
    }
}
package com.oceanbase.example.batch.model;

public class People {
    private String name;
    private int age;

        // getters and setters

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
    @Override
    public String toString() {
        return "People [name=" + name + ", age=" + age + "]";
    }
    // Getters and setters
}
package com.oceanbase.example.batch.model;

public class PeopleDESC {
    private String name;
    private int age;
    private String desc;
    private int id;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getDesc() {
        return desc;
    }

    public void setDesc(String desc) {
        this.desc = desc;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    @Override
    public String toString() {
        return "PeopleDESC [name=" + name + ", age=" + age + ", desc=" + desc + "]";
    }
}
package com.oceanbase.example.batch.processor;

import com.oceanbase.example.batch.model.People;
import com.oceanbase.example.batch.model.PeopleDESC;
import org.springframework.batch.item.ItemProcessor;


public class AddPeopleDescProcessor implements ItemProcessor<People, PeopleDESC> {
    @Override
    public PeopleDESC process(People item) throws Exception {
        PeopleDESC desc = new PeopleDESC();
        desc.setName(item.getName());
        desc.setAge(item.getAge());
        desc.setDesc("This is " + item.getName() + " with age " + item.getAge());
        return desc;
    }
}
package com.oceanbase.example.batch.writer;

import com.oceanbase.example.batch.model.PeopleDESC;
import org.springframework.batch.item.ItemWriter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;

import java.util.List;

public class AddDescPeopleWriter implements ItemWriter<PeopleDESC> {
    @Autowired
    private JdbcTemplate jdbcTemplate;

    @Override
    public void write(List<? extends PeopleDESC> items) throws Exception {
        // Drop the table that may already exist.
        jdbcTemplate.execute("DROP TABLE people_desc");
        // Create the table.
        String createTableSql = "CREATE TABLE people_desc (id INT PRIMARY KEY, name VARCHAR2(255), age INT, description VARCHAR2(255))";
        jdbcTemplate.execute(createTableSql);
        for (PeopleDESC item : items) {
            String sql = "INSERT INTO people_desc (id, name, age, description) VALUES (?, ?, ?, ?) ";
            jdbcTemplate.update(sql, item.getId(), item.getName(), item.getAge(), item.getDesc());
        }
    }
}
package com.oceanbase.example.batch.writer;

import com.oceanbase.example.batch.model.People;
import org.springframework.batch.item.ItemWriter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;

import java.util.List;

@Component
public class AddPeopleWriter implements ItemWriter<People> {
    @Autowired
    private JdbcTemplate jdbcTemplate;

    @Override
    public void write(List<? extends People> items) throws Exception {
        // Drop the table that may already exist.
        jdbcTemplate.execute("DROP TABLE people");
        // Create the table.
        String createTableSql = "CREATE TABLE people (name VARCHAR2(255), age INT)";
        jdbcTemplate.execute(createTableSql);
        for (People item : items) {
            String sql = "INSERT INTO people (name, age) VALUES (?, ?) ";
            jdbcTemplate.update(sql, item.getName(), item.getAge());
        }
    }
}

package com.oceanbase.example.batch.config;

import com.oceanbase.example.batch.writer.AddDescPeopleWriter;
import org.junit.Assert;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.springframework.batch.core.Job;
import org.springframework.batch.core.JobExecution;
import org.springframework.batch.core.JobParameters;
import org.springframework.batch.core.JobParametersBuilder;
import org.springframework.batch.core.launch.JobLauncher;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import org.springframework.test.context.junit4.SpringRunner;

import javax.annotation.Resource;
import javax.batch.runtime.BatchStatus;
import java.util.UUID;

@RunWith(SpringRunner.class)
@SpringBootTest
public class BatchConfigTest {

    @Test
    public void testJob() throws Exception {
        JobParameters jobParameters = new JobParametersBuilder()
                .addString("jobParam", UUID.randomUUID().toString())
                .toJobParameters();

        JobLauncherTestUtils jobLauncherTestUtils = new JobLauncherTestUtils();
        JobExecution jobExecution = jobLauncherTestUtils.launchJob(jobParameters);
        Assert.assertEquals(BatchStatus.COMPLETED.toString(), jobExecution.getStatus().toString());
    }

    @Autowired
    private JobLauncher jobLauncher;

    @Autowired
    private Job job;

    private class JobLauncherTestUtils {

        public JobExecution launchJob(JobParameters jobParameters) throws Exception {
            return jobLauncher.run(job, jobParameters);
        }
    }
}

package com.oceanbase.example.batch.processor;

import com.oceanbase.example.batch.model.People;
import com.oceanbase.example.batch.model.PeopleDESC;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

@RunWith(SpringRunner.class)
@SpringBootTest
public class AddPeopleDescProcessorTest {
    @Autowired
    private AddPeopleDescProcessor processor;

    @Test
    public void testProcess() throws Exception {
        People people = new People();
  //      people.setName("John");
  //      people.setAge(25);

        PeopleDESC desc = processor.process(people);

//      Assert.assertEquals("John", desc.getName());
//        Assert.assertEquals(25, desc.getAge());
 //       Assert.assertEquals("This is John with age 25", desc.getDesc());
    }
}

package com.oceanbase.example.batch.writer;

import com.oceanbase.example.batch.model.PeopleDESC;
import org.junit.Assert;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.test.context.junit4.SpringRunner;

import java.util.ArrayList;
import java.util.List;

@RunWith(SpringRunner.class)
@SpringBootTest
public class AddDescPeopleWriterTest {
    @Autowired
    private AddDescPeopleWriter writer;
    @Autowired
    private JdbcTemplate jdbcTemplate;

    @Test
    public void testWrite() throws Exception {


        // Insert data into the people_desc table.
        List<PeopleDESC> peopleDescList = new ArrayList<>();
        PeopleDESC desc1 = new PeopleDESC();
        desc1.setId(1);
        desc1.setName("John");
        desc1.setAge(25);
        desc1.setDesc("This is John with age 25");
        peopleDescList.add(desc1);
        PeopleDESC desc2 = new PeopleDESC();
        desc2.setId(2);
        desc2.setName("Alice");
        desc2.setAge(30);
        desc2.setDesc("This is Alice with age 30");
        peopleDescList.add(desc2);
        writer.write(peopleDescList);

        String selectSql = "SELECT COUNT(*) FROM people_desc";
        int count = jdbcTemplate.queryForObject(selectSql, Integer.class);
        Assert.assertEquals(2, count);

        // Return data in the people_desc table.
        List<PeopleDESC> resultDesc = jdbcTemplate.query("SELECT * FROM people_desc", (rs, rowNum) -> {
            PeopleDESC desc = new PeopleDESC();
            desc.setId(rs.getInt("id"));
            desc.setName(rs.getString("name"));
            desc.setAge(rs.getInt("age"));
            desc.setDesc(rs.getString("description"));
            return desc;
        });

        System.out.println("Data in the people_desc table:" );
        for (PeopleDESC desc : resultDesc) {
            System.out.println(desc);
        }

        // Return a message to indicate that job execution is complete.
        System.out.println("Batch Job execution completed." );
    }
}
package com.oceanbase.example.batch.writer;

import com.oceanbase.example.batch.model.People;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.test.context.junit4.SpringRunner;

import java.util.ArrayList;
import java.util.List;

@RunWith(SpringRunner.class)
@SpringBootTest
@SpringBootApplication
@ComponentScan("com.oceanbase.example.batch.writer")
public class AddPeopleWriterTest {

    @Autowired
    private AddPeopleWriter addPeopleWriter;
    @Autowired
    private JdbcTemplate jdbcTemplate;

    @Test
    public void testWrite() throws Exception {
        // Insert data into the people table.
        List<People> peopleList = new ArrayList<>();
        People person1 = new People();
        person1.setName("zhangsan");
        person1.setAge(27);
        peopleList.add(person1);
        People person2 = new People();
        person2.setName("lisi");
        person2.setAge(35);
        peopleList.add(person2);
        addPeopleWriter.write(peopleList);

        // Query and return the result.
        List<People> result = jdbcTemplate.query("SELECT * FROM people", (rs, rowNum) -> {
            People person = new People();
            person.setName(rs.getString("name"));
            person.setAge(rs.getInt("age"));
            return person;
        });

        System.out.println("Data in the people table:" );
        for (People person : result) {
            System.out.println(person);
        }

        // Return a message to indicate that job execution is complete.
        System.out.println("Batch Job execution completed." );
    }
}

References

For more information about OceanBase Connector/J, see OceanBase Connector/J.

What is on this page
Prerequisites
Procedure
Step 1: Obtain the OceanBase Database connection string
Step 2: Import the java-oceanbase-springbatch project to IntelliJ IDEA
Step 3: Modify the database connection information in the java-oceanbase-springbatch project
Step 4: Run the java-oceanbase-springbatch project
Project code
Code in pom.xml
Code in application.properties
Code in BatchApplication.java
Code in BatchConfig.java
Code in People.java
Code in PeopleDESC.java
Code in AddPeopleDescProcessor.java
Code in AddDescPeopleWriter.java
Code in AddPeopleWriter.java
Code in BatchConfigTest.java
Code in AddPeopleDescProcessorTest.java
Code in AddDescPeopleWriterTest.java
Code in AddPeopleWriterTest.java
Complete code
References