psql向文本添加空格

时间:2016-11-10 18:10:38

标签: psql

您好我是psql的新手,我有一个问题,我在函数中有一个VARCHAR变量,我想在它之前和之后添加空格。像这样:

CREATE FUNCTION func(word VARCHAR)
RETURNS VARCHAR
AS
$word2$
DECLARE
word    VARCHAR;
word2   VARCHAR;
BEGIN
word2 = ' ' word ' ' ;
RETURN word2;
END;
$word2$
LANGUAGE plpgsql ;

有快速简便的方法吗? 感谢。

1 个答案:

答案 0 :(得分:0)

你声明:

word    VARCHAR;

然而你有同名的IN参数:

CREATE FUNCTION func(word VARCHAR)

会发生什么:函数忽略参数字,因为你重新声明了它。来自docs

  

如果未给出DEFAULT子句,则将变量初始化为   SQL null值

:= 'come value'之后您没有word VARCHAR,因此它变为空。

另一方面,连接运算符||不会将NULL视为concat()函数,因此' ' word ' '的结果始终为NULL,无论如何

以下是工作职能的例子:

t=# CREATE OR REPLACE FUNCTION func(word VARCHAR)
RETURNS VARCHAR
AS
$word2$
BEGIN
  RETURN ' '||word||' ';
END;
$word2$
LANGUAGE plpgsql ;
CREATE FUNCTION
Time: 13.018 ms
t=# select func('text');
  func
--------
  text
(1 row)

Time: 0.260 ms