参数详细描述¶
连接数据库参数¶
- -h hostname
描述: 指定正在运行服务器的主机名或IP。如果主机名以斜杠开头,则它被用作到 Unix 域套接字的路径。
长参数:--host
默认:127.0.0.1
示例: isql -h 127.0.0.1 或 isql --host=127.0.0.1
注解
当使用127.0.0.1进行数据库连接时,本机Hosts文件中的127.0.0.1能够映射本机的Hostname。如没有此映射关系,可能会导致连接寻址过慢,最终导致isql连接超时。
- -p port
描述: 指定服务器侦听的TCP端口或本地Unix域套接字文件的扩展。
长参数:--port
默认:2003
示例:isql -p 2003 或 isql --port=2003
- -d dbname
描述: 声明想要连接的数据库名称。
长参数:--dbname
默认:OSRDB
示例:isql -d osrdb 或 isql --dbname=osrdb
- -U username
描述:以用户 username 代替缺省用户与数据库连接。
长参数:--username
默认:sysdba
示例:isql -U sysdba
- -U username/password
描述:以用户 username 代替缺省用户与数据库连接,可以通过/间隔方式传入密码。
默认:sysdba/szoscar55
示例:isql -U sysdba/szoscar55
- –W
描述: 强制 isql 在与一个数据库连接前提示输入口令。
长参数:--password
默认:无,在没有输入密码时,会提示输入密码
示例:isql -W
- -m
描述:是否指定登录模式,支持的认证模式有:radius模式、os认证模式(系统免密登录)
默认: md5模式
长参数:--authmode
示例: isql -m os或者 isql -m radius
注解
当用户通过本地Windows或Linux用户帐户进行连接时,会将该本地用户的操作系统身份信息将传送到数据库服务端,信息包括:域名、用户名、域用户组名。 数据库服务器获得该信息,并通过检测系统表中是否存在该用户账号或者所属的组账号信息来进行用户身份的验证。
配置步骤如下
1.数据库设置ENABLE_OPERATING_SYSTEM_AUTHENT = 1参数
2.创建一个OPS$+操作系统用户的用户名,需要添加认证方式为IDENTIFIED EXTERNALLY参数。例如:create user OPS$root IDENTIFIED EXTERNALLY
- –C
描述:指定ISQL工具连接数据库后台的超时时间,单位秒(s)。
长参数:--connect_timeout
默认:无
示例:isql -C 10 或 isql --connect_timeout=10
- –z
描述:使用安全连接链接数据库,证书和密钥需改名为isql.crt和isql.key并放置于神通数据库安装目录下admin目录当中。如果有双向验证的需求(例如:isql使用-y参数进行加密算法认证),需将根证书与证书吊销列表文件更名为isql-ca.crt和isql-ca.crl,并拷贝至同一目录下。
长参数:--ssl
示例:isql -z 或 isql --ssl
- –K
描述:输入isql.key的密码
长参数:--sslkeypw
示例:isql -K 123456 或 isql --sslkeypw=123456
- –Z
描述:使用NTLS国密双证书协议安全连接数据库,将ca_double.crt、client_enc.crt、client_enc.key、client_sign.crt、client_sign.key并放置于神通数据库安装目录下admin目录当中。
长参数:--ntls
默认:不启用
示例:isql -Z 或 isql --ntls
- -y
描述:用户安全模式进行数据库连接时,可指定对应的加密协议及加密算法,加密协议和加密算法之间使用逗号进行分隔。不使用安全模式连接时或在安全模式下进行单向认证时,该参数无效
长参数:--tls-ciphers
默认:ntls为ECC-SM2-SM4-CBC-SM3加密算法,ssl为不设置对应的加密算法
示例: isql -Z -y tls1.3,TLS_AES_128_GCM_SHA256 或 isql --ntls --tls-ciphers=sm2,ECC-SM2-SM4-CBC-SM3
注解
ssl支持的协议版本为ssl3、tls1、tls1.1、tls1.2、tls1.3。ntls协议支持ssl协议版本及sm2、sm3、sm4协议,使用无效的协议版本时,将会无法连接数据库。
- -u
描述:用户连接后台服务时是否使用旧协议连接。
长参数:--useoldprotocol
默认:不启用
示例:isql -u 或 isql --useoldprotocol
需要注意的是kstore单库连接时需要添加-u参数,因为kstore还不支持新协议。
- -N
描述:用户登录成功后设置当前模式的功能。设置后,如果对象前面没有写模式名称,默认会从该参数指定的模式下去寻找,找不到则会报对象不存在的错误。
长参数:--search-path
示例:isql -N S1 或 isql --search-path=S1
- -O
描述:接收mpp连接时要设置的参数,最大长度为63,超过该长度报错退出,isql不会对参数值的正确性进行判定,因此使用时请谨慎!
长参数:--options
示例:isql -O S1 或 isql --options=S1
- -g
描述:指定isql客户端字符集
长参数: --encoding
示例: isql -g UTF-8 或者 isql --encoding=GBK
Sql执行参数¶
- –c command
描述:声明 isql 将执行一条查询字符串 command , 然后退出。这一点在 shell脚本里很有用。
长参数:--command
示例:isql -c "select * from t" 或 isql --command="select * from t"
- -f filename
描述:使用 filename 作为命令的语句源而不是交互式读入查询。 ISQL将在处理完文件后结束。这个选项在很多方面等效于内部命令 \i。
长参数:--file
示例:isql -f /home/isql.sql 或 isql --file=/home/isql.sql
- -r
描述:utf-8字符集存在一种特殊的空格符号:no-break space(0xc2 0xa0),和普通空格(0x20)不同点在于其宽度不会被压缩,由于后台数据库不支持该种符号作为分隔符,isql提供此参数用于将该特殊空格符号转换为普通空格符号;此功能默认关闭,检测到存在该种空格时提示用户,由用户自行判断是否开启。
长参数:--rm-nb-space
示例:isql -r 或 isql --rm-nb-space
- -s
描述:单步模式运行。意味着每个查询在发往服务器之前都要提示用户, 用这个选项也可以取消执行。此选项主要用于调试脚本。
长参数:--single-step
示例:isql -s 或 isql --single-step
- -S table_options
描述:单行运行模式,这时每个命令都将由换行符结束,没有分号时也会认为语句结束并执行。
长参数:--single-line
示例:isql -S 或 isql --single-line
- -v
描述:定义一个变量,并指定值,isql登录后可试用这个变量,不进行赋值则是删除对应的变量。 -v参数可以多次出现,方便定义多个变量。
长参数:--variable 或 --set
示例:
Isql -v a=b
Isql -v a
sql --variable=a=b
Isql --set=a=b
输出控制参数¶
- -L filename
描述:除了正常的输出源之外,把所有查询输出记录到文件 filename。
示例:isql -L /home/record.log
- -o filename
描述:将所有查询输出重定向到文件 filename 。这个选项等效于 \o 命令。
长参数:--log-file
示例:isql -o /home/record.log 或 isql --log-file=/home/record.log
- -a
描述:在读取行时向标准输出打印所有内容。这个选项在脚本处理时比交互模式时更有用。 这个选项等效于设置ECHO 变量为 all。
长参数:--echo-all
示例:isql –a 或 isql --echo-all
- -E
描述:显示内部命令对应的sql命令,与\set echo-hidden on等同。
长参数:--echo-all
示例:isql –E 或 isql --echo-hidden
登录isql后,执行list table,会将查询的sql语句和表信息都显示出来,比如:
格式控制参数¶
- -A
描述:切换为非对齐输出模式。缺省输出模式是对齐的。等效内部命令a
示例:isql -A
- -e
描述: 把所有发送给服务器的查询同时也回显到标准输出。 等效于把变量 ECHO 设置为 queries。
示例:isql -e
- -F separator
描述: 当设置非对其输出模式时,使用 separator 作为未对齐输出的域分隔符,默认分隔符为"|"。如果没有设置非对其输出模式,该选项无效。
示例: isql -F @ 代表使用@作为未对齐输出的域分隔符。
注解
不建议使用#作为分隔符。原因是在linux系统中,#号及#号后面的内容被视为注释,不会被传递给程序。
- –H
描述:打开 HTML 格式输出。
示例: isql –H
- -q
描述: 安静地执行处理任务。 缺省时 ISQL 将打印欢迎和许多其它输出信息。 如果使用了此选项,这些都不会出现。 这在和 -c 选项一起使用时很有效。 在 ISQL 里可以通过设置 QUIET 变量实现同样效果。
示例:isql -q
- -R separator
描述:当设置非对其输出模式时,使用 separator 做为非对齐输出的记录分隔符,默认分隔符为"n"。如果没有设置非对其输出模式,该选项无效。
示例:isql -R @
注解
不建议使用#作为分隔符。原因是在linux系统中,#号及#号后面的内容被视为注释,不会被传递给程序。
- –t
描述: 关闭打印列名称和结果行计数脚注等信息。 等效于 t 命令。
示例:isql -t
- –T table_options
描述: 允许你声明放在HTML table 标签里的选项。
长参数:--table-attr
示例:isql -T width 或 isql --table-attr=width
- -x
描述:打开扩展表格式模式。等效于 \x 命令。
长参数:--expanded
示例:isql -x 或 isql --expanded
辅助参数¶
- -V
描述:打印 isql 版本信息然后退出
长参数:--version
示例:isql -V 或 isql --version
- -CV
描述:打印神通数据库所有组件版本信息
长参数:--compversion
示例:isql -CV 或 isql --compversion
注解
odbc组件和datamigrate依赖其他第三方库,但这些第三方库所在路径没有在 LD_LIBRARY_PATH 中,导致无法找到依赖,查询版本可能会失败,可以先执行
export LD_LIBRARY_PATH=$SZ_OSCAR_HOME/drivers/odbc/lib:$SZ_OSCAR_HOME/drivers/datamigrate:$SZ_OSCAR_HOME/bin
再执行:
isql -CV
自v2.0.42(不含)以后,在$SZ_OSCAR_HOME/installation/getCompVersion目录中,提供stgetversion.sh脚本,在Linux下可以用这个脚本获得所有组件的版本。
自v2.0.53(不含)以后,在$SZ_OSCAR_HOME/installation/getCompVersion目录中,提供stgetversion.bat脚本,在Windows下可以用这个脚本获得所有组件的版本。
在Windows环境执行stgetversion.bat脚本时,需要findstr及rundll32存在于PATH环境变量的路径中,否则将影响部分组件的版本查询
自v2.0.53(不含)以后,在执行isql -CV时,需要在$SZ_OSCAR_HOME/installation/getCompVersion目录存在对应的stgetversion.sh或stgetversion.bat脚本,否则将无法查询所有组件的版本查询
执行stgetversion.sh或stgetversion.bat文件时,需要在$SZ_OSCAR_HOME/installation/getCompVersion目录存在getJarVersion.java或getJarVersion.class文件,否则将无法获取java组件的版本
- -l
描述:列出所有可用的数据库,然后退出。 其它非连接选项将被忽略。类似于内部命令 \list。
长参数:--list
示例:isql -l 或 isql --list
- -n
描述:禁用命令行tab自动补全功能(readline)。
示例:isql -n
注解
设置该参数后,tab键补全及上下键补全等补全功能都会被禁用,如果用户仅想禁用tab键补全功能,不想禁用上下键补全功能,可以不设置此参数,通过set complete on/off进行设置
- -X
描述:不读取启动文件。
长参数:--no-psqlrc
示例:isql -X 或 isql --no-psqlrc
- -?
描述: 显示关于 ISQL 命令行参数的帮助然后退出。等同于—help
示例: isql -?
- --help
描述: 显示关于 ISQL 命令行参数的帮助然后退出,同-?。
示例: isql --help