3.2.1. 安装部署
- SQL超级终端 为免安装客户端工具,将zip压缩包解压后,Windows平台通过PowerShell进入解压目录,执行.sqlclient.ps1即会列出详细的命令行选项功能介绍(同理Linux平台中对应解压目录中执行./sqlclient.sh)。
![]()
- 注意
对于Windows PowerShell中运行SQL终端,可能出现中文显示乱码问题,可通过以下命令来将控制台输出编码设为UTF-8(覆盖默认GBK): [Console]::OutputEncoding = [System.Text.Encoding]::UTF8 [Console]::InputEncoding = [System.Text.Encoding]::UTF8
3.2.2. 使用介绍
- 用法:
.sqlclient.ps1 [目标库] [连接信息] [选项]
选项:
命令行选项 命令选项
功能含义
--target-db
连接到的目标库,用于和version一起推断jdbc驱动(大小写不敏感)。注:如果不是--help,那么--target-db必须是第一个选项
--target-db-version
连接到的目标库版本,用于推断jdbc驱动
-u 或 --url
数据库jdbc连接URL,也可使用--host --port [--db] [--param]代替,同时指定时, 本选项具有更高的优先级
--host
数据库服务器主机地址
--port
数据库服务器主机端口
--db
默认数据库
--param
连接参数
--user
数据库用户名
-p 或 --password
数据库密码
-d 或 --driver
数据库驱动类(可选:默认基于target-db自动推断)
-v 或 --verbose
显示详细信息
-f 或 --file
执行sql文件,然后退出
--dir
执行或转换目录中的所有文件(按照ascii顺序进行,支持目录递归;文件名或目录名包含"_unisql"则转换,否则不转换),然后退出
--noexec
仅执行转换,结果输出到--output目录,不存在会自动创建
--output
执行或转换目录中的所有文件(按照ascii顺序进行,支持目录递归),然后退出
--log
执行结果重定向文件或目录。对于-f,为日志文件;对于--dir,为日志目录,在目录下会包含一个batch.err,包含所有的错误,方便用户快速定位
--unisql
走统一SQL
--source-db
走统一SQL时,源库方言(大小写不敏感)
连接到的源库版本,用于推断jdbc驱动(可选)
显示详细信息
--compare-server
比对服务器地址(不配置,则不比对)
-t 或 --timing
显示执行时间
-m 或 --max-rows
行数,交互模式下的最大显示行数 (默认: 1000000),-f/copy/spool不受行数限制影响
--exit-on-error
出错时退出
--list-unisql-dblist
查看统一sql支持的源库和目标库列表
-h 或 --help
显示此帮助信息
- 命令行示例:
- 1.使用统一SQL转换且在目标库中执行(源mysql、目标ob-oracle):
.sqlclient.ps1 --target-db OCEAN_BASE_ORACLE --target-db-version 4020100 --url jdbc:oceanbase://10.20.47.202:2883 --user sys@oracle_tenant#obdemo --password aaAA11a --source-db mysql --unisql
![]()
- 2.使用统一SQL转换且在目标库中执行(源oracle、目标pg):
.sqlclient.ps1 --target-db POSTGRESQL --host 10.20.198.134 --port 5432 --db postgres --user postgres --password lightdb@123 --source-db ORACLE --unisql
- 3.使用统一SQL仅转换不执行(源oracle、目标pg):
.sqlclient.ps1 --target-db POSTGRESQL --source-db ORACLE --unisql --noexec
![]()
- 4.不使用统一SQL转换,仅在目标库执行(目标pg):
.sqlclient.ps1 --target-db POSTGRESQL --host 10.20.198.134 --port 5432 --db postgres --user postgres --password lightdb@123
![]()
- 5.使用统一SQL转换单个sql文件(源oracle、目标gaussdb-oracle):
.sqlclient.ps1 --target-db GAUSSDB_ORACLE --unisql --source-db ORACLE --noexec -f E:业务代码test.sql --output D:Downloadsdist20160130output_gaussdb-oracle --log D:Downloadsdistlog
- 6.使用统一SQL转换整个文件夹(源oracle、目标gaussdb-oracle):
.sqlclient.ps1 --target-db GAUSSDB_ORACLE --unisql --source-db ORACLE --noexec --dir E:业务代码数风RCMP5.0hsrcm-pbs-taskpublicbusinessdeploysqlsoracle_unisql --output D:Downloadsdist20160130output_gaussdb-oracle --log D:Downloadsdistlog
- 7.使用统一SQL转换整个文件夹(源oracle、目标gaussdb-oracle),其中混合包含了需要转换和无需转换的sql文件:
.sqlclient.ps1 --target-db GAUSSDB_ORACLE --unisql --source-db ORACLE --noexec --dir E:业务代码数风RCMP5.0hsrcm-pbs-taskpublicbusinessdeploysqlsoracle_unisql --output D:Downloadsdist20160130output_gaussdb-oracle --log D:Downloadsdistlog
![]()
- 注意
- 1.在SQL终端交互命令中,可通过!help命令来查看完整的命令支持清单
![]()
2.--log指定输出的日志文件目录中,batch.err文件包含所有转换不支持、执行错误等导致的报错信息