PostgreSQL错误:没有名为“的内置函数”;(SQL状态42883)
我试图在PostgreSQL中添加一个非常简单的函数,将IP地址从整数转换为文本格式 这是函数的代码:PostgreSQL错误:没有名为“的内置函数”;(SQL状态42883),postgresql,plpgsql,bigint,Postgresql,Plpgsql,Bigint,我试图在PostgreSQL中添加一个非常简单的函数,将IP地址从整数转换为文本格式 这是函数的代码: CREATE FUNCTION custom_int_to_ip(ip BIGINT) RETURNS TEXT AS $$ DECLARE octet1 BIGINT; octet2 TINYINT; octet3 TINYINT; octet4 TINYINT; restofip BIGINT; BEGIN octet1 = ip / 16777216; restofip = ip -
CREATE FUNCTION custom_int_to_ip(ip BIGINT)
RETURNS TEXT
AS
$$
DECLARE
octet1 BIGINT;
octet2 TINYINT;
octet3 TINYINT;
octet4 TINYINT;
restofip BIGINT;
BEGIN
octet1 = ip / 16777216;
restofip = ip - (octet1 * 16777216);
octet2 = restofip / 65536;
restofip = restofip - (octet2 * 65536);
octet3 = restofip / 256;
octet4 = restofip - (octet3 * 256);
END;
RETURN(CONVERT(TEXT, octet1) + '.' +
CONVERT(TEXT, octet2) + '.' +
CONVERT(TEXT, octet3) + '.' +
CONVERT(TEXT, octet4));
$$
LANGUAGE internal;
作为重播,我获得以下错误:
ERROR: there is no built-in function named "
下面的几行
SQL state: 42883
如果有人看到我的错误,请告诉我,我一直在尝试不同的语法并搜索特定SQL状态的信息,但不知道发生了什么
提前感谢。这里有两个错误:
convert
函数,您应该使用它将数字转换为字符串顺便说一句:您知道PostgreSQL中有一个本机IP数据类型吗?这里有两个错误:
convert
函数,您应该使用它将数字转换为字符串顺便说一句:你知道PostgreSQL中有一个本地IP数据类型吗?除了一个没有名字的马已经指出的以外:
- 使用代替
- MySQL和其他数据库都有
。在PostgreSQL中,使用tinyint
或smallint
(同义词)。看。更好的是,在这种特殊情况下,使所有变量int2
,并保存额外的转换bigint
- 使用赋值运算符
而不是:=
<代码>=未记录,在将来的版本中可能会停止工作,恕不另行通知。请看这里:=
- 移动<代码>结束代码>结束
- 对于相同的输入,输出保证是相同的,因此,在某些情况下,请使用命令来加速输出
73.99.24.255
此外,一匹没有名字的马已经指出:
- 使用代替
- MySQL和其他数据库都有
。在PostgreSQL中,使用tinyint
或smallint
(同义词)。看。更好的是,在这种特殊情况下,使所有变量int2
,并保存额外的转换bigint
- 使用赋值运算符
而不是:=
<代码>=未记录,在将来的版本中可能会停止工作,恕不另行通知。请看这里:=
- 移动<代码>结束代码>结束
- 对于相同的输入,输出保证是相同的,因此,在某些情况下,请使用命令来加速输出
73.99.24.255
73.99.24.255