版本:latest

ogsql使用说明

概述

ogsql是OpenGauss oGRAC引擎提供的SQL开发者命令行工具,用于连接数据库、执行SQL语句和脚本,以及管理数据库对象。本工具支持交互式和非交互式两种使用模式。

命令行语法

基本语法

ogsql支持三种主要的使用方式:

bash
# 方式1:显示帮助或版本信息
ogsql -h
ogsql -v

# 方式2:进入交互式模式
ogsql

# 方式3:指定登录信息和选项,可以以非交互模式执行sql语句
ogsql [ <logon> [<options>] [<start>] ]

登录信息格式

ogsql支持以下登录格式:

[ user [ /password ] @{host:port}[,...] ] [as sysdba]

以及特殊的管理员登录格式:

/ as { sysdba} [ host:port ]

其中各参数含义如下:

  • user: 登录用户名
  • password: 登录用户密码。如果不提供,将进入交互式输入模式(推荐出于安全考虑使用交互式输入)
  • host: 数据库服务器IP地址,支持IPv4和IPv6
  • port: 数据库服务器端口号
  • sysdba: 数据库管理员身份

选项参数

ogsql支持以下可选选项参数:

[-q] [-w <timeout>] [-a] [-D "data_home_path"]

各选项含义:

  • -q: 取消SSL登录认证
  • -w <timeout>: 客户端连接数据库的超时时间(单位:秒)
    • 默认值为60秒
    • 特殊值-1表示无限超时
    • 特殊值0表示不等待
  • -a: 打印已执行的SQL语句
    • 可与-f参数一起使用,表示打印并执行SQL脚本文件中的SQL语句
  • -D: 指定数据数据目录路径

启动选项

ogsql支持以下启动选项(同一时间只能使用其中一种):

[-c "execute-sql-command"] | [-f "execute-sql-file"] | [-s "destination-file"]

各选项含义:

  • -c: 执行指定的SQL语句
  • -f: 执行指定的SQL脚本文件
  • -s: 将命令提示符和输出重定向到指定文件

示例用法

基本登录

bash
# 以管理员身份无密码登录
ogsql / as sysdba

# 通过IP地址和端口以指定用户登录
ogsql user/user_pwd@127.0.0.1:1611

执行SQL语句

bash
# 登录后执行单个SQL语句\ nogsql user/user_pwd@127.0.0.1:1611 -c "SELECT 1 FROM SYS_DUMMY"

# 执行SQL脚本文件
ogsql user/user_pwd@127.0.0.1:1611 -f "/home/user/example.sql"

# 打印并执行SQL脚本文件中的语句
ogsql user/user_pwd@127.0.0.1:1611 -a -f "/home/user/example.sql"

设置连接超时

bash
# 设置连接超时为30秒
ogsql user/user_pwd@127.0.0.1:1611 -w 30

# 设置无限超时
ogsql user/user_pwd@127.0.0.1:1611 -w -1

交互式命令

在ogsql交互式模式下,可以使用以下命令:

命令描述示例
CONN连接到数据库CONN user/password@host:port
EXIT/QUIT退出ogsqlEXIT
SHOW显示系统信息SHOW PARAMETERS
DESC描述数据库对象DESC table_name
@file执行SQL脚本文件@/home/user/example.sql
@@file执行嵌套SQL脚本文件@@/home/user/include.sql
SPOOL将输出保存到文件SPOOL output.txt
CLEAR清除屏幕CLEAR
SET设置ogsql环境变量SET TIMING ON
COLUMN设置列显示格式COLUMN column_name FORMAT A20
WHENEVER错误处理设置WHENEVER SQLERROR EXIT
PROMPT显示提示信息PROMPT '开始执行脚本'

参数绑定

ogsql支持在SQL语句中使用参数绑定,格式为:参数名。执行包含参数的SQL语句时,ogsql会提示用户输入参数值。

示例:

sql
SELECT * FROM employees WHERE department_id = :dept_id;

执行时,ogsql会提示用户输入dept_id的值。

环境变量设置

使用SET命令可以配置ogsql的运行环境:

sql
-- 启用执行时间统计
SET TIMING ON;

-- 启用SQL语句显示
SET ECHO ON;

输出重定向

使用SPOOL命令可以将ogsql的输出重定向到文件:

sql
-- 开始将输出保存到文件
SPOOL output.txt;

-- 执行SQL语句
SELECT * FROM employees;

-- 停止输出重定向
SPOOL OFF;

错误处理

使用WHENEVER命令可以设置ogsql在遇到错误时的行为:

sql
-- 遇到SQL错误时退出
WHENEVER SQLERROR EXIT;

-- 遇到SQL错误时继续执行但显示错误
WHENEVER SQLERROR CONTINUE;

元数据查询示例

以下是一些常用的元数据查询示例:

sql
-- 查看所有用户
SELECT * FROM ADM_USERS;

-- 查看所有表
SELECT * FROM ADM_TABLES;

-- 查看表结构
DESC table_name;

-- 查看系统参数
SHOW PARAMETERS;