如何解决在psql CLI中将变量从小写转换为小写
我正在创建一个脚本,以通过psql CLI在Postgres中创建数据库用户,我面临的挑战是,从“任何大小写”到“小写”的值转换很令人遗憾,或者找不到相同的解决方案。
\prompt 'Please input user name (must be lowercase): ' inputName
\set lowerVal lower(:inputName) --This is not working
按照我的期望,lowerVal变量应将inputValue转换为小写值。 谷歌做了,但没有得到相同的解决方案。
解决方法
psql
无法计算表达式,因此您的示例无法正常工作。您可以使用语句\gset
,该语句评估查询并将结果存储到psql
变量中:
postgres=# \prompt 'Please input user name (must be lowercase): ' inputName
Please input user name (must be lowercase): AHOJ
postgres=# select lower(:'inputName') as "inputName" \gset
postgres=# \echo :inputName
ahoj
对于psql
变量名,最好只使用小字符。
另一种可能性是使用带反撇号的shell表达式求值:
postgres=# \set str AHOJ
postgres=# \set str `echo ":str" | tr "[:upper:]" "[:lower:]"`
postgres=# \echo :str
ahoj
此示例仅适用于Unix之类的系统。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。