在 psql 中使用 \set 设置变量
setting variables using \set in psql
我正在尝试在包含 JSON 的 psql
控制台中设置变量。
我是这样做的
mydb=# \set cfg '{"base":"some url","remoteIP":"ip"}';
然后我尝试调用查询并传递这个变量
mydb=# select exec_search(:'cfg','Field');
但是如果变成这样而不是执行
mydb'#
当按 enter
或尝试添加引号时,我无法执行查询。我必须退出终端。
mydb'#
mydb'#
mydb'# '
mydb(#
有什么问题?
您的第一个错误是 \set
命令末尾的分号。
psql
命令(以反斜杠开头的命令)不是以分号结束,而是以行尾结束。
所以你最终在变量中多了一个分号,这将导致无效的JSON。
我无法用你问题中的数据重现你的第二个问题。如果您输入包含不平衡单引号的行,您会收到此提示。
要退出,请按 Ctrl+C。
我正在尝试在包含 JSON 的 psql
控制台中设置变量。
我是这样做的
mydb=# \set cfg '{"base":"some url","remoteIP":"ip"}';
然后我尝试调用查询并传递这个变量
mydb=# select exec_search(:'cfg','Field');
但是如果变成这样而不是执行
mydb'#
当按 enter
或尝试添加引号时,我无法执行查询。我必须退出终端。
mydb'#
mydb'#
mydb'# '
mydb(#
有什么问题?
您的第一个错误是 \set
命令末尾的分号。
psql
命令(以反斜杠开头的命令)不是以分号结束,而是以行尾结束。
所以你最终在变量中多了一个分号,这将导致无效的JSON。
我无法用你问题中的数据重现你的第二个问题。如果您输入包含不平衡单引号的行,您会收到此提示。
要退出,请按 Ctrl+C。