现象
在yasql执行sql语句后报错:YASQL-00021 input line overflow (>4000 byte at line 4)
原因
yasql在交互模式模式下单行字符总量限制4000字节,超出该限制即报错。
交互式模式下,yasql会显示一个提示符,通常是 SQL>,等待用户输入命令,
用户执行的每个命令都会立即执行,并显示结果。这允许用户实时看到他们的操作效果。
解决办法
非交互模式下单行字符总量最大限制为:32000字节。远高于交互模式下的4000字节。
如果输入文本是32000字节以内,可以用非交互模式来执行。非交互模式有2种方法执行:
1、通过输入文件方式执行 yasql usr/passsword -f -e test.sql
2、设置登录yasql为静默模式( silent mode),yasql -S usr/passsword << EOF
SELECT value FROM v$parameter WHERE name = 'background_dump_dest';
exit
EOF
总结
当遇到需要在yasql下执行,但SQL语句太长,超出交互模式单行字符上限制,可用使用非交互模式。