元命令
在 vsql 中输入的任何以不带引号的反斜杠开头的命令称为 vsql 元命令,这种命令由 vsql 本身进行处理。这些命令可使 vsql 更有助于进行管理或脚本编写。元命令的更常用叫法是斜杠命令或反斜杠命令。
vsql 命令的格式是反斜杠的后面依次紧跟命令动词和任何参数。参数和命令动词用任意数量的空格字符分隔,并且各个参数用任意数量的空格字符分隔。
若要在参数中包含空格,您可以用单引号将该参数括起来。若要在参数中包含单引号,请在该参数前面附加反斜杠。此外,包含在单引号中的任何内容需要进行类 C 替换,以替代 \n
(换行符)、\t
(制表符)、\\
数字、\0
数字和 \0x
数字(带有给定十进制、八进制或十六进制代码的字符)。
如果不带引号的参数以冒号 (:
) 开头,则该参数会被视为 vsql 变量,并且变量的值会改为用作参数。
用反引号 (```) 括起来的实参会被视为一个命令行并传递到 shell。命令的输出(移除了任何尾随换行符)会被视为参数值。以上转义序列在反引号中也适用。
有些命令使用 SQL 标识符(例如表名称)作为参数。这些实参遵循 SQL 的语法规则:不带引号的字母会强制转换为小写,而双引号 ("
) 可防止对字母进行大小写转换并允许在标识符中包含空格。在双引号中,成对的双引号在生成的名称中会减少为单个双引号。例如,FOO"BAR"BAZ
会解释为 fooBARbaz
,而 "A weird"" name"
将变为 A weird" name
。
当出现其他不带引号的反斜杠时,对参数进行的解析将停止。此不带引号的反斜杠会被视为新的元命令的开头。特殊序列 \\
(两个反斜杠)标记参数的结尾,并继续解析 SQL 命令(如果有)。这样,您可以随意地在单个行中将 SQL 命令和 vsql 命令一起使用。但在任何情况下,元命令的参数都不能超过行的结尾。