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文件包含所有转换不支持、执行错误等导致的报错信息