首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >类型数字的输入语法无效:"CE_GFS“

类型数字的输入语法无效:"CE_GFS“
EN

Stack Overflow用户
提问于 2022-10-03 07:47:35
回答 1查看 44关注 0票数 0

我想在postgresql函数中打印表的列值。我创建了一个功能如下:-

代码语言:javascript
复制
CREATE OR REPLACE FUNCTION print_col() RETURNS VOID AS $$
DECLARE
    row TABLE%ROWTYPE;
BEGIN
    FOR row IN
        SELECT col1  FROM TABLE
    LOOP
        RAISE NOTICE '%', row.col1;
        END LOOP;
    END;
$$ LANGUAGE plpgsql;

在执行查询时,我得到的错误是:“CE_GFS”类型的无效输入语法

我找不到可能是什么问题

EN

回答 1

Stack Overflow用户

发布于 2022-10-03 09:00:53

当您声明一个类型为TABLE%ROWTYPE的变量时,它是一个可以容纳完整的TABLE行的行型。当您稍后尝试将同一表的特定列分配到变量(SELECT col1 FROM TABLE)时,它会尝试按顺序分配它们。

因此,这个FOR row实际上意味着您试图用col1类型为与TABLE的第一列具有相同类型的变量分配一个值。

在这种情况下,错误消息:

类型数字的输入语法无效:"CE_GFS“

指示col1包含字符串,但TABLE的第一列为数字列。

如果您真的打算对单个值进行迭代,请将row TABLE%ROWTYPE;替换为:

代码语言:javascript
复制
row TABLE.col1%TYPE;

并将您的使用替换为:

代码语言:javascript
复制
RAISE NOTICE '%', row;

您还可能希望给row取一个不同的名称,以明确它只包含一个字符串。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73932469

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档